[web2py] Re: web2py 2.0.2 is out
Thanks to all of you who have given so many of us another wonderful evolution of this great framework. Simon On Thursday, 30 August 2012 04:41:34 UTC+1, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
Re: [web2py] Re: web2py 2.0.2 is out
you are kind of late, we are already at 2.0.9 and 2.1.0 soon to be released :) --
[web2py] Re: web2py 2.0.2 is out
I seem to have run into a backwards compatibility issue. This weekend, I did some system upgrades. I moved my web2py (1.99.7) + MySQL application off a single server running Ubuntu to two VM's running Debian stable (one VM for web2py + apache, one for MySQL). Web2py was deployed using the script in the deployment recipes book section (which downloaded whatever version was current as of Oct 1). MySQL data was moved using mysqldump. It seems that one-to-many relations are broken in the DAL. Example code snippets: From the model: gaia.define_table('routes', Field(Name, required=True), Field(Active, boolean, required=True, default=True), format='%(Name)s') gaia.define_table('routedetails', Field('route', gaia.routes), Field('site', gaia.sites), Field('sortable', 'integer', default = 0,writable=False,readable=False), singular = 'RouteDetail', plural = 'RouteDetails') From the controller (making a link field for SQLForm.grid): boxeslink = dict( header = 'Number of Boxes', body = lambda row: sum([x.site.NumBoxes for x in row.routedetails.select()]) ) I should be able to access related routedetails rows from a routes row. I can't. I get an exception telling me that the Row object doesn't have that attribute. Sorry for the vague details-- I installed the new version, saw that it didn't work, installed 1.99.7 and it worked perfectly again. I'll get a 2.0.7 instance up and running later and can provide exact details. --
[web2py] Re: web2py 2.0.2 is out
I know what the problem is. Please open a ticket about this so I do not forget and I may fix it tonight. This is a change in grid behavior and we do not promise backward compatibility in grid because it is experimental. Basically the we speeded up the grid but not generating the full Row(s) objects thus your row.routedetails is missing. In any case it is debatable whether the changes that lead to this are worth it, considering the problem you mention. I will probably revert the old behavior. massimo On Tuesday, 2 October 2012 11:04:30 UTC-5, Nate Atkinson wrote: I seem to have run into a backwards compatibility issue. This weekend, I did some system upgrades. I moved my web2py (1.99.7) + MySQL application off a single server running Ubuntu to two VM's running Debian stable (one VM for web2py + apache, one for MySQL). Web2py was deployed using the script in the deployment recipes book section (which downloaded whatever version was current as of Oct 1). MySQL data was moved using mysqldump. It seems that one-to-many relations are broken in the DAL. Example code snippets: From the model: gaia.define_table('routes', Field(Name, required=True), Field(Active, boolean, required=True, default=True), format='%(Name)s') gaia.define_table('routedetails', Field('route', gaia.routes), Field('site', gaia.sites), Field('sortable', 'integer', default = 0,writable=False,readable=False), singular = 'RouteDetail', plural = 'RouteDetails') From the controller (making a link field for SQLForm.grid): boxeslink = dict( header = 'Number of Boxes', body = lambda row: sum([x.site.NumBoxes for x in row.routedetails.select()]) ) I should be able to access related routedetails rows from a routes row. I can't. I get an exception telling me that the Row object doesn't have that attribute. Sorry for the vague details-- I installed the new version, saw that it didn't work, installed 1.99.7 and it worked perfectly again. I'll get a 2.0.7 instance up and running later and can provide exact details. --
[web2py] Re: web2py 2.0.2 is out
Thanks, After installing this it works. I am having windows XP with service pack 2 Regards Pradeep On Thursday, September 6, 2012 7:49:29 PM UTC+5:30, Massimo Di Pierro wrote: If you download and install this: http://www.microsoft.com/en-us/download/details.aspx?id=29 does it help? On Wednesday, 5 September 2012 07:29:51 UTC-5, pradeep cs wrote: Hi, Is there any problem with windows binaries for XP, i tried installing the new version 2.0.7 on XP it is not working *C:\web2py1\web2pyweb2py.exe* *The system cannot execute the specified program.* regards Pradeep On Thursday, August 30, 2012 9:11:34 AM UTC+5:30, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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] Re: web2py 2.0.2 is out
If you download and install this: http://www.microsoft.com/en-us/download/details.aspx?id=29 does it help? On Wednesday, 5 September 2012 07:29:51 UTC-5, pradeep cs wrote: Hi, Is there any problem with windows binaries for XP, i tried installing the new version 2.0.7 on XP it is not working *C:\web2py1\web2pyweb2py.exe* *The system cannot execute the specified program.* regards Pradeep On Thursday, August 30, 2012 9:11:34 AM UTC+5:30, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
Today I downloaded 2.0.7 for Windows and am running it under Windows XP Professional, service pack 3. It seems to work fine, although I've only done very cursory testing. --
[web2py] Re: web2py 2.0.2 is out
Hi, Is there any problem with windows binaries for XP, i tried installing the new version 2.0.7 on XP it is not working *C:\web2py1\web2pyweb2py.exe* *The system cannot execute the specified program.* regards Pradeep On Thursday, August 30, 2012 9:11:34 AM UTC+5:30, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
Looks like it is a DLL issue. Some DLLs are missing. I will try rebuild it today but I am not sure which one is missing. Has anybody successfully used the windows version 2.0.x? Massimo On Wednesday, 5 September 2012 07:29:51 UTC-5, pradeep cs wrote: Hi, Is there any problem with windows binaries for XP, i tried installing the new version 2.0.7 on XP it is not working *C:\web2py1\web2pyweb2py.exe* *The system cannot execute the specified program.* regards Pradeep On Thursday, August 30, 2012 9:11:34 AM UTC+5:30, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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 -
Re: [web2py] Re: web2py 2.0.2 is out
Many thanks to Massimo for creating Web2py and to Massimo and other contributors for keeping it going and improving it. I am having fun working with it. Equally big thanks to Anthony for answering my questions here. I would most probably have given up on web2py, had Anthony not helped me with my problems. I have been playing around with Web2py for the last few months and have been able to get things done with it. I have so far not used DAL, but now I will try and get into that. Thanks again. --
[web2py] Re: web2py 2.0.2 is out
web2py 2.0.7 is not now. Fixed a number of recent bugs and backward compatibility issues. It also includes additional speed improvements when compared to 2.0.2. Massimo On Wednesday, 29 August 2012 22:41:34 UTC-5, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
Re: [web2py] Re: web2py 2.0.2 is out
Hi Alec, Thanks for providing me with this code. Also will need to add in proper success ones as well. I'll get to it within a week then send a pull request I'll look forward to that. Kind regards, Annet --
[web2py] Re: web2py 2.0.2 is out
+1 ;) Excelent! I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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) - request.args(0,default=0,
Re: [web2py] Re: web2py 2.0.2 is out
This is what I have for the moment, but I plan to implement this properly using the variables from gluon.tools; consider this a PoC: {{if response.flash:}}header {{if 'errors' in response.flash:}} div class=alert alert-block alert-error fade in button type=button class=close data-dismiss=alert times; /button p {{=response.flash}} /p /div {{else:}} div class=alert alert-block fade in button type=button class=close data-dismiss=alert times; /button p {{=response.flash}} /p /div {{pass}}/header {{pass}} Also will need to add in proper success ones as well. I'll get to it within a week then send a pull request. Until then, enjoy :) On Sun, Sep 2, 2012 at 4:06 PM, Annet anneve...@googlemail.com wrote: Hi Alec, I've got a better flash code using bootstrap components. It works quite nicely, giving different colours based on severity of message. [alert-error, alert-success etc] I am interested in your implementation of the flash and alert, would you be willing to share your code with me? I have been trying to implement it myself, in the function I set alert='alert-block' and return it in a dict(alert=alert), in the view I have: {{if response.flash:}} div class=alert {{if alert:}}{{=alert}}{{elif session.alert:}}{{=session.alert}}{{else:}}{{'alert-info'}}{{pass}} a class=close data-dismiss=alertx/a {{=response.flash}} /div !-- /alert -- {{pass}} I need session.alert to set alerts cross functions, but I am not very happy with this way of setting alert. Kind regards, Annet --
[web2py] Re: web2py 2.0.2 is out
HUGE Thanks to Massimo and all who have contributed to this release! Long awaited and anticipated! web2py is my favorite framework because of all you wonderful people! On Thursday, August 30, 2012 11:41:34 AM UTC+8, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
Re: [web2py] Re: web2py 2.0.2 is out
I've got a better flash code using bootstrap components. It works quite nicely, giving different colours based on severity of message. [alert-error, alert-success etc] Was planning on waiting until the new bootstrap was integrated before throwing a pull-request, or did you want a pull request now? On Fri, Aug 31, 2012 at 3:55 PM, Massimo Di Pierro massimo.dipie...@gmail.com wrote: ace.js does that. Yes it is odd. I am not sure why. Also there is no flash because of the box that now flashes green. We may move from ace to codemirror. On Friday, 31 August 2012 00:42:14 UTC-5, Annet wrote: I am still having this issue: On Thursday, 30 August 2012 18:03:36 UTC+2, Annet wrote: Please can you post a concrete example? In: Editing file init/models/db.py ... when I click the save button, normally a flash showed up in the top-right corner: div class=flash style=display: none;file saved on Thu Aug 30 17:55:13 2012/div In 2.0.2 the div is empty after clicking the save button: div class=flash style=display: none;/div I also noticed that when I inspect the footer element there's a div with the following contents: div id=footer class=fixed div style=height: auto; width: auto; top: -4px; left: -4px; visibility: hidden; position: absolute; overflow: visible; white-space: nowrap; font-family: 'Monaco','Menlo','Ubuntu Mono','Droid Sans Mono','Consolas',monospace; font-size: 12px; font-weight: 400; font-style: normal; line-height: 16.25px;**XyXyXyXyXyXyXyXyXyXyXyXyXyXyXy** XyXyXyXyXyXyXyXyXyXyXyXyXyXyXy**XyXyXyXyXyXyXyXyXyXyXyXyXyX...**./div Kind regards, Annet -- --
[web2py] Re: web2py 2.0.2 is out
I just discovered this sweet hidden improvement: db(db.mytable.id1).select() Rows (648) The Rows object now prints out the number of rows in the repr() function! That's so useful! Thanks everyone! --
[web2py] Re: web2py 2.0.2 is out
Really amazing !!! Thanks to all contributors, testers !!! Dne čtvrtek, 30. srpna 2012 5:41:34 UTC+2 Massimo Di Pierro napsal(a): After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
Congratulations to all! Should be 100% backward compatible. If you run into any issue let us know ASAP. It's not a backward compatibility issue but after updating from 2.0.1 to 2.0.2 the admin's flash messages no longer show up. Kind regards, Annet --
Re: [web2py] Re: web2py 2.0.2 is out
Thank you again to all the developers for your hard work enabling us to work with a product that is a pleasure to work with. Regards Johann -- Because experiencing your loyal love is better than life itself, my lips will praise you. (Psalm 63:3) --
[web2py] Re: web2py 2.0.2 is out
Thanks On Thursday, August 30, 2012 5:41:34 AM UTC+2, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
Hmmm... nohup should do similar thing... nohup python web2py.py -K appname will make it a background task on linux W dniu czwartek, 30 sierpnia 2012 07:23:29 UTC+2 użytkownik Michael Toomim napisał: I'm really excited about the new scheduler -X option. What do -E -b -L do? I don't see them in --help or in the widget.py code. On Wednesday, August 29, 2012 10:17:48 PM UTC-7, Michael Toomim wrote: Wow, this is cool! But I'm hitting a bug in rewrite_on_error: http://code.google.com/p/web2py/issues/detail?id=964 --
[web2py] Re: web2py 2.0.2 is out
Big work. We are all really thankful. Especially lazy_tables and triggers + audit ! W dniu czwartek, 30 sierpnia 2012 05:41:34 UTC+2 użytkownik Massimo Di Pierro napisał: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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 -
Re: [web2py] Re: web2py 2.0.2 is out
+1 2012/8/30 Anthony abasta...@gmail.com Congratulations to all! And special thanks to Massimo for all his hard work, diligence, and patience. Anthony On Wednesday, August 29, 2012 11:41:34 PM UTC-4, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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.idhttp://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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
On Thursday, August 30, 2012 6:41:34 AM UTC+3, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: Thanks for supporting firebird out of the box i added a notice on firebirdnews http://www.firebirdnews.org/?p=7585 I looked in the DAL and saw that your are using kinterbasdb or firebirdsql in the next release we should switch to fdb driver as default that is backward compatible with kinterbasdb and is now the official supported driver for python 2.7.x or 3.3.x http://pypi.python.org/pypi/fdb/ --
[web2py] Re: web2py 2.0.2 is out
Was waiting desperately for this release. Big thanks to all of you!! Regards, Ashish On Thursday, August 30, 2012 9:11:34 AM UTC+5:30, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
Let it be said Let it be heard : Web2py is not only awesome .. It is simply the best python framework out there ! ... at least for me, and many others ! Congratulations to the web2py developer team Move over ! make way ! PHP Python Frameworks .. here we come ! --
Re: [web2py] Re: web2py 2.0.2 is out
I´m test now. Ovidio Marinho Falcao Neto Web Developer ovidio...@gmail.com ovidiomari...@itjp.net.br ITJP - itjp.net.br 83 8826 9088 - Oi 83 9334 0266 - Claro Brasil 2012/8/30 Don_X don.clerm...@gmail.com Let it be said Let it be heard : Web2py is not only awesome .. It is simply the best python framework out there ! ... at least for me, and many others ! Congratulations to the web2py developer team Move over ! make way ! PHP Python Frameworks .. here we come ! -- --
[web2py] Re: web2py 2.0.2 is out
Thanks a lot, Massimo! 在 2012年8月30日星期四UTC+8上午11时41分34秒,Massimo Di Pierro写道: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
I'm having a problem with the scheduler when I upgraded my application. It appears that if I attempt to run the line: Scheduler(db, dict(demo=demo)) I'm getting the error: class 'sqlite3.OperationalError' Cannot add a UNIQUE column Regards --
[web2py] Re: web2py 2.0.2 is out
It appears that it's an incompatibility with the original tables, when I delete everything the problem goes away. I got around the problem by deleting everything, and then overwriting the new database with the old one, excluding the scheduler tables. --
[web2py] Re: web2py 2.0.2 is out
Mama mia There's only one word to describe Web2Py: Amazing!!! :D Thank you all folks!!! Igor Em quinta-feira, 30 de agosto de 2012 00h41min34s UTC-3, Massimo Di Pierro escreveu: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
Hi Team, Thanks a ton for the new features and improvements! I'm just getting started and was trying to run web2py.exe on Windows 7 after downloading it from http://www.web2py.com/examples/static/web2py_win.zip (2.0.2 stable). However, ran into this error: ** D:\web2pyweb2py -S welcome Traceback (most recent call last): File web2py.py, line 16, in module File gluon/__init__.py, line 15, in module File gluon/globals.py, line 24, in module File gluon/serializers.py, line 11, in module File gluon/languages.py, line 264, in module File gluon/languages.py, line 250, in read_possible_plurals WindowsError: [Error 3] The system cannot find the path specified: 'D:\\web2py\\gluon\\contrib\\rules/*.*' ** Then, realized there was no folder called gluon in the extracted folder. I downloaded the source from http://www.web2py.com/examples/static/web2py_src.zip and copied the gluon folder from this source code to the previous web2py folder. This solved the error and was able to web2py GUI. Hope this helps. Regards, Sridhar On Thursday, August 30, 2012 9:11:34 AM UTC+5:30, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
yep, a new column was added and it's defined to be unique. When it gets created if you have n rows already in the table the values in the column are not unique, hence the error. If no rows are in the scheduler_task table, no error should show up. On Thursday, August 30, 2012 2:23:18 PM UTC+2, Tyrone wrote: It appears that it's an incompatibility with the original tables, when I delete everything the problem goes away. I got around the problem by deleting everything, and then overwriting the new database with the old one, excluding the scheduler tables. --
[web2py] Re: web2py 2.0.2 is out
Please can you post a concrete example? On Thursday, 30 August 2012 02:02:42 UTC-5, Annet wrote: Congratulations to all! Should be 100% backward compatible. If you run into any issue let us know ASAP. It's not a backward compatibility issue but after updating from 2.0.1 to 2.0.2 the admin's flash messages no longer show up. Kind regards, Annet --
[web2py] Re: web2py 2.0.2 is out
Great news. Can't wait to try it out. Thanks, everyone! On Wednesday, August 29, 2012 11:41:34 PM UTC-4, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
Congratulations and many thanks to Massimo and all contributors - the best framework keeps getting better --
Re: [web2py] Re: web2py 2.0.2 is out
Only one word : Thanks Richard On Thu, Aug 30, 2012 at 10:09 AM, Yarin ykess...@gmail.com wrote: Congratulations and many thanks to Massimo and all contributors - the best framework keeps getting better -- --
[web2py] Re: web2py 2.0.2 is out
Thank you Massimo and ALL contributors!!! Starting migration tests now... On Wednesday, August 29, 2012 11:41:34 PM UTC-4, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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:
[web2py] Re: web2py 2.0.2 is out
Please can you post a concrete example? In: Editing file init/models/db.py ... when I click the save button, normally a flash showed up in the top-right corner: div class=flash style=display: none;file saved on Thu Aug 30 17:55:13 2012/div In 2.0.2 the div is empty after clicking the save button: div class=flash style=display: none;/div I also noticed that when I inspect the footer element there's a div with the following contents: div id=footer class=fixed div style=height: auto; width: auto; top: -4px; left: -4px; visibility: hidden; position: absolute; overflow: visible; white-space: nowrap; font-family: 'Monaco','Menlo','Ubuntu Mono','Droid Sans Mono','Consolas',monospace; font-size: 12px; font-weight: 400; font-style: normal; line-height: 16.25px;XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX/div Kind regards, Annet --
[web2py] Re: web2py 2.0.2 is out
Hi massimo, I would like to thank your family and the families of the contributors, for their great support. Their support made it come true. Regards, Ashraf --
[web2py] Re: web2py 2.0.2 is out
Congratulations to Massimo and all contributors! Great job! :) Jan Am Donnerstag, 30. August 2012 05:41:34 UTC+2 schrieb Massimo Di Pierro: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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:
[web2py] Re: web2py 2.0.2 is out
All bugs reported today have been fixed in 2.0.3 out now (except a minor issue with markmin that we are investigating). If you find other issues, please continue report them. We'd rather fix them sooner rather than later. Thanks for all your help and testing. Massimo On Wednesday, 29 August 2012 22:41:34 UTC-5, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
This is the best Christmas ever. So many shiny new toys. Thanks to Massimo and all who contributed. Cliff Kachinske --
[web2py] Re: web2py 2.0.2 is out
I made a mistake in the announcement. We do not have GIS support. What I meant is Spatialite and PostGIS support for Slite and postgresql geographical functionalities. massimo On Wednesday, 29 August 2012 22:41:34 UTC-5, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
This seems like a good place to say that leaving php/Drupal for Python/web2py has been like getting out of jail. This is great software with a supernaturally patient and helpful community. On Wednesday, August 29, 2012 11:41:34 PM UTC-4, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
:-) On Thursday, 30 August 2012 17:43:16 UTC-5, Mike Girard wrote: This seems like a good place to say that leaving php/Drupal for Python/web2py has been like getting out of jail. This is great software with a supernaturally patient and helpful community. On Wednesday, August 29, 2012 11:41:34 PM UTC-4, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
The Issue is still there in 2.0.3 On Thursday, August 30, 2012 11:40:07 PM UTC+12, Sridhar wrote: Hi Team, Thanks a ton for the new features and improvements! I'm just getting started and was trying to run web2py.exe on Windows 7 after downloading it from http://www.web2py.com/examples/static/web2py_win.zip (2.0.2 stable). However, ran into this error: ** D:\web2pyweb2py -S welcome Traceback (most recent call last): File web2py.py, line 16, in module File gluon/__init__.py, line 15, in module File gluon/globals.py, line 24, in module File gluon/serializers.py, line 11, in module File gluon/languages.py, line 264, in module File gluon/languages.py, line 250, in read_possible_plurals WindowsError: [Error 3] The system cannot find the path specified: 'D:\\web2py\\gluon\\contrib\\rules/*.*' ** Then, realized there was no folder called gluon in the extracted folder. I downloaded the source from http://www.web2py.com/examples/static/web2py_src.zip and copied the gluon folder from this source code to the previous web2py folder. This solved the error and was able to web2py GUI. Hope this helps. Regards, Sridhar On Thursday, August 30, 2012 9:11:34 AM UTC+5:30, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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,
[web2py] Re: web2py 2.0.2 is out
Well, perhaps not. The Download page says 2.0.3, but when I start it says 2.0.2. in the app ? Perhaps the windoes exe has not been updated. On Friday, August 31, 2012 2:09:29 PM UTC+12, Andrew wrote: The Issue is still there in 2.0.3 On Thursday, August 30, 2012 11:40:07 PM UTC+12, Sridhar wrote: Hi Team, Thanks a ton for the new features and improvements! I'm just getting started and was trying to run web2py.exe on Windows 7 after downloading it from http://www.web2py.com/examples/static/web2py_win.zip (2.0.2 stable). However, ran into this error: ** D:\web2pyweb2py -S welcome Traceback (most recent call last): File web2py.py, line 16, in module File gluon/__init__.py, line 15, in module File gluon/globals.py, line 24, in module File gluon/serializers.py, line 11, in module File gluon/languages.py, line 264, in module File gluon/languages.py, line 250, in read_possible_plurals WindowsError: [Error 3] The system cannot find the path specified: 'D:\\web2py\\gluon\\contrib\\rules/*.*' ** Then, realized there was no folder called gluon in the extracted folder. I downloaded the source from http://www.web2py.com/examples/static/web2py_src.zip and copied the gluon folder from this source code to the previous web2py folder. This solved the error and was able to web2py GUI. Hope this helps. Regards, Sridhar On Thursday, August 30, 2012 9:11:34 AM UTC+5:30, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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='...') -
[web2py] Re: web2py 2.0.2 is out
Can you please try again the windows binary and let me know if the problem persists. On Thursday, 30 August 2012 21:13:18 UTC-5, Andrew wrote: Well, perhaps not. The Download page says 2.0.3, but when I start it says 2.0.2. in the app ? Perhaps the windoes exe has not been updated. On Friday, August 31, 2012 2:09:29 PM UTC+12, Andrew wrote: The Issue is still there in 2.0.3 On Thursday, August 30, 2012 11:40:07 PM UTC+12, Sridhar wrote: Hi Team, Thanks a ton for the new features and improvements! I'm just getting started and was trying to run web2py.exe on Windows 7 after downloading it from http://www.web2py.com/examples/static/web2py_win.zip (2.0.2 stable). However, ran into this error: ** D:\web2pyweb2py -S welcome Traceback (most recent call last): File web2py.py, line 16, in module File gluon/__init__.py, line 15, in module File gluon/globals.py, line 24, in module File gluon/serializers.py, line 11, in module File gluon/languages.py, line 264, in module File gluon/languages.py, line 250, in read_possible_plurals WindowsError: [Error 3] The system cannot find the path specified: 'D:\\web2py\\gluon\\contrib\\rules/*.*' ** Then, realized there was no folder called gluon in the extracted folder. I downloaded the source from http://www.web2py.com/examples/static/web2py_src.zip and copied the gluon folder from this source code to the previous web2py folder. This solved the error and was able to web2py GUI. Hope this helps. Regards, Sridhar On Thursday, August 30, 2012 9:11:34 AM UTC+5:30, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
Congtras all of you . Is CMS is also completed? On Thursday, 30 August 2012 09:11:34 UTC+5:30, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
Still 2.0.2. On Friday, August 31, 2012 3:31:20 PM UTC+12, Massimo Di Pierro wrote: Can you please try again the windows binary and let me know if the problem persists. On Thursday, 30 August 2012 21:13:18 UTC-5, Andrew wrote: Well, perhaps not. The Download page says 2.0.3, but when I start it says 2.0.2. in the app ? Perhaps the windoes exe has not been updated. On Friday, August 31, 2012 2:09:29 PM UTC+12, Andrew wrote: The Issue is still there in 2.0.3 On Thursday, August 30, 2012 11:40:07 PM UTC+12, Sridhar wrote: Hi Team, Thanks a ton for the new features and improvements! I'm just getting started and was trying to run web2py.exe on Windows 7 after downloading it from http://www.web2py.com/examples/static/web2py_win.zip (2.0.2 stable). However, ran into this error: ** D:\web2pyweb2py -S welcome Traceback (most recent call last): File web2py.py, line 16, in module File gluon/__init__.py, line 15, in module File gluon/globals.py, line 24, in module File gluon/serializers.py, line 11, in module File gluon/languages.py, line 264, in module File gluon/languages.py, line 250, in read_possible_plurals WindowsError: [Error 3] The system cannot find the path specified: 'D:\\web2py\\gluon\\contrib\\rules/*.*' ** Then, realized there was no folder called gluon in the extracted folder. I downloaded the source from http://www.web2py.com/examples/static/web2py_src.zip and copied the gluon folder from this source code to the previous web2py folder. This solved the error and was able to web2py GUI. Hope this helps. Regards, Sridhar On Thursday, August 30, 2012 9:11:34 AM UTC+5:30, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - CRYPT now defaults to pbkdf2(1000,20,sha1) - Built-in wiki with menu, tags, search, media, permissions. def index: return auth.wiki() -
[web2py] Re: web2py 2.0.2 is out
The problem I have with the admin application comes from this import. from gluon.languages import (regex_language, read_possible_languages, lang_sampling, read_dict, write_dict, read_plural_dict, write_plural_dict, PLURAL_RULES) Regards. J. --
[web2py] Re: web2py 2.0.2 is out
I just downloaded it myself, unziped and VERSION says 2.0.3. I am not sure what is wrong. try another clean download in its own folder. many sure you only have one web2py running. On Friday, 31 August 2012 00:00:32 UTC-5, Andrew W wrote: Still 2.0.2. On Friday, August 31, 2012 3:31:20 PM UTC+12, Massimo Di Pierro wrote: Can you please try again the windows binary and let me know if the problem persists. On Thursday, 30 August 2012 21:13:18 UTC-5, Andrew wrote: Well, perhaps not. The Download page says 2.0.3, but when I start it says 2.0.2. in the app ? Perhaps the windoes exe has not been updated. On Friday, August 31, 2012 2:09:29 PM UTC+12, Andrew wrote: The Issue is still there in 2.0.3 On Thursday, August 30, 2012 11:40:07 PM UTC+12, Sridhar wrote: Hi Team, Thanks a ton for the new features and improvements! I'm just getting started and was trying to run web2py.exe on Windows 7 after downloading it from http://www.web2py.com/examples/static/web2py_win.zip (2.0.2 stable). However, ran into this error: ** D:\web2pyweb2py -S welcome Traceback (most recent call last): File web2py.py, line 16, in module File gluon/__init__.py, line 15, in module File gluon/globals.py, line 24, in module File gluon/serializers.py, line 11, in module File gluon/languages.py, line 264, in module File gluon/languages.py, line 250, in read_possible_plurals WindowsError: [Error 3] The system cannot find the path specified: 'D:\\web2py\\gluon\\contrib\\rules/*.*' ** Then, realized there was no folder called gluon in the extracted folder. I downloaded the source from http://www.web2py.com/examples/static/web2py_src.zip and copied the gluon folder from this source code to the previous web2py folder. This solved the error and was able to web2py GUI. Hope this helps. Regards, Sridhar On Thursday, August 30, 2012 9:11:34 AM UTC+5:30, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### Auth improvements - auth.enable_record_versioning(db) adds full versioning to all tables - @auth.requires_login(otherwise=URL(...)) -
[web2py] Re: web2py 2.0.2 is out
I am still having this issue: On Thursday, 30 August 2012 18:03:36 UTC+2, Annet wrote: Please can you post a concrete example? In: Editing file init/models/db.py ... when I click the save button, normally a flash showed up in the top-right corner: div class=flash style=display: none;file saved on Thu Aug 30 17:55:13 2012/div In 2.0.2 the div is empty after clicking the save button: div class=flash style=display: none;/div I also noticed that when I inspect the footer element there's a div with the following contents: div id=footer class=fixed div style=height: auto; width: auto; top: -4px; left: -4px; visibility: hidden; position: absolute; overflow: visible; white-space: nowrap; font-family: 'Monaco','Menlo','Ubuntu Mono','Droid Sans Mono','Consolas',monospace; font-size: 12px; font-weight: 400; font-style: normal; line-height: 16.25px;XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX/div Kind regards, Annet --
[web2py] Re: web2py 2.0.2 is out
ace.js does that. Yes it is odd. I am not sure why. Also there is no flash because of the box that now flashes green. We may move from ace to codemirror. On Friday, 31 August 2012 00:42:14 UTC-5, Annet wrote: I am still having this issue: On Thursday, 30 August 2012 18:03:36 UTC+2, Annet wrote: Please can you post a concrete example? In: Editing file init/models/db.py ... when I click the save button, normally a flash showed up in the top-right corner: div class=flash style=display: none;file saved on Thu Aug 30 17:55:13 2012/div In 2.0.2 the div is empty after clicking the save button: div class=flash style=display: none;/div I also noticed that when I inspect the footer element there's a div with the following contents: div id=footer class=fixed div style=height: auto; width: auto; top: -4px; left: -4px; visibility: hidden; position: absolute; overflow: visible; white-space: nowrap; font-family: 'Monaco','Menlo','Ubuntu Mono','Droid Sans Mono','Consolas',monospace; font-size: 12px; font-weight: 400; font-style: normal; line-height: 16.25px;XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX/div Kind regards, Annet --
[web2py] Re: web2py 2.0.2 is out
Congratulations to all! And special thanks to Massimo for all his hard work, diligence, and patience. Anthony On Wednesday, August 29, 2012 11:41:34 PM UTC-4, Massimo Di Pierro wrote: After 5 months. It is done. This is the most waited and the most feature-packed release. I am sure we'll find some corners that need to be ironed but it is considerably better than 1.99.7. It adds lot of new features and improves many existing ones: - 57,000 new lines of code and closed 279 issues since 1.99.7. - Retrieving data from DB should be faster, in particular select(cacheable=True) - Has a new scheduler, a built-in wiki, new language and pluralization system, better markmin with oembed support and better scaffolding app, increased security. - Lots of experimental features including GIS support, mongodb support, built-in auth.wiki(), and more. Should be 100% backward compatible. If you run into any issue let us know ASAP. I personally want to thank the major contributors to this release (in alphabetic order) Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, Niphlod, Patrick, Vladyslav, They spend many nights testing, coding, debugging at a very fast pace. Many many people have contributed. If your contribution has not been properly acknowledged please let us know ASAP. It is probably an oversight. Massimo Detailed changelog === ## 2.00.2 ### 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 - 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 ### 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 - 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
[web2py] Re: web2py 2.0.2 is out
Its very nice that you have created such a wonderful framework. Its awesome...:) --
[web2py] Re: web2py 2.0.2 is out
Wow, this is cool! But I'm hitting a bug in rewrite_on_error: http://code.google.com/p/web2py/issues/detail?id=964 --
[web2py] Re: web2py 2.0.2 is out
I'm really excited about the new scheduler -X option. What do -E -b -L do? I don't see them in --help or in the widget.py code. On Wednesday, August 29, 2012 10:17:48 PM UTC-7, Michael Toomim wrote: Wow, this is cool! But I'm hitting a bug in rewrite_on_error: http://code.google.com/p/web2py/issues/detail?id=964 --
[web2py] Re: web2py 2.0.2 is out
Oh, I see, these are scheduler.py options! -b: sets the heartbeat time -L: sets the logging level -E: sets the max empty runs On Wednesday, August 29, 2012 10:23:29 PM UTC-7, Michael Toomim wrote: What do -E -b -L do? I don't see them in --help or in the widget.py code. --
[web2py] Re: web2py 2.0.2 is out
I just can't think of a better web framework for Python than WEB2PY .. which just got better [best, I mean] :) .. Great job done by entire web2py team.. Thanks all and Massimo for this wonderful framework. .. Cheers, Rahul D. On Thursday, August 30, 2012 11:16:12 AM UTC+5:30, Michael Toomim wrote: Oh, I see, these are scheduler.py options! -b: sets the heartbeat time -L: sets the logging level -E: sets the max empty runs On Wednesday, August 29, 2012 10:23:29 PM UTC-7, Michael Toomim wrote: What do -E -b -L do? I don't see them in --help or in the widget.py code. --