I have updated the online book, the content, not the app, with my most
recent edits.
Not everything is documented yet but lot more stuff is. The book is
about 10% bigger already.
When done should be 20-30% bigger than the 3rd edition.

Here is a list of new features that are documented in 3.1 but not in
3.0 [x] and features that are not yet documented [ ]:

[x] LICENSE CHANGE FROM GPLv2 to LGPLv3
[x] new URL syntax
[x] URL(...,scheme=,host=,port=)
[x] URL(...,user_signature=True), LOAD(...,user_signature=True)
[x] new T behavior
[x] db(db.table) equivalent to db(db.table.id>0)
[x] IS_DECIMAL_IN_RANGE and IS_FLOAT_IN_RANGE support dot="," (dot="."
is default)
[x] on_failed_authorization can be a function
[x] SQLFORM.process()
[x] SQLFORM.accepts(detect_record_change).record_changed
[x] session.connect(separate=True) to handle many session files
[x] support for count(distinct=...)
[x] IS_MATCH(...,strict=True)
[x] No more Auth(globals(),db), just Auth(db). Same for Crud and
Service.
[x] efficient db(...).isempty()
[x] "from gluon import *"
[x] from mymodule import *
[x] request.is_local
[x] request.is_https
[x] login_methods/loginza.py
[x] DAL(...,migrate_enabled=False) to disable all migrations
[x] DAL(...,fake_migrate_all=True) to rebuild all corrupted metadata
[x] messages in validators have default internationalization
[x] web2py.py -J for running cron
[x] bpython shell support, thanks Arun
[x] response.toolbar()
[x] db._timings contains database query timing info
[x] new represent syntax
[x] COL and COLGROUP helpers
[x] auth.settings.login_after_registration=True
[x] SQLFORM(...,separator=': ') now customizable
[x] combined expressions print db.data.body.len().sum()
[x] request.utcnow
[x] web2py_ajax.html is more modular, thanks Anthony
[x] current
[x] dal expression.coalesce(*options)
[x] response.include_meta() and response.include_files()
[x] dal auto-reconnect on time-out connections
[x] DAL(...,adapter_arg={}) allows support for alternate drivers
[x] new simpler API gluon.contrib.AuthorizeNet.procss(...)
[x] upgraded to anytime
[x] new alterante syntax for inner joins: db(...).select(join=...)
[x] new syntax rows[i]('tablename.fieldname')
[x] new DAL (complete rewrite of the web2py DAL is more modular)
[x] new query syntax field.contains(list,all=True or False)
[x] validate_and_update, thanks Bruno
[x] web2py HTTP responses now set: "X-Powered-By: web2py", thanks
Bruno
[x] auth.settings.extra_fields['auth_user'].append(Field('country'))
[x] A(...,callback=URL(...),larget='id') does Ajax
[x] support for A(name,callback=url,target='id',delete='tr')
[x] DAL 'request_tenant' fields are special, the altomatically filer
all records based on their default value.
[x] db._common_fields.append(Field('owner')) allows to add fields to
ALL tables
[x] CAS with v2 support
[x] all applications can delegate to login to external provider
    Auth(...,cas_provider='http://.../other_app/default/user/cas')
[x] isapiwsgihandler.py
[x] setup-web2py-nginx-uwsgi-ubuntu.sh
[x] DAL(..,auto_import=True) automatically imports tables from
metadata  without need to db.define_table(...)s.
[x] field.represent = lambda value,record: .... (record is optional)
[x] gluon/contrib/redis_cache.py
[x] gluon/contrib/simplejsonrpc.py
[x] expire_sessions.py respects expiration time, thanks iceberg
[x] auth.settings.cas_actions
[~] auth.signature (experimental) -> needs more in auth
[~] generic views -> may need more info


## admin
[ ] admin allow ``DEMO_MODE=True`` and ``FILTER_APPS=['welcome']``
[ ] new admin layout (thanks Branko Vukelic)
[ ] new admin wizard
[ ] wizard can download plugins
[ ] better mercual admin allows list of files, versions and retrieve
[ ] admin has MULTI_USER_MODE (admin/models/0.py)

## welcome and examples
[ ] new Welcome app (thanks Martin Mulone)
[ ] new layout for examples, thanks Bruno and Martin
[ ] cleaner/simpler welcome/models/db.py and welcome layout.html
[ ] moderniz 1.17
[ ] experimental REST API

## table and grids

[ ] SQLTABLE?
[ ] SQLTABLE(...,headers='labels') thanks Bruno
[ ] new SQLFORM.grid and SQLFORM.smartgrid
[ ] support for natural language queries (english only)
[ ] support for computed columns and additional links in SQLFORM.grid

## other
[ ] new pip installer (Chris Steel)
[ ] new app level logging with logging.conf (Jonathan)
[ ] Polymmodel support on GAE
[ ] pyfpdf (Mariano)
[ ] auth.impersonate
[ ] conditional models
[ ] DAL now allows circular table definitions
[ ] scripts/access.wsgi and apache+mod_wsgi
[ ] scripts/make_min_web2py.py
[ ] new cpdb.py, thanks Mart
[ ] request.user_agent(), thanks Ross
[ ] x509 support (needs rocket upgrade, thanks Michele)
[ ] detection of mobile devices and @mobilize helper

## experimental features
[ ] experimental gluon/scheduler.py  (experimental)
[ ] db.table.field=Field.Lazy(...)  (experimental)
[ ] web2py comet via gluon/contrib/comet_messaging.py (html5
websockets)
[ ] experimental cubrid database support

Reply via email to