Wow, Impressive list... more features to play with... This is going to be great :)
Thanks all On 20 September 2011 23:17, Massimo Di Pierro <massimo.dipie...@gmail.com>wrote: > List of new features NOT yet documented in the book. I think: > > > - LICENSE CHANGE FROM GPLv2 to LGPLv3 > - new URL syntax > - new T behavior > - new app level logging with logging.conf (thanks Jonathan) > - Polymmodel support on GAE > - current > - added pyfpdf, thank Mariano > - db(db.table), db(db.table.id) both suported and equivalent to > db(db.table.id>0) > - IS_DECIMAL_IN_RANGE and IS_FLOAT_IN_RANGE support dot="," (dot="." > is default) > - on_failed_authorization can be a function, thanks Niphold > - new layout for examples, thanks Bruno and Martin > - admin allow ``DEMO_MODE=True`` and ``FILTER_APPS=['welcome']`` > - upgraded to anytime > - new admin wizard > - better mercual admin allows list of files, versions and retrieve > - SQLFORM.accepts(detect_record_change).record_changed > - SQLFORM.process() > - new admin layout (thanks Branko Vukelic) > - new Welcome app (thanks Martin Mulone) > - web2py.py -J for running cron (thanks Jonathan Lundell) > - web2py.py -K for running backgournd tasks > - new DAL (complete rewrite of the web2py DAL is more modular) > - better CAS with v2 support, thanks Olivier ROCH VILATO > - session.connect(separate=True) to handle many session files, thanks > huaiyu wang > - changed bahvior of impersonate (more secure, can generate form or > used as API) > - SQLTABLE(...,headers='labels') thanks Bruno > - optional: digitally signed URLs, thanks Brian Meredyk > - web2py comet via gluon/contrib/comet_messaging.py (html5 websockets) > experimental > - customizable uploadwidget, thanks Fran > - admin has MULTI_USER_MODE (admin/models/0.py) > - support for count(distinct=...) > - IS_MATCH(...,strict=True) > - URL(...,scheme=,host=,port=), thanks Jonathan > - auth.signature (experimental) > - combined expressions print db.data.body.len().sum() > - wizard can download plugins > - moderniz 1.17 > - experimental REST API > - added experimental pip support, thanks Lifeeth > - added experimental SAP DB support > - Google MySQL support (experimental) > - DAL(...,migrate_enabled=True) > - login_methods/loginza.py, thanks Vladimir > - bpython shell support, thanks Arun > - response.toolbar() > - db._timings contains database query timing info > - efficient db(...).isempty() > - setup-web2py-nginx-uwsgi-ubuntu.sh > - "from gluon import *" > - conditional models in models/<controller>/a.py and models/ > <controller>/<function>/a.py > - from mymodule import * > - generic views > - all applications have cas 2.0 provider at http://.../user/cas/login > - all applications can delegate to login to external provider > Auth(...,cas_provider='http://.../other_app/default/user/cas'\ > ) > - A(...,callback=URL(...),larget='id') does Ajax > - URL(...,user_signature=True), LOAD(...,user_signature=True) > - DAL(...,migrate_enabled=False) to disable all migrations > - DAL(...,fake_migrate_all=True) to rebuild all corrupted metadata > - DAL(...,adapter_arg={}) allows support for alternate drivers > - DAL now allows circular table defintions > - DAL(..,auto_import=True) automatically imports tables from metadata > without need to db.define_table(...)s. > - new alterante syntax for inner joins: db(...).select(join=...) > - experimental cubrid database support > - DAL 'request_tenant' fields are special, the altomatically filer all > records based on their default value. > - db._common_fields.append(Field('owner')) allows to add fields to ALL > tables > - web2py_ajax.html is more modular, thanks Anthony > - request.is_local > - request.is_http > - new simpler API gluon.contrib.AuthorizeNet.procss(...) > - messages in validators have default internationalization > - No more Auth(globals(),db), just Auth(db). Same for Crud and > Service. > - scripts/access.wsgi allows apache+mod_wsgi to delegate > authentication of any URL to any web2py app > - web2py HTTP responses now set: "X-Powered-By: web2py", thanks Bruno > - auth.settings.extra_fields['auth_user'].append(Field('country')) > - validate_and_update, thanks Bruno > - new cpdb.py, thanks Mart > - field.represent = lambda value,record: .... (record is optional) > - request.user_agent(), thanks Ross > - SQLFORM(...,separator=': ') now customizable > - experimental gluon/scheduler.py > - scripts/make_min_web2py.py > - crud.search has more options, thanks Denes > - gluon/contrib/simplejsonrpc.py > - gluon/contrib/redis_cache.py > - support for A(name,callback=url,target='id',delete='tr') > - support for A(name,component=url,target='id',delete='tr') > - isapiwsgihandler.py > - dal expression.coalesce(*options) > - new pip installer, thanks Chris Steel > - gluon/contrib/simplejsonrpc.py, thanks Mariano > - expire_sessions.py respects expiration time, thanks iceberg > - x509 support (needs rocket upgrade, thanks Michele) > - new syntax rows[i]('tablename.fieldname') > - new query syntax field.contains(list,all=True or False) > - new SQLFORM.grid and SQLFORM.smartgrid (should replace crud.search > and crud.select) > - support for natural language queries (english only) in SQLFORM.grid > - support for computed columns and additional links in SQLFORM.grid > - new style virtual fields (experimental): > db.table.field=Field.Lazy(...) > - request.utcnow > - cleaner/simpler welcome/models/db.py and welcome layout.html > - response.include_meta() and response.include_files(), thanks Denes > - dal auto-reconnect on time-out connections > - COL and COLGROUP helpers > - addresed OWASP #10, thanks Anthony and Eric > - auth.settings.login_after_registration=True > - detection of mobile devices and @mobilize helper (view.mobile.html), > thanks Angelo >