[Zope3-Users] Implementing a DropdownWidget for a country-code
vocabulary
Hermann Himmelbauer
dusty at qwer.tk
Mon Sep 17 03:04:14 EDT 2007
Am Samstag, 15. September 2007 18:08 schrieb Jesper Petersen:
> Hello!I'm trying to implement a DropdownWidget for my country list. In my
> app i'd like to have a dropdown menu where a user can choose a country (for
> my main content object, a job). My vocabulary is created from a list of
> strings, and stored in a local utility:
>
>
> SimpleVocabulary.fromValues( [u'AD', u'AE', 'AF', ...] )
>
>
> But in my dropdown widget i want to display the country name for each
> option too.. and not just the same value on both the value attribute and
> inside the element:
>
> <option value="AD">Andorra</option>
Perhaps I misunderstand your question, but AFAIK vocabulary support this
scenario. In my application, I also have a country drop-down that is in my
case filled from a relational database. The vocabulary looks like this:
def landVocabulary(obj):
"""Get ktoids and ktonrs from session"""
session = zalchemy.getSession()
laender = session.query(Land)
laender_terms = []
for n, land in enumerate(laender):
laender_terms.append(vocabulary.SimpleVocabulary.\
createTerm(land.landid,
n,
land.name))
return vocabulary.SimpleVocabulary(laender_terms)
# Make function a vocabulary factory
alsoProvides(landVocabulary, IVocabularyFactory)
and in my configuration:
<utility
component=".utils.landVocabulary"
name="landVocabulary"
/>
Now I can use this vocabulary from any interface.
Best regards,
Hermann
--
x1 at aon.at
GPG key ID: 299893C7 (on keyservers)
FP: 0124 2584 8809 EF2A DBF9 4902 64B4 D16B 2998 93C7
More information about the Zope3-users
mailing list