[Zope-dev] z3c.form SequenceWIdget extract
Mat Lehmann
mat at matlehmann.de
Fri Mar 14 08:15:43 EDT 2008
Hi,
I am using z3c.form, which is complicated but a lot more flexible than
the old zope.formlib. Thanks for building it.
Currently, I am having a problem with the SequenceWidget. Let me
illustrate the scenario:
I have a search-form with batching of the results - the links for the
pages of the search contain the search parameters and the action-key as
GET-parameters like this
"search.html?form.widgets.text=foo&form.buttons.search=1".
With "normal" Widgets, this works perfectly well. But when my
search-form contains a SequenceWidget, this approach breaks, because
SequenceWidget depends on zope-functionality in some other place, which
transforms paramters with a key-postfix of ":list" to a list of values
(the postfix is appended to the parameter-name by the template).
The part of my application, that builds the query-string for the batch
does however not have any knowledge about the widget-type of the
parameters (that's intentionally to limit the dependencies to the form
implementation).
This problem would not exist, if the extract-method of SequenceWidget
would contain two additional lines of code:
def extract(self, default=interfaces.NOVALUE):
"""See z3c.form.interfaces.IWidget."""
if (self.name not in self.request and
self.name+'-empty-marker' in self.request):
return []
value = self.request.get(self.name, default)
if value != default:
> if not isinstance(value, (list, tuple)):
> value = [value]
for token in value:
if token == self.noValueToken:
continue
try:
self.terms.getTermByToken(token)
except LookupError:
return default
return value
I (hope I) can work around this problem by subclassing SequenceWidget
and overwrite the extract method, but I wonder, if this fix introduces
some unknown problems and whether it can be included in the standard
implementation.
Thanks,
Mat
--
Dipl. Inf. Matthias Lehmann
Software- und Web-Development
Käthe-Kollwitz-Straße 6
99734 Nordhausen
fon: +49 3631 470652
mobil: +49 170 5176774
eMail: info at matlehmann.de
web: http://www.matlehmann.de
More information about the Zope-Dev
mailing list