diff -r 0417bf1a6fa4 -r 01a4fac43422 src/pyams_default_theme/shared/resource/__init__.py --- a/src/pyams_default_theme/shared/resource/__init__.py Mon Jun 22 18:31:49 2020 +0200 +++ b/src/pyams_default_theme/shared/resource/__init__.py Fri Jun 26 12:58:51 2020 +0200 @@ -10,17 +10,18 @@ # FOR A PARTICULAR PURPOSE. # -__docformat__ = 'restructuredtext' - +from pyramid.decorator import reify from zope.interface import Interface +from pyams_content.component.theme import ICollectionsInfo +from pyams_content.features.search.interfaces import ISearchManagerInfo from pyams_content.shared.resource import IAgeRange, IResourceInfo, IWfResource from pyams_default_theme import lightbox -from pyams_default_theme.features.search.portlet import ISearchResultHeader, ISearchResultRenderer, \ - WfSharedContentSearchResultRenderer +from pyams_default_theme.features.search.portlet import ISearchResultHeader, \ + ISearchResultRenderer, WfSharedContentSearchResultRenderer from pyams_default_theme.interfaces import ISearchResultsView -from pyams_default_theme.shared.common.interfaces import ICustomContentSpecificitiesParagraphRenderer, \ - ICustomContentSpecificitiesRenderer +from pyams_default_theme.shared.common.interfaces import \ + ICustomContentSpecificitiesParagraphRenderer, ICustomContentSpecificitiesRenderer from pyams_i18n.interfaces import II18n from pyams_skin.layer import IPyAMSUserLayer from pyams_template.template import template_config @@ -28,6 +29,9 @@ from pyams_utils.text import text_to_html from pyams_viewlet.viewlet import ViewContentProvider + +__docformat__ = 'restructuredtext' + from pyams_default_theme import _ @@ -45,6 +49,19 @@ def resource_info(self): return IResourceInfo(self.context) + @property + def collections(self): + collections_info = ICollectionsInfo(self.context, None) + if collections_info is not None: + collections = collections_info.collections or () + yield from sorted(collections, key=lambda x: (x.order or 999, x.alt or x.label)) + + @reify + def search_target(self): + search_info = ISearchManagerInfo(self.request.root, None) + if search_info is not None: + return search_info.collections_target + def get_age_range(self, value: IAgeRange): translate = self.request.localizer.translate if value.min_value and value.max_value: