[Zope3-Users] Implementing a DropdownWidget for a country-code vocabulary

Jesper Petersen instantfoo at gmail.com
Sat Sep 15 12:38:22 EDT 2007


Hello Adam,
Great, thanks

On 9/15/07, Adam Groszer <agroszer at gmail.com> wrote:
>
>  Hello Jesper,
>
>
> That should be solved already. Look for z3c.widget.country.
>
> svn://svn.zope.org/repos/main/z3c.widget/trunk/src/z3c/widget/country
>
>
> Saturday, September 15, 2007, 6:08:19 PM, you wrote:
>
>
>  >
>
> 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>
>
>
> So i send in a different vocabulary.. one that looks like this:
>
>
> [(u'AD', u'Andorra'),...]
>
>
> So i coded this:
>
>
> ---------------------------------
>
>  class CountryDropDown(DropdownWidget):
>
>
>      def __init__(self, field, request):
>
>          #This returns a dict: {'countrycode':'countryname'}
>
>          territories = request.locale.displayNames.territories
>
>
>
>          # Invert the territories dict: keys=names, values=ccodes
>
>          self.territories = sorted(territories.items (),
> key=itemgetter(1))
>
>
>          #not using this any longer..
>
>          #voc = getUtility(IVocabularyFactory, u'Country codes')
>
>
>
>          voc = SimpleVocabulary.fromItems(self.territories)
>
>          super(CountryDropDown, self).__init__(field, voc, request)
>
>
>
>      def textForValue(self, term):
>
>          return term.value
>
> ---------------------------------
>
>
> But it seems like when i choose a country, e.g Andorra, the constraint
> fails. I think it is because my modified vocabulary that i sent in which it
> is now checking constraints against fails.
>
>
> I want the constraints to be checked in my ordinary vocabulary but i want
> to use a different one when populating the dropdown.. any ideas?
>
>
>
> ----------
>
> Instant Foo - Naturally Flavoured
>
>
>
>
>
> --
>
> Best regards,
>
>  Adam                            mailto:agroszer at gmail.com<agroszer at gmail.com>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.zope.org/pipermail/zope3-users/attachments/20070915/a7855c41/attachment.htm


More information about the Zope3-users mailing list