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

Reply via email to