[Checkins] SVN: z3c.form/trunk/ Don't create unnecessary self.items in update() method of
Vincent Fretin
vincent.fretin at gmail.com
Sat Feb 6 11:49:33 EST 2010
Log message for revision 108841:
Don't create unnecessary self.items in update() method of
SelectWidget in DISPLAY_MODE. Now items is a property.
Changed:
U z3c.form/trunk/CHANGES.txt
U z3c.form/trunk/src/z3c/form/browser/select.py
-=-
Modified: z3c.form/trunk/CHANGES.txt
===================================================================
--- z3c.form/trunk/CHANGES.txt 2010-02-06 15:23:31 UTC (rev 108840)
+++ z3c.form/trunk/CHANGES.txt 2010-02-06 16:49:32 UTC (rev 108841)
@@ -5,7 +5,8 @@
2.3.3 (unreleased)
------------------
-- Nothing changed yet.
+- Don't create unnecessary self.items in update() method of
+ SelectWidget in DISPLAY_MODE. Now items is a property.
2.3.2 (2010-01-21)
Modified: z3c.form/trunk/src/z3c/form/browser/select.py
===================================================================
--- z3c.form/trunk/src/z3c/form/browser/select.py 2010-02-06 15:23:31 UTC (rev 108840)
+++ z3c.form/trunk/src/z3c/form/browser/select.py 2010-02-06 16:49:32 UTC (rev 108841)
@@ -33,7 +33,6 @@
zope.interface.implementsOnly(interfaces.ISelectWidget)
klass = u'select-widget'
- items = ()
prompt = False
noValueMessage = _('no value')
@@ -50,12 +49,17 @@
"""See z3c.form.interfaces.IWidget."""
super(SelectWidget, self).update()
widget.addFieldClass(self)
- self.items = []
+
+ @property
+ def items(self):
+ if self.terms is None: # update() has not been called yet
+ return ()
+ items = []
if (not self.required or self.prompt) and self.multiple is None:
message = self.noValueMessage
if self.prompt:
message = self.promptMessage
- self.items.append({
+ items.append({
'id': self.id + '-novalue',
'value': self.noValueToken,
'content': message,
@@ -68,9 +72,10 @@
if zope.schema.interfaces.ITitledTokenizedTerm.providedBy(term):
content = translate(
term.title, context=self.request, default=term.title)
- self.items.append(
+ items.append(
{'id':id, 'value':term.token, 'content':content,
'selected':selected})
+ return items
@zope.component.adapter(zope.schema.interfaces.IChoice, interfaces.IFormLayer)
More information about the checkins
mailing list