To group inside a field I do something like this with 3 different tables:
form=SQLFORM.factory(db.patient, db.emergencycontacts, db.dependents)
fs0=form[0][:26] #patient rows
fs1=form[0][26:37] #emergency contacts
fs2=form[0][37:41] #dependents
fs3=form[0][-1] # submit row (last)
form[0]=TABLE(
FIELDSET(TAG.legend("Patient Info"),TABLE(fs0),_id="register0"),
FIELDSET(TAG.legend("Emergency Contact
Info"),TABLE(fs1),_id="register1"),
FIELDSET(TAG.legend("Dependents"),TABLE(fs2),_id="register2"),
TABLE(fs3))
HTH
On Wed, Jun 26, 2013 at 11:58 AM, António Ramos <[email protected]>wrote:
> Just drafting something but here is the problem
>
> My context:
> I have 3 tables
>
> table form
> table steps
> table fields
>
> A form can have many steps
> a step can have many fields
>
> This way i can have one form with 3 steps, each with some fields and
> another form with 10 steps , each with some more fields.
>
> i read these tables to create a form using factory.
>
> i have 2 problems
>
>
> *1 i need to mark the input fields with a "step" tag *
>
> here is my code:
>
> def my_string_widget(field, value,step):
>
> return INPUT(_name=field.name,
> _id="%s_%s" % (field._tablename, field.name),
> _class=field.type,
> _value='',
> *_step=step,*
> requires=field.requires)
>
> def index():
> cont=0
> fields=[]
> formid=db.form(request.args(0) or 1)
> steps=formid.steps.select()
> for step in steps:
> print "step id-",step.id
> for field in step.fields.select():
> print "field...",field.step
> fields.append(Field(field.nome,widget=lambda
> field,value:my_string_widget(field,value,*step.id*)))
>
> form=SQLFORM.factory(*fields)
> print form
> if form.process().accepted:
> response.flash='a gravar registo'
> return dict(nome=formid.nome,form=form)
>
>
> The problem is:
> It marks all fields with the same "step" value, the last value in *step.id,
> why?*
> *
> *
> *2 - sqlformfactory *
> how do i group sqlformfactory fields inside a div?
> i want to create a section for each step in the form to style with css
>
> Best regards
> António
>
> --
>
> ---
> 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/groups/opt_out.
>
>
>
--
---
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/groups/opt_out.