All Versions
152
Latest Version
Avg Release Cycle
45 days
Latest Release
331 days ago

Changelog History
Page 4

  • v2.4.7 Changes

    • ๐Ÿ‘ pypy support, thanks Niphlod
    • ๐Ÿ›  more bug fixes
    • ...
  • v2.4.6 Changes

    • ๐Ÿ‘ better tests
    • new ANY_OF and IS_IPV6 validators
    • ๐Ÿ†• new custom save option
    • ๐Ÿ›  many small bug fixes
  • v2.4.5 Changes

    • โœ… travis.ci integration (thanks Marc Abramowitz and Niphlod). Passes all tests (thanks Niplod).
    • IS_DATE and IS_DATETIME can specify timezone
  • v2.4.1 Changes

    • 2D GEO API: geoPoint, getLine, geoPolygon
    • ๐Ÿ‘Œ support for 'json' field type in DAL
    • schema export with db.as_json/as_xml, thanks Alan
    • graph representation of models
    • ๐Ÿ‘Œ support for semantic versioning
    • ๐Ÿ†• new bootstrap based admin, thanks Paolo
    • ๐Ÿ‘Œ improved scheduler (and change in scheduler field names), thanks Niphlod
    • ๐Ÿ‘ graphviz support added to adm, thanks Jose
    • on_failure in grid
    • db.table.field.abs()
    • ๐Ÿ‘ better wiki
    • geoPoint, getLine, geoPolygon
    • ๐Ÿ‘ better reporting of 500 ajax errors
    • ๐Ÿ‘ better grid
    • ๐Ÿ‘Œ improved/fixed mongodb support
    • improved parse_as_rest(patterns=...), thanks Denes
    • ๐Ÿ‘Œ improved IMAP DAL support, thanks Alan
    • ๐Ÿ‘Œ improved security when cookies in sessions
    • Row.as_xml, as_json, as_dict, as_yaml thanks Alan
    • smarter custom_import
    • setup-ubuntu-12-04-redmine-unicorn-web2py-uwsgi-nginx.sh
    • โž• added support for motor and pulsar servers, thanks Niphlod
    • โž• added json-rpc2 support
    • โž• added pypyodbc.py driver
    • ๐Ÿ‘ allow auth.settings.ondelete='CASCADE'
    • ๐Ÿ†• new syntax IS_EXPR(lambda value: ...
    • ๐Ÿ—„ using google for QR codes (although Graph API will be deprecated in 2015)
    • โฌ†๏ธ upgraded fpdf to 1.7.1
    • ๐Ÿ› bug fixes (including issues with calendar.js and archive tables)
  • v2.3.1 Changes

    • ๐Ÿ†• new virtual fields syntax: db.define_table('person',Field('name'),Field.Virtual('namey',lambda row: row.person.name+'y'))
    • db.thing(name='Cohen',_orderby=db.thing.name), thanks Yair
    • โœ… made many modules Python 3.3 friendly (compile but not tested)
    • ๐Ÿ‘ better welcome css, thanks Paolo
    • jQuery 1.8.3
    • Bootstrap 2.2.2
    • Modernizr 2.6.2 (custom full options)
    • integration with analyitics.js (0.2.0)
    • ๐Ÿ‘ better scheduler, thanks Niphlod
    • page and media preview in wiki, thanks Niphlod
    • create new auth.wiki page from slug model, thanks Nico
    • conditional menus with auth.wiki(menugroups=['wiki_editor'])
    • ๐Ÿ‘ better security in grid/smartgrid
    • ๐Ÿ‘ allow LOADing multiple grids, thanks Niphlod
    • auth.settings.login_onfail, thanks Yair
    • ๐Ÿ‘ better handling of session files for speed
    • โž• added heroku support (experimental)
    • โž• added rocket support for IPV6, thanks Chirs Winebrinner
    • more customizable menus with MENU(li_first, li_last..)
    • โž• added support for paymentech (gluon/contrib/paymentech.py)
    • ๐Ÿ›  fixed broken cron
    • ๐Ÿ›  fixed possible xss with share.js
    • ๐Ÿ›  many bug fixes. Closed more than 50 tickets since 2.2.1
  • v2.2.1 Changes

    • session.connect(cookie_key='secret', compression_level=9) stores sessions in cookies
    • โšก๏ธ T.is_writable = False prevents T from dynamically updating langauge files
    • all code is more PEP8 compliant
    • ๐Ÿ‘ better custom_importer behaviour (now works per app, is smalled and faster)
    • ๐Ÿ›  fixed some bugs
    • โฌ†๏ธ upgraded feedparser.py and rss2.py
    • codemirror has autoresize
  • v2.1.0 Changes

    • overall faster web2py
    • when apps are deleted, a w2p copy is left in deposit folder
    • ๐Ÿ”„ change in cron (it is now disabled by default). removed -N option and introduced -Y.
    • faster web2py_uuid() and request initialization logic, thanks Michele
    • static asset management, thanks Niphlod
    • ๐Ÿ‘Œ improved mobile admin
    • request.requires_https and Auth(secure=True), thanks Yarin and Niphlod
    • ๐Ÿ‘ better custom_import (works per app and is faster), thanks Michele
    • redis_sesssion.py, thanks Niphlod
    • ๐Ÿ‘ allow entropy computation in IS_STRONG and web2py.js, thanks Jonathan and Niphlod
    • ๐Ÿ›  fixed many aith.wiki problems
    • ๐Ÿ‘Œ support for auth.wiki(render='html')
    • ๐Ÿ‘ better welcome layout, thanks Paolo
    • db.define_table(...,redefine=True)
    • DAL, Row, and Rows object can now be pickled/unpickled, thanks to zombie DAL.
    • admin uses codemirror
    • ๐Ÿ‘ allow syntax auth = Auth(db).define_tables()
    • ๐Ÿ‘ better auth.wiki with preview, thanks Alan
    • ๐Ÿ‘ better auth.impersonate, thanks Alan
    • โฌ†๏ธ upgraded jQuery 1.8
    • โฌ†๏ธ upgraded Bootstrap 2.1
    • ๐Ÿ›  fixed problem with dropbox_account.py
    • ๐Ÿ›  many fixes to cache.ram, cache.disk, memcache and gae_memcache
    • cache.with_prefix(cache.ram,'prefix')
    • db.table.field.epoch() counts seconds from epoch
    • ๐Ÿ‘ DAL support for SQL CASE, example: db().select(...query.case('true','false))
    • DAL(...,do_connect=False) allows faking connections
    • DAL(...,auto_import=True) now retieves some fiel attributes
    • mail can specify a sender: mail.send(...,sender='Mr X <%(sender)s>')
    • renamed gluon/contrib/comet_messaging.py -> gluon/contrib/websocket_messaging.py
  • v2.0.1-11 Changes

    DAL Improvements

    • Support for DAL(lazy_tables=True) and db.define_table(on_define=lambda table:), thanks Jonathan
    • db(...).select(cacheable=True) make select 30% faster
    • ๐Ÿ“œ db(...).select(cache=(cache.ram,3600)) now caches parsed data 100x faster
    • ๐Ÿ‘ db(...).count(cache=(cache.ram,3600)) now supported
    • ๐Ÿ‘ MongoDB support in DAL (experimental), thanks Mark Breedveld
    • geodal and spatialite, thanks Denes and Fran (experimental)
    • db.mytable._before_insert, _after_insert, _before_update, _after_update, _before_delete. _after_delete (list of callbacks)
    • โšก๏ธ db(...).update_naive(...) same as update but ignores table._before_update and table._after_update
    • ๐Ÿ‘ DAL BIGINT support and DAL(...,bigint_id=True)
    • IS_IN_DB(..., distinct=True)
    • ๐Ÿ†• new syntax: db.mytable.insert(myuploadfield=open(....)), thank you Iceberg
    • db(...).select(db.mytable.myfield.count(distinct=True))
    • โšก๏ธ db(db.a)._update(name=db(db.b.a==db.a.id).nested_select(db.b.id))
    • db.mytable.myfield.filter_in, filter_out
    • db.mytable._enable_record_versioning(db) adds versioning to this table
    • teradata adapter, thanks Andrew Willimott
    • experimental Sybase Adapter
    • โž• added db.table.field.avg()
    • ๐Ÿ‘Œ Support for Google App Engine projections, thanks Christian
    • 0๏ธโƒฃ Field(... 'upload', default=path) now accepts a path to a local file as default value, if user does not upload a file. Relative path looks inside current application folder, thanks Marin
    • ๐Ÿ“œ executesql(...,fields=,columns=) allows parsing of results in Rows, thanks Anthony
    • Rows.find(lambda row: bool(), limitby=(0,1))

    Auth improvements

    • auth.enable_record_versioning(db) adds full versioning to all tables
    • @auth.requires_login(otherwise=URL(...))
    • ๐Ÿ‘ auth supports salt and compatible with third party data, thanks Dave Stoll
    • 0๏ธโƒฃ CRYPT now defaults to pbkdf2(1000,20,sha1)
    • Built-in wiki with menu, tags, search, media, permissions. def index: return auth.wiki()
    • auth.settings.everybody_group_id
    • ๐Ÿ‘ allow storage of uploads on any PyFileSystem (including amazon)

    Form improvements

    • FORM.confirm('Are you sure?',{'Back':URL(...)})
    • SQLFORM.smartdictform(dict)
    • form.add_button(value,link)
    • SQLFORM.grid(groupby='...')
    • ๐Ÿ›  fixed security issue with SQLFORM.grid and SQLFORM.smartgrid
    • more export options in SQLFORM.grid and SQLFORM.smartgrid (html, xml, csv, ...)

    Admin improvements

    • new admin pages: manage_students, bulk_regsiter, and progress reports
    • ๐Ÿ”’ increased security in admin against CSRF
    • experimental Git integration
    • ๐Ÿš€ experimental OpenShift deployment
    • multi-language pluralization engine
    • ๐ŸŒ ace text web editor in admin
    • ๐ŸŒ Ukrainian translations, thanks Vladyslav Kozlovskyy
    • ๐ŸŒ Romanian translation for welcome, thanks ionel
    • ๐Ÿ‘Œ support for mercurial 2.6, thanks Vlad

    โฑ Scheduler Improvements (thanks to niphlod, ykessler, dhx, toomim)

    • โฑ web2py.py -K myapp -X starts the myapp scheduler alongside the webserver
    • tasks are marked EXPIRED (if stop_time passed)
    • โฑ functions with no result don't end up in scheduler_run
    • more options: web2py.py -E -b -L
    • โฑ scheduler can now handle 10k tasks with 20 concurrent workers and with no issues
    • ๐Ÿ†• new params: tasks can be found in the environment (no need to define the tasks parameter) max_empty_runs kills the workers automatically if no new tasks are found in queue (nice for "spikes" of processing power) discard_results to completely discard the results (if you don't need the output of the task) utc_time enables datetime calculations with UTC time
    • โฑ scheduler_task changes: task_name is no longer required (filled automatically with function_name if found empty) uuid makes easy to coordinate scheduler_task maintenance (filled automatically if not provided) stop_time has no default (previously was today+1) retry_failed to requeue automatically failed tasks sync_output refreshes automatically the output (nice to report percentages)
    • ๐Ÿ‘ท workers can be: DISABLED (put to sleep and do nothing if not sending the heartbeat every 30 seconds) TERMINATE (complete the current task and then die) KILL (kill ASAP)

    Other Improvements

    • โœ… gluon/contrib/webclient.py makes it easy to create functional tests for app
    • DIV(..).elements(...replace=...), thanks Anthony
    • ๐Ÿ†• new layout based on Twitter Bootstrap
    • ๐Ÿ†• New generic views: generic.ics (Mac Mail Calendar) and generic.map (Google Maps)
    • 0๏ธโƒฃ request.args(0,default=0, cast=int, otherwise=URL(...)), thanks Anthony
    • redirect(...,type='auto') will be handled properly in ajax responses
    • routes in can redirect outside with routes_in=[('/path','303->http://..')]
    • ๐Ÿ‘ better memcache support
    • ๐Ÿ‘Œ improved spreadsheet, thanks Alan
    • ๐Ÿ†• new internationalization engine, thanks Vladyslav
    • pluralization engine, thanks Vladyslav
    • ๐Ÿ†• new markmin with support for nested lists, , , autolinks, thanks Vladyslav
    • ๐Ÿ†• new syntax: {{=BR()*5}}
    • gluon.cache.lazy_cache decorator allows caching functions in modules
    • ๐Ÿ‘ .coffee and .less support in response.files, thanks Sam Sheftel
    • ๐Ÿ‘ ldap certificate support
    • ๐Ÿ‘ pg8000 postgresql driver support (experimental)
    • @cache('%(name)s%(args)s%(vars)s',5) and cache.autokey
    • โž• added tox.ini, thanks Marc
    • web2py.py --run_system_tests, thanks Marc Abramowitz
    • html.py (and web2py helpers) can be used without web2py dependencies
    • ๐Ÿ†• new fpdf, thanks Mariano
  • v1.99.4 Changes

    ๐Ÿ‘Œ Improved mobile admin, thanks Angelo ๐Ÿ‘Œ Improved examples page, thanks Anthony ๐Ÿ›  fixed a SQLCustomField bug

  • v1.99.3 Changes

    This is a major revision in peparation for web2py 2.0

    • ๐Ÿšš moved to GitHub and abandoned Lanchpad
    • ๐Ÿ†• new web site layout, thanks Anthony
    • ๐Ÿ†• new welcome app using skeleton, thanks Anthony
    • jQuery 1.7.1
    • modernizr 2.0.6 (customized)
    • define_table('thing', singluar='thing',plural='things')
    • CAS 1.0 and 2.0 compliant, thanks Olivier
    • fixed validate_and_insert and validate_and_update, thanks Anthony
    • request.user_agent().is_mobile etc., thanks Ross and Angelo
    • ๐Ÿ‘ better router, thanks Jonathan
    • app on/off buttons
    • ๐Ÿ‘Œ support for dropbox_login
    • ๐Ÿ‘Œ improved markmin recognizes qr code, supports auto audio/video/embed
    • โšก๏ธ response.optimize_css = 'concat,minify,inline', thanks Ross
    • โšก๏ธ response.optimize_js = 'concat,minify,inline' thanks Ross
    • db.define_table(...,common_filter=query), thanks Yair
    • db(...,ignore_common_filter=True)
    • ๐Ÿ‘Œ support for stripe payments
    • ๐Ÿ‘Œ support for DowCommerce payments, thanks Dave
    • ๐Ÿ‘ experimental PyPy support
    • ๐Ÿ‘ experimental mongodb support, thanks Mark
    • tickets in db now accessible from admin, thanks Niphlod