[Zope3-dev] SourceInputWidget

Gary Poster gary at zope.com
Wed Aug 3 17:04:45 EDT 2005


On Aug 3, 2005, at 4:46 PM, Marc Rijken wrote:

> Hi all,

Hi Marc.

> I want to propose two little changes to SourceInputWidget  
> (zope.app.form.browser.source).
>
> 1. Context in Source
>
> At this moment, it is not possible to use the context in the source,
> because they do not get the context from the SourceInputWidget. For a
> typical source, I need the context, so I can lookup terms that are
> valid only in a specific context. I propose the following change,  
> because the context is in the field which is passed to the  
> constructor:
>
>     def __init__(self, field, source, request):
>         super(SourceInputWidget, self).__init__(field, request)
>         self.source = source
>
>         # changed in order to let the source know the fieldcontext
>         self.source.field = field
>         # end of changes
>
>         <snip>

I strongly agree that sources need a connection to the field's  
context.  Vocabularies, the precursor to sources, do this.  Because  
Sources are supposed to be the "cleaned up" vocabularies, eventually  
deprecating them, we need to spend some thought to get this right and  
get concensus.  Jim Fulton has expressed strong opinions about this  
in the past, so we probably need to wait on his return from vacation  
(a few weeks from now) before working through this.

If you need to proceed now with this sort of use case, I suggest  
using vocabularies.

> 2. use _toFieldValue en _toFormValue in SourceInputWidget.
>
> _toFieldValue and _toFormValue are powerfull functions in widgets  
> to use a) a
> standard widget and b) override the widget on specific parts. I need a
> SourceInputWidget which uses an instance of a class as value. Because
> the SourceInputWidget only works with strings, I had to convert the
> string to/from the class instance.

Sources already can be used with arbitrary objects; the sources need  
to be able to be converted to string tokens for display.  Read  
through the .txt again; I'll be happy to try and answer specific  
questions.

Gary


More information about the Zope3-dev mailing list