[web2py] Re: Unittest vs other tests in web2py
A few resources: http://packages.python.org/web2py_utils/test_runner.html http://www.web2pyslices.com/slices/take_slice/142 http://web2py.com/AlterEgo/default/show/260 Anthony On Tuesday, December 27, 2011 3:26:25 AM UTC-5, lyn2py wrote: Hello guys, My application is growing bigger and I may not be able to hand test each component of the application as it grows. I was wondering if you are using any testing libraries or devices on web2py, what you recommend and how is your experience with it? I am looking for something easy to use ...just like web2py :) I have not done any testing before, and I am completely new to this. Any advice is appreciated. Thanks!
[web2py] Bug in widget.py: lack type='int' in new added --socket-timeout param
In version 1.99.4, socket-timeout was added to start params, which is very needed to tuning socket.settimeout in rocket.py. The default value 1 second often lead to class 'socket.timeout'(timed out) error in a slow network,such as WAN than LAN. But in widget.py line 557: parser.add_option('--socket-timeout', default=1, dest='socket_timeout', help='timeout for socket (1 second)') lack a type to cast this param.Should be: parser.add_option('--socket-timeout', default=1, type='int', dest='socket_timeout', help='timeout for socket (1 second)') This bug lead to deadly exceptions(see below) when set python web2py.py ... --socket-timeout=60 ... in start time: --Traceback Exception in thread Thread-8: Traceback (most recent call last): File /usr/local/lib/python2.7/threading.py, line 552, in __bootstrap_inner self.run() File /home/git/web2py/gluon/rocket.py, line 1282, in run conn = Connection(*conn) File /home/git/web2py/gluon/rocket.py, line 130, in __init__ self.socket.settimeout(SOCKET_TIMEOUT) File /usr/local/lib/python2.7/socket.py, line 224, in meth return getattr(self._sock,name)(*args) TypeError: a float is required -Traceback
[web2py] Book translation
I want start translation of the book 4th edition (czech language). Can I read somewhere hints, how to do it? Idea: Can we have menu item in web2py.com/book (Translations?) with such hints?
Re: [web2py] Is this possible?
On Dec 27, 2011, at 2:49 AM, lyn2py wrote: I already have in routes.py: routers = dict( BASE = dict( default_controller='default', default_function='index' ) ) How should my code be organized so that I can achieve: website.com/items -- shows all the items website.com/items/127 -- displays details of item #127 Right now, it's being done this way: website.com/items -- shows all the items website.com/items/display/127 -- displays details of item #127 Must the changes be made to routes.py or can the code base be slightly modified to achieve it? An easy way is to put the item number in a query string: website.com/items?127 Another way would be to use the function default/items instead of items/index. If you really, really want items to be a controller and have the URL syntax you're looking for, use something like this: routers = dict( yourapp = dict( functions = { 'items' : ['index', ... ] } ) ) The idea is that you need to inform the router of the function names in the items controller. Suggestion: website.com/item/127 looks a little more natural than items/127, at least to me. Easiest to do by putting your code in default/item and default/items.
[web2py] Re: smartgrid and auth.archive() ugly code; how to improve?
Have you tried: form = SQLFORM.smartgrid(..., onupdate=auth.archive) Also, note there is also crud.archive, which is the same as auth.archive. Anthony On Tuesday, December 27, 2011 7:22:34 AM UTC-5, Cliff wrote: This is some ugly code that makes auth.archive() work with smartgrid: if len(request.args) 3 and request.args[-4] == 'owner' and\ request.args[-3] == 'edit' and request.args[-2]=='owner'\ and form[2].process(onsuccess=auth.archive).accepted: pass Surely there must be a better way. Any and all hints gratefully accepted.
[web2py] Re: smartgrid raises exception when adding record in many-to-many
I get the same error with the correct field name. On Dec 27, 11:15 am, Anthony abasta...@gmail.com wrote: I think you want format='%(dog_name)s' -- there is no 'name' field in the 'dog' table. Anthony On Tuesday, December 27, 2011 11:11:18 AM UTC-5, Cliff wrote: This is kind of a show stopper. Smartgrid appears to stumble over table format definitions. Note the commented out format line in this model. db.define_table('dog', Field('dog_name', length=32), ## format='%(name)s', ) db.define_table('owner', Field('name', length=32), Field('phone', length=32), ) db.define_table('dog_owner', Field('dog_id', db.dog), Field('owner_id', db.owner) ) Uncomment the line and smartgrid 1.99.4 raises this exception when trying to add a record to the dog_owner table: type 'exceptions.TypeError' string indices must be integers, not str Here is the traceback: Traceback (most recent call last): File /home/cjk/w-99-4/web2py/gluon/restricted.py, line 204, in restricted exec ccode in environment File /home/cjk/w-99-4/web2py/applications/doggies/controllers/ dog.py, line 5, in module File /home/cjk/w-99-4/web2py/gluon/globals.py, line 172, in lambda self._caller = lambda f: f() File /home/cjk/w-99-4/web2py/applications/doggies/controllers/ dog.py, line 2, in index form = SQLFORM.smartgrid(db.dog) File /home/cjk/w-99-4/web2py/gluon/sqlhtml.py, line 1991, in smartgrid user_signature=user_signature,**kwargs) File /home/cjk/w-99-4/web2py/gluon/sqlhtml.py, line 1581, in grid _class='web2py_form').process( File /home/cjk/w-99-4/web2py/gluon/sqlhtml.py, line 862, in __init__ inp = self.widgets.options.widget(field, default) File /home/cjk/w-99-4/web2py/gluon/sqlhtml.py, line 220, in widget return SELECT(*opts, **attr) File /home/cjk/w-99-4/web2py/gluon/html.py, line 587, in __init__ self._postprocessing() File /home/cjk/w-99-4/web2py/gluon/html.py, line 1704, in _postprocessing if value and str(c['_value'])==str(value): TypeError: string indices must be integers, not str Here is the controller: def index(): form = SQLFORM.smartgrid( db.owner, ui = 'jquery-ui', onvalidation = crud.archive, ) return dict(form=form) To duplicate the problem: Add one owner and one dog. In your browser, open localhost:8000/dogapp/owner/index Edit the owner. Click the Dog Owner link Note the empty grid with add button. Click Add Observe web2py error message Similar exceptions occur if you use IS_IN_DB to define a format string.
[web2py] Re: Record Versioning
JF, did you try to remove default=request.now from created_on? On Dec 27, 4:55 pm, JF jf_sic...@hotmail.com wrote: Have another issue. It seems the datetime in my archive will always be the datetime of creation of the initial record, not the updates. Here is a glimpse of the Model: --- --- db.define_table('part', Field('iditm', db.item), Field('idbsn', db.business), Field('mpn', 'string'), Field('created_on', 'datetime', default=request.now, update=request.now, readable=False, writable=False), Field('created_by', db.auth_user, default=auth.user_id, readable=False, writable=False)) db.define_table('part_archive', Field('current_record', db.part), db.part) --- --- And here is a glimpse of the Controller: --- --- @auth.requires_login() def edit(): edit an existing mpn page thispage = db.part[request.args(0)] if not thispage: redirect(URL(r=request, f='index')) form = crud.update(db.part, thispage, onaccept=auth.archive, next = URL(r=request, f='edit', args=request.args), deletable = False) archive = db(db.part_archive.current_record==thispage.id).select() return dict(form=form, thispage=thispage, archive=archive) --- --- I thought the update=request.now in the Model would update the Field 'created_on'. What would be a good way to update this field whenever the Record is updated? I want to archive the datetime a table is updated. Thanks, JF
[web2py] Re: smartgrid raises exception when adding record in many-to-many
Can you open a ticket: http://code.google.com/p/web2py/issues/list
[web2py] Re: Book translation
You will soon be able to do this online. On Dec 27, 10:03 am, Mirek Zvolský zvol...@seznam.cz wrote: I want start translation of the book 4th edition (czech language). Can I read somewhere hints, how to do it? Idea: Can we have menu item in web2py.com/book (Translations?) with such hints?
[web2py] Re: Bug in widget.py: lack type='int' in new added --socket-timeout param
Thanks I changed to 60secs by default and type casted to int as you suggested. On Dec 27, 2:39 am, evantan tanhen...@gmail.com wrote: In version 1.99.4, socket-timeout was added to start params, which is very needed to tuning socket.settimeout in rocket.py. The default value 1 second often lead to class 'socket.timeout'(timed out) error in a slow network,such as WAN than LAN. But in widget.py line 557: parser.add_option('--socket-timeout', default=1, dest='socket_timeout', help='timeout for socket (1 second)') lack a type to cast this param.Should be: parser.add_option('--socket-timeout', default=1, type='int', dest='socket_timeout', help='timeout for socket (1 second)') This bug lead to deadly exceptions(see below) when set python web2py.py ... --socket-timeout=60 ... in start time: --Traceback Exception in thread Thread-8: Traceback (most recent call last): File /usr/local/lib/python2.7/threading.py, line 552, in __bootstrap_inner self.run() File /home/git/web2py/gluon/rocket.py, line 1282, in run conn = Connection(*conn) File /home/git/web2py/gluon/rocket.py, line 130, in __init__ self.socket.settimeout(SOCKET_TIMEOUT) File /usr/local/lib/python2.7/socket.py, line 224, in meth return getattr(self._sock,name)(*args) TypeError: a float is required -Traceback
[web2py] Re: smartgrid and auth.archive() ugly code; how to improve?
Setting archive_current=False works. Thank you. On Dec 27, 11:09 am, Anthony abasta...@gmail.com wrote: What if you do: SQLFORM.smartgrid(..., oncreate=crud.archive, onupdate=crud.archive) or SQLFORM.smartgrid(..., onupdate=lambda form: crud.archive(form, archive_current=False)) Note, archive_current=False tells it to archive the previous record (the one being updated) rather than the current record (the updated version). Anthony On Tuesday, December 27, 2011 10:54:35 AM UTC-5, Cliff wrote: This also works SQLFORM.smartgrid(..., onvalidation=crud.archive... But, I now discover archive never saves the original record. You can edit the record and it saves the edits, but it never gets the first version of it. This statement from the Official Bookon updating, it stores a copy of the record (as it was before the update) is incorrect, at least as far as smartgrid is concerned. I haven't tried it with SQLFORM by itself or with CRUD. On Dec 27, 9:38 am, Anthony abas...@gmail.com wrote: Have you tried: form = SQLFORM.smartgrid(..., onupdate=auth.archive) Also, note there is also crud.archive, which is the same as auth.archive. Anthony On Tuesday, December 27, 2011 7:22:34 AM UTC-5, Cliff wrote: This is some ugly code that makes auth.archive() work with smartgrid: if len(request.args) 3 and request.args[-4] == 'owner' and\ request.args[-3] == 'edit' and request.args[-2]=='owner'\ and form[2].process(onsuccess=auth.archive).accepted: pass Surely there must be a better way. Any and all hints gratefully accepted.
[web2py] Web Service - Connect from Andriod App
Hi, I am planing a web2py web services that will allow my custom android app to communicate together. My primary concern is how would I secure it? IE: Have it so applications need to login in order to interact? Any documentation you can point me to would be helpful. -- -- Regards, Bruce Wade http://ca.linkedin.com/in/brucelwade http://www.wadecybertech.com http://www.warplydesigned.com http://www.fitnessfriendsfinder.com
[web2py] Re: Record Versioning
This should work. Which version? If you have the bug with the latest version please open a ticket in google code. On Dec 27, 2:55 am, JF jf_sic...@hotmail.com wrote: Have another issue. It seems the datetime in my archive will always be the datetime of creation of the initial record, not the updates. Here is a glimpse of the Model: --- --- db.define_table('part', Field('iditm', db.item), Field('idbsn', db.business), Field('mpn', 'string'), Field('created_on', 'datetime', default=request.now, update=request.now, readable=False, writable=False), Field('created_by', db.auth_user, default=auth.user_id, readable=False, writable=False)) db.define_table('part_archive', Field('current_record', db.part), db.part) --- --- And here is a glimpse of the Controller: --- --- @auth.requires_login() def edit(): edit an existing mpn page thispage = db.part[request.args(0)] if not thispage: redirect(URL(r=request, f='index')) form = crud.update(db.part, thispage, onaccept=auth.archive, next = URL(r=request, f='edit', args=request.args), deletable = False) archive = db(db.part_archive.current_record==thispage.id).select() return dict(form=form, thispage=thispage, archive=archive) --- --- I thought the update=request.now in the Model would update the Field 'created_on'. What would be a good way to update this field whenever the Record is updated? I want to archive the datetime a table is updated. Thanks, JF
[web2py] How to debug web service
I have problem with web2py web service https://groups.google.com/forum/#!searchin/web2py/xmlrpclib/web2py/gZA0J6LXa4w/Cpbnz5hjKmkJ and I received no answer here in google group. OK, it is my problem. But, can somebody teach me or give some starting ideas, how to do debugging of such problems ? Thanks
[web2py] smartgrid raises exception when adding record in many-to-many
This is kind of a show stopper. Smartgrid appears to stumble over table format definitions. Note the commented out format line in this model. db.define_table('dog', Field('dog_name', length=32), ##format='%(name)s', ) db.define_table('owner', Field('name', length=32), Field('phone', length=32), ) db.define_table('dog_owner', Field('dog_id', db.dog), Field('owner_id', db.owner) ) Uncomment the line and smartgrid 1.99.4 raises this exception when trying to add a record to the dog_owner table: type 'exceptions.TypeError' string indices must be integers, not str Here is the traceback: Traceback (most recent call last): File /home/cjk/w-99-4/web2py/gluon/restricted.py, line 204, in restricted exec ccode in environment File /home/cjk/w-99-4/web2py/applications/doggies/controllers/ dog.py, line 5, in module File /home/cjk/w-99-4/web2py/gluon/globals.py, line 172, in lambda self._caller = lambda f: f() File /home/cjk/w-99-4/web2py/applications/doggies/controllers/ dog.py, line 2, in index form = SQLFORM.smartgrid(db.dog) File /home/cjk/w-99-4/web2py/gluon/sqlhtml.py, line 1991, in smartgrid user_signature=user_signature,**kwargs) File /home/cjk/w-99-4/web2py/gluon/sqlhtml.py, line 1581, in grid _class='web2py_form').process( File /home/cjk/w-99-4/web2py/gluon/sqlhtml.py, line 862, in __init__ inp = self.widgets.options.widget(field, default) File /home/cjk/w-99-4/web2py/gluon/sqlhtml.py, line 220, in widget return SELECT(*opts, **attr) File /home/cjk/w-99-4/web2py/gluon/html.py, line 587, in __init__ self._postprocessing() File /home/cjk/w-99-4/web2py/gluon/html.py, line 1704, in _postprocessing if value and str(c['_value'])==str(value): TypeError: string indices must be integers, not str Here is the controller: def index(): form = SQLFORM.smartgrid( db.owner, ui = 'jquery-ui', onvalidation = crud.archive, ) return dict(form=form) To duplicate the problem: Add one owner and one dog. In your browser, open localhost:8000/dogapp/owner/index Edit the owner. Click the Dog Owner link Note the empty grid with add button. Click Add Observe web2py error message Similar exceptions occur if you use IS_IN_DB to define a format string.
[web2py] Is this possible?
I already have in routes.py: routers = dict( BASE = dict( default_controller='default', default_function='index' ) ) How should my code be organized so that I can achieve: website.com/items -- shows all the items website.com/items/127 -- displays details of item #127 Right now, it's being done this way: website.com/items -- shows all the items website.com/items/display/127 -- displays details of item #127 Must the changes be made to routes.py or can the code base be slightly modified to achieve it? Thanks!
[web2py] smartgrid and auth.archive() ugly code; how to improve?
This is some ugly code that makes auth.archive() work with smartgrid: if len(request.args) 3 and request.args[-4] == 'owner' and\ request.args[-3] == 'edit' and request.args[-2]=='owner'\ and form[2].process(onsuccess=auth.archive).accepted: pass Surely there must be a better way. Any and all hints gratefully accepted.
[web2py] Re: How to use response.optimize_css?
My bad. The css files aren't in response.files :-o
Re: [web2py] Web Service - Connect from Andriod App
On Dec 27, 2011, at 8:47 AM, Bruce Wade wrote: I am planing a web2py web services that will allow my custom android app to communicate together. My primary concern is how would I secure it? IE: Have it so applications need to login in order to interact? Any documentation you can point me to would be helpful. Will each device have its own login account? How will the account be created (from the app? on the website?)?
[web2py] Re: smartgrid raises exception when adding record in many-to-many
I think you want format='%(dog_name)s' -- there is no 'name' field in the 'dog' table. Anthony On Tuesday, December 27, 2011 11:11:18 AM UTC-5, Cliff wrote: This is kind of a show stopper. Smartgrid appears to stumble over table format definitions. Note the commented out format line in this model. db.define_table('dog', Field('dog_name', length=32), ##format='%(name)s', ) db.define_table('owner', Field('name', length=32), Field('phone', length=32), ) db.define_table('dog_owner', Field('dog_id', db.dog), Field('owner_id', db.owner) ) Uncomment the line and smartgrid 1.99.4 raises this exception when trying to add a record to the dog_owner table: type 'exceptions.TypeError' string indices must be integers, not str Here is the traceback: Traceback (most recent call last): File /home/cjk/w-99-4/web2py/gluon/restricted.py, line 204, in restricted exec ccode in environment File /home/cjk/w-99-4/web2py/applications/doggies/controllers/ dog.py, line 5, in module File /home/cjk/w-99-4/web2py/gluon/globals.py, line 172, in lambda self._caller = lambda f: f() File /home/cjk/w-99-4/web2py/applications/doggies/controllers/ dog.py, line 2, in index form = SQLFORM.smartgrid(db.dog) File /home/cjk/w-99-4/web2py/gluon/sqlhtml.py, line 1991, in smartgrid user_signature=user_signature,**kwargs) File /home/cjk/w-99-4/web2py/gluon/sqlhtml.py, line 1581, in grid _class='web2py_form').process( File /home/cjk/w-99-4/web2py/gluon/sqlhtml.py, line 862, in __init__ inp = self.widgets.options.widget(field, default) File /home/cjk/w-99-4/web2py/gluon/sqlhtml.py, line 220, in widget return SELECT(*opts, **attr) File /home/cjk/w-99-4/web2py/gluon/html.py, line 587, in __init__ self._postprocessing() File /home/cjk/w-99-4/web2py/gluon/html.py, line 1704, in _postprocessing if value and str(c['_value'])==str(value): TypeError: string indices must be integers, not str Here is the controller: def index(): form = SQLFORM.smartgrid( db.owner, ui = 'jquery-ui', onvalidation = crud.archive, ) return dict(form=form) To duplicate the problem: Add one owner and one dog. In your browser, open localhost:8000/dogapp/owner/index Edit the owner. Click the Dog Owner link Note the empty grid with add button. Click Add Observe web2py error message Similar exceptions occur if you use IS_IN_DB to define a format string.
[web2py] Re: Wifi Tags.
Great, i missed that feature. That way you would need to fire Access Point requests periodically to update the device list from the web2py server On Dec 27, 3:54 am, Khalil KHAMLICHI khamlichi.kha...@gmail.com wrote: I guess you could connect to the WIFI AP and query them for connected hosts. (but still have to use request.client to know whos who) You will need to parse the pages from Wifi ap to get your information.
[web2py] Re: smartgrid and auth.archive() ugly code; how to improve?
What if you do: SQLFORM.smartgrid(..., oncreate=crud.archive, onupdate=crud.archive) or SQLFORM.smartgrid(..., onupdate=lambda form: crud.archive(form, archive_current=False)) Note, archive_current=False tells it to archive the previous record (the one being updated) rather than the current record (the updated version). Anthony On Tuesday, December 27, 2011 10:54:35 AM UTC-5, Cliff wrote: This also works SQLFORM.smartgrid(..., onvalidation=crud.archive... But, I now discover archive never saves the original record. You can edit the record and it saves the edits, but it never gets the first version of it. This statement from the Official Bookon updating, it stores a copy of the record (as it was before the update) is incorrect, at least as far as smartgrid is concerned. I haven't tried it with SQLFORM by itself or with CRUD. On Dec 27, 9:38 am, Anthony abas...@gmail.com wrote: Have you tried: form = SQLFORM.smartgrid(..., onupdate=auth.archive) Also, note there is also crud.archive, which is the same as auth.archive. Anthony On Tuesday, December 27, 2011 7:22:34 AM UTC-5, Cliff wrote: This is some ugly code that makes auth.archive() work with smartgrid: if len(request.args) 3 and request.args[-4] == 'owner' and\ request.args[-3] == 'edit' and request.args[-2]=='owner'\ and form[2].process(onsuccess=auth.archive).accepted: pass Surely there must be a better way. Any and all hints gratefully accepted.
[web2py] Re: smartgrid and auth.archive() ugly code; how to improve?
This also works SQLFORM.smartgrid(..., onvalidation=crud.archive... But, I now discover archive never saves the original record. You can edit the record and it saves the edits, but it never gets the first version of it. This statement from the Official Bookon updating, it stores a copy of the record (as it was before the update) is incorrect, at least as far as smartgrid is concerned. I haven't tried it with SQLFORM by itself or with CRUD. On Dec 27, 9:38 am, Anthony abasta...@gmail.com wrote: Have you tried: form = SQLFORM.smartgrid(..., onupdate=auth.archive) Also, note there is also crud.archive, which is the same as auth.archive. Anthony On Tuesday, December 27, 2011 7:22:34 AM UTC-5, Cliff wrote: This is some ugly code that makes auth.archive() work with smartgrid: if len(request.args) 3 and request.args[-4] == 'owner' and\ request.args[-3] == 'edit' and request.args[-2]=='owner'\ and form[2].process(onsuccess=auth.archive).accepted: pass Surely there must be a better way. Any and all hints gratefully accepted.
[web2py] Re: Record Versioning
Have another issue. It seems the datetime in my archive will always be the datetime of creation of the initial record, not the updates. Here is a glimpse of the Model: -- db.define_table('part', Field('iditm', db.item), Field('idbsn', db.business), Field('mpn', 'string'), Field('created_on', 'datetime', default=request.now, update=request.now, readable=False, writable=False), Field('created_by', db.auth_user, default=auth.user_id, readable=False, writable=False)) db.define_table('part_archive', Field('current_record', db.part), db.part) -- And here is a glimpse of the Controller: -- @auth.requires_login() def edit(): edit an existing mpn page thispage = db.part[request.args(0)] if not thispage: redirect(URL(r=request, f='index')) form = crud.update(db.part, thispage, onaccept=auth.archive, next = URL(r=request, f='edit', args=request.args), deletable = False) archive = db(db.part_archive.current_record==thispage.id).select() return dict(form=form, thispage=thispage, archive=archive) -- I thought the update=request.now in the Model would update the Field 'created_on'. What would be a good way to update this field whenever the Record is updated? I want to archive the datetime a table is updated. Thanks, JF
[web2py] Unittest vs other tests in web2py
Hello guys, My application is growing bigger and I may not be able to hand test each component of the application as it grows. I was wondering if you are using any testing libraries or devices on web2py, what you recommend and how is your experience with it? I am looking for something easy to use ...just like web2py :) I have not done any testing before, and I am completely new to this. Any advice is appreciated. Thanks!
[web2py] Re: Is this possible?
Your code base should be adjusted. Both Anthony Jonathan helped me with similar problem for me. Here is my routes.py: https://bitbucket.org/id804097/minnaedu/src/570149716878/webapp/routes.py here is my controller/index: https://bitbucket.org/id804097/minnaedu/src/570149716878/webapp/applications/init/controllers/default.py here is the final application: minnaedu.appspot.com Hope these help Joseph
Re: [web2py] Re: Wifi Tags.
Yep, you can use pycurl (which has support for cookies) to query the AP and load the data into some db with eventually : Ap_name, timestamp, . . . And other fields.
[web2py] Re: smartgrid raises exception when adding record in many-to-many
Done. Thanks. On Dec 27, 11:36 am, Anthony abasta...@gmail.com wrote: Can you open a ticket:http://code.google.com/p/web2py/issues/list
[web2py] Re: smartgrid raises exception when adding record in many-to-many
My bad. The problem was self inflicted, caused by a diagnostic change I made to html.py. On Dec 27, 12:07 pm, Cliff cjk...@gmail.com wrote: Done. Thanks. On Dec 27, 11:36 am, Anthony abasta...@gmail.com wrote: Can you open a ticket:http://code.google.com/p/web2py/issues/list
Re: [web2py] Web Service - Connect from Andriod App
Every device will have it's own login, just like every member has their own login. The accounts would be created on the website/server. On Tue, Dec 27, 2011 at 9:00 AM, Jonathan Lundell jlund...@pobox.comwrote: On Dec 27, 2011, at 8:47 AM, Bruce Wade wrote: I am planing a web2py web services that will allow my custom android app to communicate together. My primary concern is how would I secure it? IE: Have it so applications need to login in order to interact? Any documentation you can point me to would be helpful. Will each device have its own login account? How will the account be created (from the app? on the website?)? -- -- Regards, Bruce Wade http://ca.linkedin.com/in/brucelwade http://www.wadecybertech.com http://www.warplydesigned.com http://www.fitnessfriendsfinder.com
[web2py] Re: Instant press 2.1.0 holiday edition (?)
Yes, I should update. I'll ask the system admin (Mariano Reingart) to do so. On 26 dic, 23:50, Martín Mulone mulone.mar...@gmail.com wrote: Requirement: you need at least version 1.99.4 Actualizá alan ese web2py es muy viejo. 2011/12/26 Alan Etkin spame...@gmail.com Here is the last error created (after the service was recovered and tried to access instant press app, i am not the server admin and have no access to the system except by the web2py admin interface) web2py™ Version 1.94.6 (2011-03-27 18:20:38) Python Python 2.5.2: /usr/bin/python Traceback Traceback (most recent call last): File /home/web2py/gluon/restricted.py, line 188, in restricted exec ccode in environment File /home/web2py/applications/ipress/models/00main.py, line 18, in module from appsettings import app_settings ImportError: No module named appsettings Regards On 26 dic, 22:43, Martín Mulone mulone.mar...@gmail.com wrote: Any hint or traceback?. 2011/12/26 Alan Etkin spame...@gmail.com Good work Martin. Thanks I tried to load the installer with appadmin on a production server and the server stopped working :/ Anyway, i don't think it is related to instant press issues. By the way, i think the admin access is hard to find in the default view for logged-in users. Maybe it could be emphazised (of course, that is a really small detail) On 26 dic, 16:49, Ovidio Marinho ovidio...@gmail.com wrote: Revolviendo la discursion del post new Post: no momiento en que se fixa la noticia en Body la primieira viez e en Extarct en primera viez, se tienes en la view principal home la noticia em body e um boton (leia mas) que se lhama a url extract. En segunda viez que actualizo el browse el boton leia mas nao mas se apresenta. Isto es a si miesmo ou ha algo errado.? By the time we type the news we have two choices and body extract, I realized thatwhen we put the first time the news on the main page shows a read more button.But if this update the Browse button does not appear again, this is normal or is something wrong? 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 Apóio 2011/12/26 Martín Mulone mulone.mar...@gmail.com ckeditor, tinyMCE, etc all WYSIWYG web editor are xhtml output. None of the them support markup languages. 2011/12/26 Ovidio Marinho ovidio...@gmail.com Would not it be better to use the CKEditor as to insert photos into a new pageneeds to address in localhost? 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 Apóio 2011/12/26 Martín Mulone mulone.mar...@gmail.com The Admin password is only showed the first time, when the user is created (because is random generated). Delete all the content inside databases folder. And point again to localhost:8000/app/. You have to see something like this (attached) 2011/12/26 Ovidio Marinho ovidio...@gmail.com Once we enter the administrator password is not shown in the Main Menu 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 Apóio 2011/12/26 Martín Mulone mulone.mar...@gmail.com fixed. Sorry, try again. 2011/12/26 Marin Pranjić marin.pran...@gmail.com On Mon, Dec 26, 2011 at 3:21 PM, Martín Mulone mulone.mar...@gmail.com wrote: Instant press is not dead, I update it to vesion 2.1.0 holiday edition (?). *What's new?.* Hierarchy pages to menu, now working. Now layout is based in getskeleton. New design. New panel. Fix bugs. Added edit link to page, and articles. Compatibility with new version of web2py. *Info and screenshots.* https://bitbucket.org/mulonemartin/instantpress/wiki/Home *Download* https://bitbucket.org/mulonemartin/instantpress/downloads/instantpres. .. -- http://martin.tecnodoc.com.ar ErrorYou do not have access to the wiki. -- http://martin.tecnodoc.com.ar --
[web2py] Re: Wifi Tags.
Many thanks!! I'll keep You updated guys! On 27 Dic, 14:33, Khalil KHAMLICHI khamlichi.kha...@gmail.com wrote: Yep, you can use pycurl (which has support for cookies) to query the AP and load the data into some db with eventually : Ap_name, timestamp, . . . And other fields.
Re: [web2py] Web Service - Connect from Andriod App
On Dec 27, 2011, at 9:05 AM, Bruce Wade wrote: Every device will have it's own login, just like every member has their own login. The accounts would be created on the website/server. On Tue, Dec 27, 2011 at 9:00 AM, Jonathan Lundell jlund...@pobox.com wrote: On Dec 27, 2011, at 8:47 AM, Bruce Wade wrote: I am planing a web2py web services that will allow my custom android app to communicate together. My primary concern is how would I secure it? IE: Have it so applications need to login in order to interact? Any documentation you can point me to would be helpful. Will each device have its own login account? How will the account be created (from the app? on the website?)? I'd consider using JSON-RPC or XML-RPC and basic auth. Here's a thread dealing with a bug in that process that has some useful examples: https://groups.google.com/forum/#!topic/web2py/lLCCUrwB5x0 Depending on how secure you need to be, https might be a good idea as well.
[web2py] Re: how to remove duplicate tables in smartgrid?
I don't know what you're trying to do, but maybe you should read this http://web2py.com/books/default/chapter/29/6#Self-Reference-and-aliases If you have products A, B and C; and, B and C relate to A; then that's what you need to read. Any way to prevent this? Yes. Don't refer to the product table twice in your related product table. On Dec 26, 7:18 am, Jim Gregory bikesatw...@gmail.com wrote: I am creating an application that has a one-to-many table that references the same table twice: db.define_table('product', Field('title', required=True, unique=True), Field('sku', required = True, unique=True), Field('description', 'text'), format = '%(title)s' ) db.define_table('related_product', Field('product_id', db.product, writable=False), Field('product', 'reference product'), ) If I create a smartgrid on the 'product' table using: def product(): return dict(grid=SQLFORM.smartgrid( db.product, linked_tables=['related_product'], )) the related_product table appears twice because it references the product table twice. Any way to prevent this? -Jim
[web2py] Re: How to make a function to download a file?
I don't use a database to create the CSV content but generate is as a comma delimited text. Also I want to set the file name to be downloaded. I don't see how to do it from the book. This line has to be changed in order to work: raise HTTP(200,str(content), **{'Content-Type':'text/csv', 'Content-Disposition':attachment + ';'})
[web2py] How to add link for downloading CSV file with specifying filename
I generate CSV content ready to use as a .csv file; don't use a database and have a function to do that. I want this .csv file to be available for download after click and the filename to be set from the application. How to do that in web2py?
[web2py] Advanced Live Search
In the example in chapter 3 of the book, mywiki application we have: def search(): an ajax wiki search page return dict(form=FORM(INPUT(_id='keyword',_name='keyword', _onkeyup=ajax('callback', ['keyword'], 'target');)), target_div=DIV(_id='target')) def callback(): an ajax callback that returns a ul of links to wiki pages query = db.page.title.contains(request.vars.keyword) pages = db(query).select(orderby=db.page.title) links = [A(p.title, _href=URL('show',args=p.id)) for p in pages] return UL(*links) Assume that we would like to search a keyword both in the title and the body of the wiki in the following manner: 1. The default search searches in the title and body both. 2. We have two check boxes with the attribute name set to title and body respectively. Initially both are checked. But the user can uncheck one of them to request the application to search only in the other field. What is the best way to achieve this? Specifically, if I add two checkboxes to the search function return expression, i.e.: INPUT(_type=checkbox, _name=title ), Title, INPUT(_type=checkbox, _name=body), Body, how I can check whether they are checked or not from within the callback function? I'd like to use these two checkboxes to express which fields of the database should be searched.
[web2py] Re: Advanced Live Search
You can submit multiple inputs (via id) with the ajax() function, so if you give your checkbox inputs id's (e.g., id='title' and id='body'), you should be able to do: ajax('callback', ['keyword', 'title', 'body'], 'target') and in the controller, access request.vars.keyword, request.vars.title, and request.vars.body (I think title and body will be None if they are not checked). Anthony On Tuesday, December 27, 2011 2:29:56 PM UTC-5, smirghor wrote: In the example in chapter 3 of the book, mywiki application we have: def search(): an ajax wiki search page return dict(form=FORM(INPUT(_id='keyword',_name='keyword', _onkeyup=ajax('callback', ['keyword'], 'target');)), target_div=DIV(_id='target')) def callback(): an ajax callback that returns a ul of links to wiki pages query = db.page.title.contains(request.vars.keyword) pages = db(query).select(orderby=db.page.title) links = [A(p.title, _href=URL('show',args=p.id)) for p in pages] return UL(*links) Assume that we would like to search a keyword both in the title and the body of the wiki in the following manner: 1. The default search searches in the title and body both. 2. We have two check boxes with the attribute name set to title and body respectively. Initially both are checked. But the user can uncheck one of them to request the application to search only in the other field. What is the best way to achieve this? Specifically, if I add two checkboxes to the search function return expression, i.e.: INPUT(_type=checkbox, _name=title ), Title, INPUT(_type=checkbox, _name=body), Body, how I can check whether they are checked or not from within the callback function? I'd like to use these two checkboxes to express which fields of the database should be searched.
[web2py] Re: How to debug web service
I also think the problem is the rpc client code, since the request output looks the same in both cases. Why do you create a new Transport instance instead of leaving the default value? On Dec 27, 1:09 pm, Mirek Zvolský zvol...@seznam.cz wrote: I have problem with web2py web servicehttps://groups.google.com/forum/#!searchin/web2py/xmlrpclib/web2py/gZ... and I received no answer here in google group. OK, it is my problem. But, can somebody teach me or give some starting ideas, how to do debugging of such problems ? Thanks
[web2py] Re: How to debug web service
Have you read the request data processed by the web2py service? You could send it to a log, store it in db or just print it on the standard output (in development) with the print command for comparing the strings. On 27 dic, 13:09, Mirek Zvolský zvol...@seznam.cz wrote: I have problem with web2py web servicehttps://groups.google.com/forum/#!searchin/web2py/xmlrpclib/web2py/gZ... and I received no answer here in google group. OK, it is my problem. But, can somebody teach me or give some starting ideas, how to do debugging of such problems ? Thanks
[web2py] Re: Record Versioning
Hi, I was working on 1.99.4, Cleaned the Application, Packed it to give it a try with 1.99.3. It actually worked correctly with 1.99.3. But it turns out that it is the Clean up that fixed the problem. Probably that the few modifications I made to the tables corrupted the database. Knowing that, I will always do a Clean up after modifying anything in the tables. Thanks, JF
[web2py] Re: How to make a function to download a file?
Maybe try writing the content to a StringIO object and using response.stream (see http://web2py.com/books/default/chapter/29/4#response). Anthony On Thursday, December 22, 2011 10:09:04 PM UTC-5, thstart wrote: I want the visitors to be able to download a CSV file. here is my code: def download(): response.headers['Content-Type'] = 'text/csv' attachment = 'attachment;filename=' + file+ '.csv' response.headers['Content-Disposition'] = attachment content = ',,' raise HTTP(200,str(content), **{'Content-Type':'text/csv', 'Content-Disposition':attachment + ';'}) When I click on the link download, I get 'Undefined' in the browser and nothing is downloaded. What is wrong?
[web2py] Re: new appliances - Happy Holidays
Oh, my app for final project is there ! :) On Dec 21, 10:12 pm, Massimo Di Pierro massimo.dipie...@gmail.com wrote: I finally did it. I cleaned upappliances; deleted the very old ones; upgraded some old ones; fixed some; added some good ones. They all work now with the latest web2py. I moved them all on githup. http://web2py.com/applianceshttps://github.com/mdipierro/web2py-appliances Eachappliancescomes prepackaged (w2p) with screenshots. Each app as an ABOUT file that needs to be edited. This is on my TODO list but I could use your help. I will take patches. ;-) I am planning a better interface to this github repo that will list screenshots. Perhaps tomorrow Happy Holidays everybody. Massimo
[web2py] Re: web2py sitting behind load balancer showing lb IP not client IP
I already said I can't change settings on the load balancer. There is no default route on this network so the traffic must be sourced from the inside interface of the load balancer as it hits the web server. Here's the problem: diff -r 9619eb054669 gluon/globals.py --- a/gluon/globals.py Tue Dec 27 10:16:19 2011 -0600 +++ b/gluon/globals.py Tue Dec 27 17:07:00 2011 -0500 @@ -548,7 +548,7 @@ (record_id_name, table, record_id, unique_key) = \ response._dbtable_and_field -dd = dict(locked=False, client_ip=request.env.remote_addr, +dd = dict(locked=False, client_ip=request.client.replace(':', '.'), modified_datetime=request.now, session_data=cPickle.dumps(dict(self)), unique_key=unique_key) The code for storing sessions on disk was using request.client which checks http_x_forwarded_for before using remote_addr. The code for writing the session to database was just using remote_addr which was always showing my private IP of the load balancer. The above patch should take care of it. Thanks, Dave On Dec 23, 7:40 pm, pbreit pbreitenb...@gmail.com wrote: What web server are you running? On Nginx there's a module to take the x-forwarded-for and make it the client ip. http://wiki.nginx.org/HttpRealIpModule
[web2py] Re: How to add link for downloading CSV file with specifying filename
One way would be to modify the response.headers object in the controller with the customized filename. response.headers[Content-Disposition] = attachment;Filename=%s.doc % string And then return the csv data The user's click would call the web2py action to return de csv (you can define it in the view) The web2py book uses this statement (10.1.6) to specify the content: response.headers['Content-Type']='application/vnd.ms-excel' On 27 dic, 16:50, thstart thst...@gmail.com wrote: I generate CSV content ready to use as a .csv file; don't use a database and have a function to do that. I want this .csv file to be available for download after click and the filename to be set from the application. How to do that in web2py?
[web2py] Re: Advanced Live Search
Hi Anthony. Thanks for your answer. I seem to be unable to replicate what you said. How do you test if the checkboxes are checked? On Dec 27, 2:16 pm, Anthony abasta...@gmail.com wrote: You can submit multiple inputs (via id) with the ajax() function, so if you give your checkbox inputs id's (e.g., id='title' and id='body'), you should be able to do: ajax('callback', ['keyword', 'title', 'body'], 'target') and in the controller, access request.vars.keyword, request.vars.title, and request.vars.body (I think title and body will be None if they are not checked). Anthony On Tuesday, December 27, 2011 2:29:56 PM UTC-5, smirghor wrote: In the example in chapter 3 of the book, mywiki application we have: def search(): an ajax wiki search page return dict(form=FORM(INPUT(_id='keyword',_name='keyword', _onkeyup=ajax('callback', ['keyword'], 'target');)), target_div=DIV(_id='target')) def callback(): an ajax callback that returns a ul of links to wiki pages query = db.page.title.contains(request.vars.keyword) pages = db(query).select(orderby=db.page.title) links = [A(p.title, _href=URL('show',args=p.id)) for p in pages] return UL(*links) Assume that we would like to search a keyword both in the title and the body of the wiki in the following manner: 1. The default search searches in the title and body both. 2. We have two check boxes with the attribute name set to title and body respectively. Initially both are checked. But the user can uncheck one of them to request the application to search only in the other field. What is the best way to achieve this? Specifically, if I add two checkboxes to the search function return expression, i.e.: INPUT(_type=checkbox, _name=title ), Title, INPUT(_type=checkbox, _name=body), Body, how I can check whether they are checked or not from within the callback function? I'd like to use these two checkboxes to express which fields of the database should be searched.
[web2py] Re: Advanced Live Search
I figured this work if I have the name attributes for the checkboxes (and in my case the name attributes are the same as the id attributes). Thanks again! On Dec 27, 5:19 pm, smirghor m.mirghorb...@gmail.com wrote: Hi Anthony. Thanks for your answer. I seem to be unable to replicate what you said. How do you test if the checkboxes are checked? On Dec 27, 2:16 pm, Anthony abasta...@gmail.com wrote: You can submit multiple inputs (via id) with the ajax() function, so if you give your checkbox inputs id's (e.g., id='title' and id='body'), you should be able to do: ajax('callback', ['keyword', 'title', 'body'], 'target') and in the controller, access request.vars.keyword, request.vars.title, and request.vars.body (I think title and body will be None if they are not checked). Anthony On Tuesday, December 27, 2011 2:29:56 PM UTC-5, smirghor wrote: In the example in chapter 3 of the book, mywiki application we have: def search(): an ajax wiki search page return dict(form=FORM(INPUT(_id='keyword',_name='keyword', _onkeyup=ajax('callback', ['keyword'], 'target');)), target_div=DIV(_id='target')) def callback(): an ajax callback that returns a ul of links to wiki pages query = db.page.title.contains(request.vars.keyword) pages = db(query).select(orderby=db.page.title) links = [A(p.title, _href=URL('show',args=p.id)) for p in pages] return UL(*links) Assume that we would like to search a keyword both in the title and the body of the wiki in the following manner: 1. The default search searches in the title and body both. 2. We have two check boxes with the attribute name set to title and body respectively. Initially both are checked. But the user can uncheck one of them to request the application to search only in the other field. What is the best way to achieve this? Specifically, if I add two checkboxes to the search function return expression, i.e.: INPUT(_type=checkbox, _name=title ), Title, INPUT(_type=checkbox, _name=body), Body, how I can check whether they are checked or not from within the callback function? I'd like to use these two checkboxes to express which fields of the database should be searched.
[web2py] Error after upgrading - column auth_user.registration_id does not exist -
I just upgraded to web2py 1.99 for an app that have been operational for over a year and now get the following error. I have looked at all the code and cannot find a reference to registration_id and am not ysing any custom auth. Any help or ideas where to look next would be greatly appreciated??? TICKET ID 108.45.61.175.2011-12-27.17-29-47.014c5022-dacd-41c5-b997-d4a63c907e7e class 'psycopg2.ProgrammingError' column auth_user.registration_id does not exist LINE 1: ...r.registration_key, auth_user.reset_password_key, auth_user ^VERSIONweb2py™(1, 99, 4, datetime.datetime(2011, 12, 14, 14, 46, 14), 'stable')PythonPython 2.7.1: /usr/local/bin/pythonTRACEBACK 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Traceback (most recent call last): File /home/dlwatey/webapps/web2py/web2py/gluon/restricted.py, line 204, in restricted exec ccode in environment File /home/dlwatey/webapps/web2py/web2py/applications/init/controllers/default.py https://www.meetingmonkey.net/admin/default/edit/init/controllers/default.py, line 75, in module File /home/dlwatey/webapps/web2py/web2py/gluon/globals.py, line 172, in lambda self._caller = lambda f: f() File /home/dlwatey/webapps/web2py/web2py/applications/init/controllers/default.py https://www.meetingmonkey.net/admin/default/edit/init/controllers/default.py, line 52, in user return dict(form=auth()) File /home/dlwatey/webapps/web2py/web2py/gluon/tools.py, line 1141, in __call__ return getattr(self,args[0])() File /home/dlwatey/webapps/web2py/web2py/gluon/tools.py, line 1703, in login user = self.db(table_user[username] == form.vars[username]).select().first() File /home/dlwatey/webapps/web2py/web2py/gluon/dal.py, line 6333, in select return self.db._adapter.select(self.query,fields,attributes) File /home/dlwatey/webapps/web2py/web2py/gluon/dal.py, line 1282, in select rows = response(sql) File /home/dlwatey/webapps/web2py/web2py/gluon/dal.py, line 1272, in response self.execute(sql) File /home/dlwatey/webapps/web2py/web2py/gluon/dal.py, line 1359, in execute return self.log_execute(*a, **b) File /home/dlwatey/webapps/web2py/web2py/gluon/dal.py, line 1353, in log_execute ret = self.cursor.execute(*a, **b) ProgrammingError: column auth_user.registration_id does not exist LINE 1: ...r.registration_key, auth_user.reset_password_key, auth_user
[web2py] Re: Advanced Live Search
On Tuesday, December 27, 2011 6:19:23 PM UTC-5, smirghor wrote: Hi Anthony. Thanks for your answer. I seem to be unable to replicate what you said. How do you test if the checkboxes are checked? Should just be: if request.vars.title: etc.
[web2py] Re: Is this possible?
Thank you Joseph and Jonathan - I'll look into the methods you both suggested! :) On Dec 27, 11:39 pm, Jonathan Lundell jlund...@pobox.com wrote: On Dec 27, 2011, at 2:49 AM, lyn2py wrote: I already have in routes.py: routers = dict( BASE = dict( default_controller='default', default_function='index' ) ) How should my code be organized so that I can achieve: website.com/items -- shows all the items website.com/items/127 -- displays details of item #127 Right now, it's being done this way: website.com/items -- shows all the items website.com/items/display/127 -- displays details of item #127 Must the changes be made to routes.py or can the code base be slightly modified to achieve it? An easy way is to put the item number in a query string: website.com/items?127 Another way would be to use the function default/items instead of items/index. If you really, really want items to be a controller and have the URL syntax you're looking for, use something like this: routers = dict( yourapp = dict( functions = { 'items' : ['index', ... ] } ) ) The idea is that you need to inform the router of the function names in the items controller. Suggestion: website.com/item/127 looks a little more natural than items/127, at least to me. Easiest to do by putting your code in default/item and default/items.
[web2py] Re: Error after upgrading - column auth_user.registration_id does not exist -
auth.user_id or auth_user.id might be what you're looking for On Dec 28, 7:42 am, david.waldrop david.wald...@gmail.com wrote: I just upgraded to web2py 1.99 for an app that have been operational for over a year and now get the following error. I have looked at all the code and cannot find a reference to registration_id and am not ysing any custom auth. Any help or ideas where to look next would be greatly appreciated??? TICKET ID 108.45.61.175.2011-12-27.17-29-47.014c5022-dacd-41c5-b997-d4a63c907e7e class 'psycopg2.ProgrammingError' column auth_user.registration_id does not exist LINE 1: ...r.registration_key, auth_user.reset_password_key, auth_user ^VERSIONweb2py™(1, 99, 4, datetime.datetime(2011, 12, 14, 14, 46, 14), 'stable')PythonPython 2.7.1: /usr/local/bin/pythonTRACEBACK 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Traceback (most recent call last): File /home/dlwatey/webapps/web2py/web2py/gluon/restricted.py, line 204, in restricted exec ccode in environment File /home/dlwatey/webapps/web2py/web2py/applications/init/controllers/default. py https://www.meetingmonkey.net/admin/default/edit/init/controllers/def..., line 75, in module File /home/dlwatey/webapps/web2py/web2py/gluon/globals.py, line 172, in lambda self._caller = lambda f: f() File /home/dlwatey/webapps/web2py/web2py/applications/init/controllers/default. py https://www.meetingmonkey.net/admin/default/edit/init/controllers/def..., line 52, in user return dict(form=auth()) File /home/dlwatey/webapps/web2py/web2py/gluon/tools.py, line 1141, in __call__ return getattr(self,args[0])() File /home/dlwatey/webapps/web2py/web2py/gluon/tools.py, line 1703, in login user = self.db(table_user[username] == form.vars[username]).select().first() File /home/dlwatey/webapps/web2py/web2py/gluon/dal.py, line 6333, in select return self.db._adapter.select(self.query,fields,attributes) File /home/dlwatey/webapps/web2py/web2py/gluon/dal.py, line 1282, in select rows = response(sql) File /home/dlwatey/webapps/web2py/web2py/gluon/dal.py, line 1272, in response self.execute(sql) File /home/dlwatey/webapps/web2py/web2py/gluon/dal.py, line 1359, in execute return self.log_execute(*a, **b) File /home/dlwatey/webapps/web2py/web2py/gluon/dal.py, line 1353, in log_execute ret = self.cursor.execute(*a, **b) ProgrammingError: column auth_user.registration_id does not exist LINE 1: ...r.registration_key, auth_user.reset_password_key, auth_user
[web2py] Re: How to add link for downloading CSV file with specifying filename
Yep, Alan's suggestion is what I use too. See https://groups.google.com/d/topic/web2py/qjTF3_wHlWQ/discussion for some more details on how I do it
[web2py] Using powertable plugin emits deprecation warning for me -- is it just me?
I suspect not, I've filed bug 581 ( http://code.google.com/p/web2py/issues/detail?id=581 ) But I haven't seen any other reports of this. Am I doing something wrong?
[web2py] Re: need help with xmlrpclib
In the first, you are POSTing directly to ereceipts-server.com. In the second, the request is going through a different server, however it is specified in your Transport() function. We might need to see your Transport() function. Are you able to determine if web2py is returning the 400 error or the web server? Is it generating an error in the web2py error logs? Is the POST even making it to the ereceipts-server.com server? Or it could be failing at the proxy server. Proxy situations are difficult to debug. While it's good to know what your server is sending, it's much better to know what the proxy server is sending and what the destination server is receiving.
[web2py] Strikethrough with MARKMIN
How do I strikethrough some text using MARKMIN? It's not available in the book, but I noticed that MARKMIN has a strikethrough attribute. Thanks!