--- a/src/pyams_content/shared/view/interfaces/__init__.py Fri Oct 12 14:33:03 2018 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,261 +0,0 @@
-#
-# Copyright (c) 2008-2015 Thierry Florac <tflorac AT ulthar.net>
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-
-__docformat__ = 'restructuredtext'
-
-
-# import standard library
-
-# import interfaces
-from pyams_content.shared.common.interfaces import ISharedContent, IWfSharedContent, ISharedTool, \
- CONTENT_TYPES_VOCABULARY
-from pyams_content.shared.common.interfaces.types import ALL_DATA_TYPES_VOCABULARY
-from pyams_sequence.interfaces import IInternalReferencesList
-
-# import packages
-from pyams_thesaurus.schema import ThesaurusTermsListField
-from zope.interface import Interface, Attribute
-from zope.schema import Set, Choice, Bool, Int
-from zope.schema.vocabulary import SimpleVocabulary, SimpleTerm
-
-from pyams_content import _
-
-
-VIEW_CONTENT_TYPE = 'view'
-VIEW_CONTENT_NAME = _('View')
-
-
-CREATION_DATE_ORDER = 'created_date'
-UPDATE_DATE_ORDER = 'modified_date'
-PUBLICATION_DATE_ORDER = 'publication_date'
-FIRSTPUBLICATION_DATE_ORDER = 'first_publication_date'
-
-VIEW_ORDERS = (
- {'id': CREATION_DATE_ORDER, 'title': _("Creation date")},
- {'id': UPDATE_DATE_ORDER, 'title': _("Last update date")},
- {'id': PUBLICATION_DATE_ORDER, 'title': _("Current publication date")},
- {'id': FIRSTPUBLICATION_DATE_ORDER, 'title': _("First publication date")}
-)
-
-VIEW_ORDER_VOCABULARY = SimpleVocabulary([SimpleTerm(item['id'], title=item['title'])
- for item in VIEW_ORDERS])
-
-
-class IViewsManager(ISharedTool):
- """Views manager interface"""
-
-
-class IViewsManagerFactory(Interface):
- """Views manager factory interface"""
-
-
-class IWfView(IWfSharedContent):
- """View interface"""
-
- select_context_type = Bool(title=_("Select context type?"),
- description=_("If 'yes', content type will be extracted from context"),
- required=True,
- default=False)
-
- selected_content_types = Set(title=_("Other content types"),
- description=_("Selected content types; leave empty for all"),
- value_type=Choice(vocabulary=CONTENT_TYPES_VOCABULARY),
- required=False)
-
- def get_content_types(self, context):
- """Get content types for given context"""
-
- select_context_datatype = Bool(title=_("Select context data type?"),
- description=_("If 'yes', content data type (if available) will be extracted from "
- "context"),
- required=True,
- default=False)
-
- selected_datatypes = Set(title=_("Other data types"),
- description=_("Selected data types; leave empty for all"),
- value_type=Choice(vocabulary=ALL_DATA_TYPES_VOCABULARY),
- required=False)
-
- def get_data_types(self, context):
- """Get data types for given context"""
-
- order_by = Choice(title=_("Order by"),
- description=_("Property to use to sort results"),
- vocabulary=VIEW_ORDER_VOCABULARY,
- required=True,
- default=FIRSTPUBLICATION_DATE_ORDER)
-
- reversed_order = Bool(title=_("Reversed order?"),
- description=_("If 'yes', items order will be reversed"),
- required=True,
- default=True)
-
- limit = Int(title=_("Results count limit"),
- description=_("Maximum number of results that the view may retrieve"),
- required=False)
-
- is_using_context = Attribute("Check if view is using context settings")
-
- def get_results(self, context, sort_index=None, reverse=True, limit=None, ignore_cache=False):
- """Get results of catalog query"""
-
-
-class IWfViewFactory(Interface):
- """View factory interface"""
-
-
-class IView(ISharedContent):
- """Workflow managed view interface"""
-
-
-class IViewSettings(Interface):
- """Base interface for view settings adapters"""
-
- is_using_context = Attribute("Check if view settings are using context")
-
-
-class IViewQuery(Interface):
- """View query interface"""
-
- def get_results(self, context, sort_index, reverse, limit):
- """Get results of catalog query"""
-
-
-class IViewQueryExtension(Interface):
- """Base view query extension"""
-
- weight = Attribute("Extension weight")
-
-
-class IViewQueryParamsExtension(IViewQueryExtension):
- """View query extension interface"""
-
- def get_params(self, context):
- """Add params to catalog query"""
-
-
-class IViewQueryEsParamsExtension(IViewQueryExtension):
- """View query parameters extension for Elasticsearch"""
-
- def get_es_params(self, context):
- """Add params to Elasticsearch query"""
-
-
-class IViewQueryFilterExtension(IViewQueryExtension):
- """View query filter extension"""
-
- def filter(self, context, items):
- """Filter items after catalog query"""
-
-
-VIEW_REFERENCES_SETTINGS_KEY = 'pyams_content.view.references'
-
-
-ALWAYS_REFERENCE_MODE = 'always'
-IFEMPTY_REFERENCE_MODE = 'if_empty'
-
-REFERENCES_MODES = {ALWAYS_REFERENCE_MODE: _("Always include selected internal references"),
- IFEMPTY_REFERENCE_MODE: _("Include selected internal references only if empty")}
-
-REFERENCES_MODES_VOCABULARY = SimpleVocabulary([SimpleTerm(v, title=t)
- for v, t in REFERENCES_MODES.items()])
-
-
-class IViewInternalReferencesSettings(IViewSettings, IInternalReferencesList):
- """View internal references settings"""
-
- references_mode = Choice(title=_("Internal references usage"),
- description=_("Specify how selected references are included into view results"),
- vocabulary=REFERENCES_MODES_VOCABULARY,
- required=True,
- default=ALWAYS_REFERENCE_MODE)
-
- exclude_context = Bool(title=_("Exclude context?"),
- description=_("If 'yes', context will be excluded from results list"),
- required=True,
- default=True)
-
-
-VIEW_TAGS_SETTINGS_KEY = 'pyams_content.view.tags'
-
-
-class IViewTagsSettings(IViewSettings):
- """View tags settings"""
-
- select_context_tags = Bool(title=_("Select context tags?"),
- description=_("If 'yes', tags will be extracted from context"),
- required=False,
- default=False)
-
- tags = ThesaurusTermsListField(title=_("Other tags"),
- required=False)
-
- def get_tags(self, context):
- """Get all tags for given context"""
-
- def get_tags_index(self, context):
- """Get all tags index values for given context"""
-
-
-VIEW_THEMES_SETTINGS_KEY = 'pyams_content.view.themes'
-
-
-class IViewThemesSettings(IViewSettings):
- """View themes settings"""
-
- select_context_themes = Bool(title=_("Select context themes?"),
- description=_("If 'yes', themes will be extracted from context"),
- required=False,
- default=False)
-
- themes = ThesaurusTermsListField(title=_("Other themes"),
- required=False)
-
- def get_themes(self, context):
- """Get all themes for given context"""
-
- def get_themes_index(self, context):
- """Get all themes index values for given context"""
-
-
-VIEW_COLLECTIONS_SETTINGS_KEY = 'pyams_content.view.collections'
-
-
-class IViewCollectionsSettings(IViewSettings):
- """View collections settings"""
-
- select_context_collections = Bool(title=_("Select context collections?"),
- description=_("If 'yes', collections will be extracted from context"),
- required=False,
- default=False)
-
- collections = ThesaurusTermsListField(title=_("Other collections"),
- required=False)
-
- def get_collections(self, context):
- """Get all collections for given context"""
-
- def get_collections_index(self, context):
- """Get all collections index values for given context"""
-
-
-VIEWS_MERGERS_VOCABULARY = 'pyams_content.views.mergers'
-
-
-class IViewsMerger(Interface):
- """Interface used to define views mergers
-
- Mergers are used to merge results of several views.
- """
-
- def get_results(self, views, context, ignore_cache=False):
- """Merge results of several views together"""