@Alan, thanks, I did think about subclassing FORM which would build of existing code.
@Anthony, thanks, Power Form Wizard looks like a start to what I'm wanting. However, it's not clear if you can build forms without using database structures. I can't imagine it would be difficult to change to build custom forms. I spoke to Rick, the developer of jFormer, he is excited and keen for Python interface to the jFormer framework and suggested forking the project. It seems the there has been a bit of effort in the design and client- and server-side validation. Given it's a complete framework, except for the Python, it might be the path of least resistance. However, if someone sees a significant issue, please let me know. Otherwise, I'll keep you updated on the progress. I enjoy using web2py so I certainly want to make this work for web2py. Cheers, Duane. On Dec 2, 3:37 am, Anthony <[email protected]> wrote: > Maybe this will help:http://labs.blouweb.com/powerformwizard/default/index > > > > > > > > On Tuesday, November 29, 2011 4:10:03 PM UTC-5, bluemoth wrote: > > > Hi all, > > > I'm involved with a project that requires many wizards to collect > > information. I could build these wizards by hand or develop a module > > to generate them. It needs to be slick i.e. loads each step using > > AJAX, given certain answers show or hide questions, client-side and > > server-side validation, tips, etc... > > > I have considered jFormer (http://www.jformer.com/) is what I'm > > wanting but the server side is written in PHP. I was thinking about > > using this framework and writing the server side Python code. It's not > > clear to me how crazy this idea is. > > > I have also considered Formee (http://www.formee.org/) and writing the > > server-side Python from scratch. > > > My other consideration is to build something around the Form object in > > gluon. > > > The design I'm thinking is along these lines: > > w = wizardary.Wizard(id='personal_details') > > w.add_step(1, 'Name') > > w.add_step(2, 'Address') > > w.step[1].add_text_input('Firstname', id='firstname') > > w.step[1].add_text_input('Surname', id='lastname') > > w.step[1].add_radio_input('Gender', [['Male', 'm'], ['Female', 'f']], > > style='stack') > > w.step[2].add_address_input('Postal Address', id='postal', style='US') > > w.step[2].add_checkbox_input('Is your billing address different from > > your postal address?', id='billing_address_different') > > w.step[2].add_address_input('Billing Address', id='postal', > > style='US', default='hidden', js=[['show_hide', > > 'billing_address_different', [True], [False]]) > > > Does anyone have any thought on these approaches? > > > Also should I develop this as an independent Python module that gets > > imported into Web2Py? > > > Thanks for your thoughts.

