diff --git a/CHANGES.txt b/CHANGES.txt index ac04117..11c5bed 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -5,6 +5,9 @@ CHANGES Version 1.2.0 (??/??/2007) ------------------------- +- Feature: Added new field "promptChoiceField" to the "All Widgets" demo + demonstrating the prompt message of the select widget. + - Feature: Increased the integer default value of "All Widgets" demo to show off our new internationalized converter. diff --git a/src/z3c/formdemo/widgets/browser.py b/src/z3c/formdemo/widgets/browser.py index 1f8f0db..917cf40 100644 --- a/src/z3c/formdemo/widgets/browser.py +++ b/src/z3c/formdemo/widgets/browser.py @@ -46,6 +46,8 @@ class AllFields(persistent.Persistent): choiceField = FieldProperty(interfaces.IAllFields['choiceField']) optionalChoiceField = FieldProperty( interfaces.IAllFields['optionalChoiceField']) + promptChoiceField = FieldProperty( + interfaces.IAllFields['promptChoiceField']) dateField = FieldProperty(interfaces.IAllFields['dateField']) datetimeField = FieldProperty(interfaces.IAllFields['datetimeField']) decimalField = FieldProperty(interfaces.IAllFields['decimalField']) @@ -81,8 +83,12 @@ def getContent(self): return interfaces.IAllFields(self.context) def updateWidgets(self): - super(AllFieldsForm, self).updateWidgets() + self.widgets = zope.component.getMultiAdapter( + (self, self.request, self.getContent()), IWidgets) + self.widgets.update() self.widgets['hiddenField'].mode = HIDDEN_MODE + self.widgets['promptChoiceField'].prompt = True + self.widgets['promptChoiceField'].update() def __call__(self): self.update() diff --git a/src/z3c/formdemo/widgets/interfaces.py b/src/z3c/formdemo/widgets/interfaces.py index 6387f44..fa4636a 100644 --- a/src/z3c/formdemo/widgets/interfaces.py +++ b/src/z3c/formdemo/widgets/interfaces.py @@ -80,6 +80,12 @@ class IAllFields(zope.interface.Interface): vocabulary=vocab, required=False) + promptChoiceField = zope.schema.Choice( + title=u'Choice (Explicit Prompt)', + description=u'This is a choice field with an explicit prompt.', + vocabulary=vocab, + required=False) + dateField = zope.schema.Date( title=u'Date', description=u'This is a Date field.',