Jason Spisak wrote:
Zopists,
Is there anyway to create a list of unique meta_types in a folder without knowing them before hand.
I would hate to pack them into a REQUEST variable throught iteration because that would take forever.
Some thing like
<dtml-in possible_types> <dtml-in "objectValues(_['sequence-item'])"> <dtml-var mycode> </dtml-in> </dtml-in>
I am trying to let the viewer sort the view by meta_type but only have the meta_type they ask for show up. Just like the UniqueValuesfor in the Catalog only for a Folder.
All my best,
"""Tested Code Follows""" Sorting by meta_type is easy: <dtml-in "objectValues()" sort=meta_type> <dtml-var meta_type> <dtml-var title_or_id> </dtml-in objectValues> Now, I presume you build the display form a search form, or a link? If so, let's assume you assign the meta_type form variable a name of 'Type'. <dtml-in "objectValues(_['Type'])" sort=meta_type> <br> <a href="<dtml-var absolute_url>"> <dtml-var title_or_id> </a> is a <dtml-var meta_type> </dtml-in objectValues> Will display only the types in a given folder. To build that list, you could use a Python method (tested) or an External Method (untested) and do: ------------------- possibles=[] for type in self.objectValues(): if possibles.count(type.meta_type): continue else: possibles.append(type.meta_type) return possibles --------------------- In my testing, I called this "get_meta_types". to use: <dtml-in get_meta_types> <dtml-var sequence-item> </dtml-in get_meta_types> So, I have A DTML Document: <dtml-if Type> <p>Listed by type of object: <dtml-in "PARENTS[0].objectValues(_['Type'])" sort=meta_type> <br><dtml-var meta_type> <dtml-var title_or_id> <dtml-else> <p> Sorry, no matches found. </dtml-in> <dtml-else> <dtml-in get_meta_types> <br><a href=<dtml-var id>?Type=<dtml-var sequence-item url_quote>><dtml-var sequence-item></a> </dtml-in all_meta_types> </dtml-if Type> which will provide a list of possible types, authenticated by user, which when clicked upon, will give a list of objects that match that chosen meta_type. """End tested code""" Speed was just fine for me. Fit into HTML as needed,modify to suit your needs, YMMV, yadda-yadda. ;) Also, there is http://www.zope.org/Members/AlexR/SelectionLists which, while it doesn't give exactly what you are looking for, does have related items, so I referenced it. :) -- In flying I have learned that carelessness and overconfidence are usually far more dangerous than deliberately accepted risks. -- Wilbur Wright in a letter to his father, September 1900