Hi

I'm trying to reuse a form to de-clutter my code. The idea was to create a 
form class using a SQLFORM.factory with all the validation rules set up and 
then use it for each view in the module.

class form ():
 '''
 USAGE:

 thisform = form(([clients],defaultc),([portfolios],defaultp),....)
 '''
 import datetime

 def __init__ (self, cset, pset, bset, l1set, l2set):
 form = SQLFORM.factory (Field ("client", requires=IS_IN_SET (cset [0]), 
default=cset [1]),
 Field ("portfolio", requires=IS_IN_SET (pset [0]), default=pset [1]),
 Field ("benchmark", requires=IS_IN_SET (bset [0]), default=bset [1]),
 Field ("startdate", "datetime", default=datetime.datetime (2013, 1, 11, 0, 0, 
0)),
 Field ("enddate", "datetime", default=datetime.datetime (2013, 3, 30, 0, 0, 
0)),
 Field ("level1", requires=IS_IN_SET (l1set [0]), default=l1set [1]),
 Field ("level2", requires=IS_IN_SET (l2set [0])), default=l2set [1])


 def accepted (self, form):
 startdate = enddate = client = portfolio = benchmark = level1 = level1 = []
 if form.process().accepted:
 client = form.vars.client
 portfolio = form.vars.portfolio
 benchmark = form.vars.benchmark
 startdate = form.vars.startdate
 enddate = form.vars.enddate
 level1 = form.vars.level1
 level2 = form.vars.level2

 if startdate: startdate = datetime.datetime.strftime (startdate, "%Y-%m-%d 
%H:%M:%S")
 if enddate: enddate = datetime.datetime.strftime (enddate, "%Y-%m-%d %H:%M:%S")

 return dict (client=client, portfolio=portfolio, benchmark=benchmark, 
startdate=startdate,
 enddate=enddate, level1=level1, level2=level2)


that failed completely with an `AttributeError: form has no attribute 
process` so I tried defining a method instead with the code below:

def form():
 form = SQLFORM.factory(Field('Client'),
 Field('Portfolio'))
 return form

def sandbox():
 f2= []
 f1 = form().process()

 if f1.process().accepted:
 f2 = "rhubarb"
 return dict(f2=f2)


and the view `{{=f2}}` returns `[]` without ever displaying a form

Would anyone have any thoughts on how to acomplish this? 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.

Reply via email to