I'm looking into formlib and display widgets. If anyone on the list has an
example, I'd love to see it. The following Objects of List example works
perfectly for edit view. For the display view it shows the AddressBook schema
fine, but shows the Person schema edit form. I've googled all day, but have
failed to come up with anything. Any help on this is appreciated. Thanks.
Kevin Smith
PS: Stephen, thanks for your feedback on mapDictToSchema
browser.py
person_widget = CustomWidgetFactory(ObjectWidget, Person)
persons_widget = CustomWidgetFactory(ListSequenceWidget,
subwidget=person_widget)
class EditFormView(form.EditForm):
form_fields = form.Fields(IAddressBook, render_context=True)
form_fields['persons'].custom_widget = persons_widget
class DisplayFormView(form.DisplayForm):
form_fields = form.Fields(IAddressBook, for_display=True)
form_fields['persons'].custom_widget = persons_widget
app.py
class IPerson( interface.Interface ):
first = schema.TextLine( title=u"firstname" )
last = schema.TextLine( title=u"lastname" )
class Person( Persistent ):
interface.implements( IPerson )
def __init__( self, first='', last='' ):
self.first, self.last = first, last
first= ''
last= ''
class IAddressBook( interface.Interface ):
title = schema.TextLine( title=u'Title', required=False )
persons = schema.List( title=u'Persons',
value_type=schema.Object( IPerson, title=u'person' ),
required=False )
class AddressBook( Persistent ):
interface.implements( IAddressBook )
def __init__( self, title="My Address Book" ):
# create a default title
self.title=title
title = ''
# don't forget to make lists persistent
persons = PersistentList()
_______________________________________________
Zope3-users mailing list
[email protected]
http://mail.zope.org/mailman/listinfo/zope3-users