src/pyams_content/shared/view/theme.py
changeset 1389 1485db1e2b5e
parent 1240 921ff38f1aae
child 1428 48c1ee485dc0
equal deleted inserted replaced
1388:8c757af2fc50 1389:1485db1e2b5e
    17 from persistent import Persistent
    17 from persistent import Persistent
    18 from zope.container.contained import Contained
    18 from zope.container.contained import Contained
    19 from zope.intid.interfaces import IIntIds
    19 from zope.intid.interfaces import IIntIds
    20 from zope.schema.fieldproperty import FieldProperty
    20 from zope.schema.fieldproperty import FieldProperty
    21 
    21 
    22 from pyams_content.component.theme import ICollectionsInfo, ITagsManager
    22 from pyams_content.component.theme import ICollectionsInfo, ICollectionsManager, ITagsManager
    23 from pyams_content.component.theme.interfaces import ITagsInfo, IThemesInfo
    23 from pyams_content.component.theme.interfaces import ITagsInfo, IThemesInfo
    24 from pyams_content.features.search import SearchFolderQuery
    24 from pyams_content.features.search import SearchFolderQuery
    25 from pyams_content.shared.view.interfaces import IViewCollectionsSettings, IViewQueryParamsExtension, IViewSettings, \
    25 from pyams_content.shared.view.interfaces import IViewCollectionsSettings, \
    26     IViewTagsSettings, IViewThemesSettings, IViewUserQuery, IWfView, VIEW_COLLECTIONS_SETTINGS_KEY, \
    26     IViewQueryParamsExtension, IViewSettings, IViewTagsSettings, IViewThemesSettings, \
    27     VIEW_TAGS_SETTINGS_KEY, VIEW_THEMES_SETTINGS_KEY
    27     IViewUserQuery, IWfView, VIEW_COLLECTIONS_SETTINGS_KEY, VIEW_TAGS_SETTINGS_KEY, \
       
    28     VIEW_THEMES_SETTINGS_KEY
    28 from pyams_thesaurus.interfaces.thesaurus import IThesaurus
    29 from pyams_thesaurus.interfaces.thesaurus import IThesaurus
    29 from pyams_utils.adapter import ContextAdapter, adapter_config, get_annotation_adapter
    30 from pyams_utils.adapter import ContextAdapter, adapter_config, get_annotation_adapter
    30 from pyams_utils.factory import factory_config
    31 from pyams_utils.factory import factory_config
    31 from pyams_utils.registry import get_utility, query_utility
    32 from pyams_utils.registry import get_utility, query_utility
    32 
    33 
   213         collections = settings.get_collections_index(context)
   214         collections = settings.get_collections_index(context)
   214         if collections:
   215         if collections:
   215             yield Any(catalog['collections'], collections)
   216             yield Any(catalog['collections'], collections)
   216         elif settings.select_context_collections:
   217         elif settings.select_context_collections:
   217             yield None
   218             yield None
       
   219 
       
   220 
       
   221 @adapter_config(name='collections', context=SearchFolderQuery, provides=IViewUserQuery)
       
   222 class SearchFolderCollectionQuery(ContextAdapter):
       
   223     """Search folder collections query"""
       
   224 
       
   225     @staticmethod
       
   226     def get_user_params(request):
       
   227         collection = request.params.get('collection')
       
   228         if collection:
       
   229             manager = ICollectionsManager(request.root, None)
       
   230             if manager is None:
       
   231                 raise StopIteration
       
   232             thesaurus = query_utility(IThesaurus, name=manager.thesaurus_name)
       
   233             if thesaurus is None:
       
   234                 raise StopIteration
       
   235             term = thesaurus.terms.get(collection)
       
   236             if term is not None:
       
   237                 catalog = get_utility(ICatalog)
       
   238                 intids = query_utility(IIntIds)
       
   239                 yield Any(catalog['collections'], (intids.queryId(term),))