Hello there! I've been playing with z3c.form for quite a while and have drunk a lot of its Kool-aid already and I decided that I would need a reference widget/gadget. Widget in a sense of simple html representation and gadget in a sense of really complex and nasty stuff under the hood....think of Vista gadgets ;). Anyways, I've started developing that and one of the requirements is that if there is no reference in the source reference, then it would allow for creating a new reference by simply clicking in the ' Register new %(field_name)s' that opens a ajax modal window with the group-subform(?) loaded inside of it. IOW, one would not need to navigate away from the original form to create a new reference if there is no reference in the source. All the exception handling will be treated to address permission issues while creating new source reference objects.
My main question now is: Am I allowed to provide a html form for a group form so I can load its fields inside the ajax modal window? I know I can access the group form like this: (Pdb) self <AjaxReferenceGadget 'form.widgets.place'> (Pdb) self.__parent__.form <processmanager.browser.forms.PlaceSupplierGroup object at 0x3692450> (Pdb) self.__parent__.form.update() (Pdb) self.__parent__.form.render() *** ContentProviderLookupError: pagelet But rendering it would be a different story as you see. So, what I'm thinking to have a "modal" form that shows the fields of a group form like this: <div class="row"> <label for="form-widgets-id">ID</label> <input type="text" id="form-widgets-id" name="form.widgets.id" class="text-widget required textline-field" value="" /> </div> <div class="row"> <label for="form-widgets-name">Name</label> <input type="text" id="form-widgets-name" name="form.widgets.name" class="text-widget required textline-field" value="" /> </div> <div class="action"> <input type="submit" id="form-buttons-add" name="form.buttons.add" class="submit-widget button-field" value="Register" onclick="Javascritp: injectTheContentOfThisModalFormIntoTheOriginalForm()" /> </div> </div> 1) Main form loads; 2) No reference was found in the vocabulary of the reference field and a button is displayed labelled with "Register new ..."; 3) By clicking on the button, the modal window opens up and try to load (via ajax) the group form fields in it; At this point the widget would be responsible for setting up the markup of the group form by doing python registrations on-the-fly ( i guess)...meaning, providing enough context so the form above can be loaded/rendered properly. The reason I need this widget and not a subform as pointed in z3c.form doctests, is that I am going to have loads of reference fields in this app and will need something that can be reused in a quick and consistent way. Creating subforms for all of this object fields would not be good for this case. Any ideas on how to render a group form? Also, can anybody validate if what I am trying to do is way too much and not the correct way of doing it? Regards, Fernando _______________________________________________ Zope3-users mailing list Zope3firstname.lastname@example.org http://mail.zope.org/mailman/listinfo/zope3-users