I have identified the following items that are missing from the book.
Listed here in some random order.
compute fields
virtual fields
crud.search
RPXAccount
new validators
populate
plugins
LOAD and generic.load
Field attributes (compute, virtualfield, uploadseparate)
format, represent
recursive queries
MARKMIN syntax
Informix support
named id fields
keyedtables
DAL('gae')
XHTML
first() last()
find(), sort(), exclude()
as_dict(), as_list()
request.meta
request.wsgi
IS_IN_DB(....,and=....)
python web2py.py -S app -M -R script.py -A arg1 arg2 arg3
New syntax T("%(a)s") % dict(a="hello")
web2py.py -nogui
SQLFORM.factory(...,table_name='no_table')
new setup-web2py-ubuntu.sh
new setup-web2py-fedora.sh
autocomplete widget
pam authentication
auth.settings.login_captcha and auth.settings.register_captcha
crud.settings.create_captcha and crud.settings.update_captcha
gluon/contrib/login_methods/linkedin_account.py (to be tested)
cherrypy to rocket
SQLFORM(...,formstyle='divs')
SQLTABLE(...,headers='fieldname:capitalize')
Field().with_alias
has_membership(group=...,role=...)
db.define_table(username=True)
gluon.tools.prettydate, gluon.tools.geocode
gluon.contrib.AuthorizeNet
gluon.contrib.sms_utils
can specify hostname in routes_out (same syntax as routes in)
db.table.bulk_insert([...records...]) now works on GAE
OPTGROUP helper
fake_migrate to restore borken db metadata
x509 emails
attachment and html in Mail on GAE
TAG(html) parese html into helpers (experimental, still some problems
with unicode)
DIV.elements(find=re.compile(....))
DIV.flatten()
DIV.elements('....') supports jQuery syntax in '....'