Skip to content

Commit

Permalink
Don't create unnecessary self.items in update() method of
Browse files Browse the repository at this point in the history
SelectWidget in DISPLAY_MODE. Now items is a property.
  • Loading branch information
vincentfretin committed Feb 6, 2010
1 parent 9c388c6 commit 40c28f0
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
3 changes: 2 additions & 1 deletion CHANGES.txt
Expand Up @@ -5,7 +5,8 @@ CHANGES
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)
Expand Down
13 changes: 9 additions & 4 deletions src/z3c/form/browser/select.py
Expand Up @@ -33,7 +33,6 @@ class SelectWidget(widget.HTMLSelectWidget, SequenceWidget):
zope.interface.implementsOnly(interfaces.ISelectWidget)

klass = u'select-widget'
items = ()
prompt = False

noValueMessage = _('no value')
Expand All @@ -50,12 +49,17 @@ def update(self):
"""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,
Expand All @@ -68,9 +72,10 @@ def update(self):
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)
Expand Down

0 comments on commit 40c28f0

Please sign in to comment.