I have inherited a very nice clinical trials randomization module written in web2py (2.9.5) and have been asked to modify it to accommodate a new clinical study. The application features a screen to display all the randomization strata in a list on the screen -- each stratum generates a form using SQLFORM.factory and these are written to a python dictionary and processed in a loop:
if form.process(formname='form1').accepted: Up to this point the clinical studies have had few strata (< 10). This latest study, however, has N=16 strata. Everything looked fine until I checked the functioning of all the 16 forms and found that some worked (i.e. were accepted) and some didn't. Then, after debugging into html.py (accepts function) I noticed that there were only 10 formkeys represented in the session at any one time. Then, after much ado I found this post: http://comments.gmane.org/gmane.comp.python.web2py/129006 in which Anthony explains that, indeed the formkey list in the session holds 10 rotating entries. I'm wondering what my best options are to address this issue -- I'm somewhat at a loss. Another post I found indicated that the following snippet from html.py accepts function generates the formkey list in the session: session[keyname] = list(session.get(keyname,[]))[-9:] + [formkey] So just for fun I altered the "-9" to "-15" and now everything appears to work fine. I have trouble believing that tampering with web2py code is a reasonable approach -- is this change likely to break web2py? Why is the limit set at 10 entries by default? By now you have probably gathered I am new to web2py. Any comments would be welcome. Thanks -- -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

