Question

I am currently working on a Plone project with several custom content types. These content types have several fields that in turn fetch their values from vocabularies. Currently, I've just hard coded my values in a vocabularies.py file as such:

from Products.Archetypes import atapi

CITIES_LIST = atapi.DisplayList((
    ('nairobi', 'Nairobi'),
    ('kisumu', 'Kisumu'),
    ('mombasa', 'Mombasa'),
    ('eldoret', 'Eldoret'),
    ('nakuru', 'Nakuru'),
    ))

This works well and there is no problem with it.

The only drawback is that the vocabulary is etched in code and it will need a programmer/developer to modify the existing vocabulary.

What I need is a way for site administrators and users who are not necessarily programmers to be able to modify the vocabulary in future through the web interface i.e. a client from another country to be able to change the list of available cities.

I've looked at Products.ATVocabularyManager but I don't think it fits the bill. Perhaps if there was an interface with a grid to manage the vocabularies. This I guess I will have to manage them by storing them as ArcheTypes.

Is there a way to handle such a situation in Plone 4? How would one go about it?

Was it helpful?

Solution

Products.ATVocabularyManager should work fine for your use case. I've used it with success many times in the past.

It provides an admin UI to manage your vocabularies.

If the UI to manage to vocabs is not to your liking, perhaps you could contribute to the project to make it better?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top