web2py v1.96.1 Release Notes

    • "from gluon import *" imports in every python module a web2py environment (A, DIV,..SQLFORM, DAL, Field,...) including current.request, current.response, current.session, current.T, current.cache, thanks Jonathan.
    • conditional models in models//a.py and models///a.py
    • from mymodule import *, looks for mymodule in applications/thisapp/modules first and then in sys.path. No more need for local_import. Thanks Pierre.
    • ๐Ÿ”’ usage of generic.* views is - by default - restricted to localhost for security. This can be changed in a granular way with: response.generic_patterns=['*']. This is a slight change of behavior for new app but a major security fix.

    • 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) can sign urls and @auth.requires_signature() will check the signature for any decorated action.

    • DAL(...,migrate_enabled=False) to disable all migrations

    • DAL(...,fake_migrate_all=True) to rebuild all corrupted metadata

    • ๐Ÿ†• new DAL metadata format (databases/*.table)

    • ๐Ÿ‘ 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

    • 0๏ธโƒฃ 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

    • DAL ignores repeated fields with same names

    • web2py_ajax.html is more modular, thanks Anthony

    • request.is_local

    • request.is_http

    • ๐Ÿ†• new sessions2trash.py thanks Jim Karsten

    • corrupted cache files are automatically deleted

    • ๐Ÿ†• new simpler API gluon.contrib.AuthorizeNet.procss(...)

    • ๐Ÿ›  fixed recaptcha (as they released new API)

    • 0๏ธโƒฃ 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

    • ๐Ÿ‘ json now supports T(...)

    • scripts/setup-web2py-nginx-uwsgi-ubuntu.sh

    • web2py HTTP responses now set: "X-Powered-By: web2py", thanks Bruno

    • ๐Ÿ›  mostly fixed generic.pdf. You can view any page in PDF if you have pdflatex installed or if your html follows the pyfpdf convention.

    • auth.settings.extra_fields['auth_user'].append(Field('country')) allows to extend auth_* tables without need of definiting a custom auth_* table. Must be placed before auth.define_tables()

    • {{=response.toolbar()}} to help you debug applications

    • ๐ŸŒ web based shell now supports object modifications (but no redefinitions of non-serializable types)

    • jQuery 1.6.1

    • ๐Ÿ›  Lots of bug fixes