Permalink
Fetching contributors…
Cannot retrieve contributors at this time
129 lines (86 sloc) 3.91 KB
TODO
====
Tasks
-----
- create an issue: simplevocabs do not get alphabetically ordered,
nore do they use the order defined by getObjectPositionInParent
(see issue #4)
- drop the try
from Products.Archetypes.interfaces.vocabulary import IVocabularyTerm
- we should add the parameter 'lang' to IVocabularyTerm.getTermValue
[jens] agrees, but we should make it optional (normally translations should happen transparently)
- move getTermPath to separate hierarchicalvocabulary interface?
[hf] this would allow us to differentiate hierarchical vocabularies by their interface
we'd should to make namedvocbaulary.getKeyPathForTerms aware of this too then.
- (missing in alias) mark methods getVocabularyValue and getVocabularyKey as deprecated
and use the methods getTermValue and getTermKey instead
[jens] XXX
- use zope3 interfaces for terms
useful for example in NamedVocabulary.getKeyPathForTerms (see comment there)
- resolve TODOs (XXX, FIXME) marked in the code ;-)
Ideas for features
------------------
selection-depth
+++++++++++++++
basic idea:
fields can specify selection depth (0 unlimited, 1 first level, 2 seconde level, etc)
that gets displayed in the Displaylist.
why do we need that:
if a certain field does not need the fine-grained selection possibilities
a vocabulary offers, no new vocabulary has to be defined.
variable displaylists
+++++++++++++++++++++
basic idea:
field can specify which attribute of the vocabularyterms is used for the
displaylist.
why could we need that:
in certain cases the same vocabulary is needed, but another field or field
combination should be used for display in the selection.
risks/drawbacks:
more complicated handling of cached displaylists (different dictionaries have
to be handeled, not just one)
caching displaylists
++++++++++++++++++++
basic idea:
caching of displaylists and vocabularydicts using ZCacheable (the only thing we'd
have to care about is invalidating the cache when a term gets moved or changed)
why do we need that:
fetching vocabulary displaylists costs a lot.
at the moment the displaylist for the whole vocab gets fetched
everytime a content type that uses the vocabulary is edited and even VIEWED!
[jens] will implement this for the vdex vocabulary in the near future: DONE
open tasks: Invalidate cache after upload of a vdex.
(Auto?)-Assign to a ram-cache-manager.
generic setup support
+++++++++++++++++++++
basic idea
vdex already can be ex and imported to xml. we shoud realize it for simple
and term too
[jens] decision needed: use vdex, some own xml or better atxml from marshall
or just simple Excel importable CSV?)
Jens decision is: vdex (implemented import) or csv (todo).
mixins
++++++
common hierarchic functionality of vdex and tree and possibly other types
should be coded in a mixin.
code and test once, use everywhere
catalog updates
+++++++++++++++
current limitation:
every change on the structure of a vocabulary
(eg: moving a term up the hierarchy)
has to trigger not only the invalidation of the cache but also
the reindexing of all terms down the hierarchy
(uid_catalog search on getTermUidPath,
catalog.manage_reindexIndex(ids=('getTermUidPath',)))
currently this is a limitation of treevocabulary.
vdex dont need to get cataloged
need to reindex objects in uid_catalog and portal_catalog:
Which method do we need to hook?
in portal_catalog for indexes used by content types
the worse problem is to reindex the objects that define custom indexes on their path-methods.
we don't know which catalog they use (could be portal_catalog, but also any other)
brainstorming:
- store catalog and index in vocab or the atvmtool
- provide a hook somewhere that can be implemented
- maybe use references instead of text-linefields to be able to find out which content uses a certain term.