src/pyams_default_theme/shared/resource/__init__.py
changeset 507 01a4fac43422
parent 437 532d2f58861b
equal deleted inserted replaced
506:0417bf1a6fa4 507:01a4fac43422
     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 
    12 
    13 __docformat__ = 'restructuredtext'
    13 from pyramid.decorator import reify
    14 
       
    15 from zope.interface import Interface
    14 from zope.interface import Interface
    16 
    15 
       
    16 from pyams_content.component.theme import ICollectionsInfo
       
    17 from pyams_content.features.search.interfaces import ISearchManagerInfo
    17 from pyams_content.shared.resource import IAgeRange, IResourceInfo, IWfResource
    18 from pyams_content.shared.resource import IAgeRange, IResourceInfo, IWfResource
    18 from pyams_default_theme import lightbox
    19 from pyams_default_theme import lightbox
    19 from pyams_default_theme.features.search.portlet import ISearchResultHeader, ISearchResultRenderer, \
    20 from pyams_default_theme.features.search.portlet import ISearchResultHeader, \
    20     WfSharedContentSearchResultRenderer
    21     ISearchResultRenderer, WfSharedContentSearchResultRenderer
    21 from pyams_default_theme.interfaces import ISearchResultsView
    22 from pyams_default_theme.interfaces import ISearchResultsView
    22 from pyams_default_theme.shared.common.interfaces import ICustomContentSpecificitiesParagraphRenderer, \
    23 from pyams_default_theme.shared.common.interfaces import \
    23     ICustomContentSpecificitiesRenderer
    24     ICustomContentSpecificitiesParagraphRenderer, ICustomContentSpecificitiesRenderer
    24 from pyams_i18n.interfaces import II18n
    25 from pyams_i18n.interfaces import II18n
    25 from pyams_skin.layer import IPyAMSUserLayer
    26 from pyams_skin.layer import IPyAMSUserLayer
    26 from pyams_template.template import template_config
    27 from pyams_template.template import template_config
    27 from pyams_utils.adapter import adapter_config
    28 from pyams_utils.adapter import adapter_config
    28 from pyams_utils.text import text_to_html
    29 from pyams_utils.text import text_to_html
    29 from pyams_viewlet.viewlet import ViewContentProvider
    30 from pyams_viewlet.viewlet import ViewContentProvider
       
    31 
       
    32 
       
    33 __docformat__ = 'restructuredtext'
    30 
    34 
    31 from pyams_default_theme import _
    35 from pyams_default_theme import _
    32 
    36 
    33 
    37 
    34 @adapter_config(context=(IWfResource, IPyAMSUserLayer, Interface),
    38 @adapter_config(context=(IWfResource, IPyAMSUserLayer, Interface),
    42     resources = (lightbox,)
    46     resources = (lightbox,)
    43 
    47 
    44     @property
    48     @property
    45     def resource_info(self):
    49     def resource_info(self):
    46         return IResourceInfo(self.context)
    50         return IResourceInfo(self.context)
       
    51 
       
    52     @property
       
    53     def collections(self):
       
    54         collections_info = ICollectionsInfo(self.context, None)
       
    55         if collections_info is not None:
       
    56             collections = collections_info.collections or ()
       
    57             yield from sorted(collections, key=lambda x: (x.order or 999, x.alt or x.label))
       
    58 
       
    59     @reify
       
    60     def search_target(self):
       
    61         search_info = ISearchManagerInfo(self.request.root, None)
       
    62         if search_info is not None:
       
    63             return search_info.collections_target
    47 
    64 
    48     def get_age_range(self, value: IAgeRange):
    65     def get_age_range(self, value: IAgeRange):
    49         translate = self.request.localizer.translate
    66         translate = self.request.localizer.translate
    50         if value.min_value and value.max_value:
    67         if value.min_value and value.max_value:
    51             result = _("from {0.min_value} to {0.max_value}")
    68             result = _("from {0.min_value} to {0.max_value}")