src/pyams_content/shared/common/zmi/search.py
changeset 1395 8184dadefc8b
parent 1349 4aca0ad81b2b
child 1405 a123fc2a6f69
equal deleted inserted replaced
1394:ed31bfceddda 1395:8184dadefc8b
     7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
     7 # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
     8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     8 # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
     9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
     9 # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
    10 # FOR A PARTICULAR PURPOSE.
    10 # FOR A PARTICULAR PURPOSE.
    11 #
    11 #
    12 from pyams_content.shared.common.interfaces.types import DATA_TYPES_VOCABULARY, ITypedSharedTool
       
    13 
       
    14 
       
    15 __docformat__ = 'restructuredtext'
       
    16 
    12 
    17 from hypatia.catalog import CatalogQuery
    13 from hypatia.catalog import CatalogQuery
    18 from hypatia.interfaces import ICatalog
    14 from hypatia.interfaces import ICatalog
    19 from hypatia.query import Any, Contains, Eq, Ge, Le
    15 from hypatia.query import Any, Contains, Eq, Ge, Le
    20 from pyramid.view import view_config
    16 from pyramid.view import view_config
    24 from zope.interface import implementer
    20 from zope.interface import implementer
    25 from zope.intid.interfaces import IIntIds
    21 from zope.intid.interfaces import IIntIds
    26 from zope.schema import Choice, Datetime
    22 from zope.schema import Choice, Datetime
    27 
    23 
    28 from pyams_catalog.query import CatalogResultSet
    24 from pyams_catalog.query import CatalogResultSet
    29 from pyams_content.component.theme.interfaces import ICollectionsManager, ICollectionsManagerTarget, ITagsManager, \
    25 from pyams_content.component.theme.interfaces import ICollectionsManager, \
    30     IThemesManager, IThemesManagerTarget
    26     ICollectionsManagerTarget, ITagsManager, IThemesManager, IThemesManagerTarget
    31 from pyams_content.profile.interfaces import IAdminProfile
    27 from pyams_content.profile.interfaces import IAdminProfile
    32 from pyams_content.shared.common import CONTENT_TYPES
    28 from pyams_content.shared.common import CONTENT_TYPES
    33 from pyams_content.shared.common.interfaces import IBaseSharedTool, SHARED_TOOL_WORKFLOW_STATES_VOCABULARY
    29 from pyams_content.shared.common.interfaces import IBaseSharedTool, \
       
    30     SHARED_TOOL_WORKFLOW_STATES_VOCABULARY
       
    31 from pyams_content.shared.common.interfaces.types import DATA_TYPES_VOCABULARY, ITypedSharedTool
    34 from pyams_content.shared.common.interfaces.zmi import ISharedToolDashboardTable
    32 from pyams_content.shared.common.interfaces.zmi import ISharedToolDashboardTable
    35 from pyams_content.zmi.interfaces import IAllContentsMenu
    33 from pyams_content.zmi.interfaces import IAllContentsMenu
    36 from pyams_form.search import ISearchFields, SearchForm, SearchResultsView, SearchView
    34 from pyams_form.search import ISearchFields, SearchForm, SearchResultsView, SearchView
    37 from pyams_i18n.interfaces import INegotiator
    35 from pyams_i18n.interfaces import INegotiator
    38 from pyams_pagelet.interfaces import PageletCreatedEvent
    36 from pyams_pagelet.interfaces import PageletCreatedEvent
    59 from pyams_viewlet.viewlet import viewlet_config
    57 from pyams_viewlet.viewlet import viewlet_config
    60 from pyams_workflow.interfaces import IWorkflow, IWorkflowVersions
    58 from pyams_workflow.interfaces import IWorkflow, IWorkflowVersions
    61 from pyams_zmi.layer import IAdminLayer
    59 from pyams_zmi.layer import IAdminLayer
    62 from pyams_zmi.view import AdminView
    60 from pyams_zmi.view import AdminView
    63 
    61 
       
    62 
       
    63 __docformat__ = 'restructuredtext'
       
    64 
    64 from pyams_content import _
    65 from pyams_content import _
    65 
    66 
    66 
    67 
    67 #
    68 #
    68 # Quick search adapters
    69 # Quick search adapters
   225         fields['tags'].widgetFactory = ThesaurusTermsTreeFieldWidget
   226         fields['tags'].widgetFactory = ThesaurusTermsTreeFieldWidget
   226         if IThemesManagerTarget.providedBy(self.context):
   227         if IThemesManagerTarget.providedBy(self.context):
   227             fields['themes'].widgetFactory = ThesaurusTermsTreeFieldWidget
   228             fields['themes'].widgetFactory = ThesaurusTermsTreeFieldWidget
   228         else:
   229         else:
   229             fields = fields.omit('themes')
   230             fields = fields.omit('themes')
   230         if ICollectionsManagerTarget.providedBy(self.context):
   231         fields['collections'].widgetFactory = ThesaurusTermsTreeFieldWidget
   231             fields['collections'].widgetFactory = ThesaurusTermsTreeFieldWidget
       
   232         else:
       
   233             fields = fields.omit('collections')
       
   234         return fields
   232         return fields
   235 
   233 
   236     def updateWidgets(self, prefix=None):
   234     def updateWidgets(self, prefix=None):
   237         super(SharedToolAdvancedSearchForm, self).updateWidgets(prefix)
   235         super(SharedToolAdvancedSearchForm, self).updateWidgets(prefix)
   238         if 'tags' in self.widgets:
   236         if 'tags' in self.widgets:
   245             manager = IThemesManager(self.context)
   243             manager = IThemesManager(self.context)
   246             widget.thesaurus_name = manager.thesaurus_name
   244             widget.thesaurus_name = manager.thesaurus_name
   247             widget.extract_name = manager.extract_name
   245             widget.extract_name = manager.extract_name
   248         if 'collections' in self.widgets:
   246         if 'collections' in self.widgets:
   249             widget = self.widgets['collections']
   247             widget = self.widgets['collections']
   250             manager = ICollectionsManager(self.context)
   248             manager = ICollectionsManager(self.request.root)
   251             widget.thesaurus_name = manager.thesaurus_name
   249             widget.thesaurus_name = manager.thesaurus_name
   252             widget.extract_name = manager.extract_name
   250             widget.extract_name = manager.extract_name
   253 
   251 
   254 
   252 
   255 @adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolAdvancedSearchForm), provides=IContentSearch)
   253 @adapter_config(context=(IBaseSharedTool, IPyAMSLayer, SharedToolAdvancedSearchForm), provides=IContentSearch)