[Checkins] SVN: z3c.formwidget.query/trunk/src/z3c/formwidget/query/widget.py Store bound source to avoid looking it up multiple times
Martin Aspeli
optilude at gmx.net
Sun Aug 31 18:34:24 EDT 2008
Log message for revision 90633:
Store bound source to avoid looking it up multiple times
Changed:
U z3c.formwidget.query/trunk/src/z3c/formwidget/query/widget.py
-=-
Modified: z3c.formwidget.query/trunk/src/z3c/formwidget/query/widget.py
===================================================================
--- z3c.formwidget.query/trunk/src/z3c/formwidget/query/widget.py 2008-08-31 21:14:30 UTC (rev 90632)
+++ z3c.formwidget.query/trunk/src/z3c/formwidget/query/widget.py 2008-08-31 22:34:24 UTC (rev 90633)
@@ -68,23 +68,30 @@
_queryform = None
_resultsform = None
+ _bound_source = None
@property
def source(self):
return self.field.source
+
+ @property
+ def bound_source(self):
+ if self._bound_source is None:
+ source = self.source
+ if IContextSourceBinder.providedBy(source):
+ source = source(self.context)
+ assert ISource.providedBy(source)
+ self._bound_source = source
+ return self._bound_source
def update(self):
# Allow the source to provide terms until we have more specific ones
# from the query. Things do not go well if self.terms is None
- source = self.source
-
- if IContextSourceBinder.providedBy(source):
- source = source(self.context)
+ self._bound_source = None
+ source = self.bound_source
- assert ISource.providedBy(source)
-
self.terms = SourceTerms(self.context, self.request, self.form, self.field, self, source)
# Set up query form
More information about the Checkins
mailing list