src/pyams_content/component/theme/interfaces.py
changeset 1389 1485db1e2b5e
parent 1165 ed74d431911f
child 1423 31c1bc24a308
equal deleted inserted replaced
1388:8c757af2fc50 1389:1485db1e2b5e
    10 # FOR A PARTICULAR PURPOSE.
    10 # FOR A PARTICULAR PURPOSE.
    11 #
    11 #
    12 
    12 
    13 __docformat__ = 'restructuredtext'
    13 __docformat__ = 'restructuredtext'
    14 
    14 
    15 from zope.interface import Interface, invariant, Invalid
    15 from zope.interface import Interface, Invalid, invariant
    16 from zope.schema import Bool, Choice
    16 from zope.schema import Bool, Choice
    17 
    17 
    18 from pyams_sequence.schema import InternalReferenceField
    18 from pyams_content import _
    19 from pyams_thesaurus.interfaces.thesaurus import IThesaurusContextManager, IThesaurusContextManagerTarget
    19 from pyams_thesaurus.interfaces.thesaurus import IThesaurusContextManager, \
       
    20     IThesaurusContextManagerTarget
    20 from pyams_thesaurus.schema import ThesaurusTermsListField
    21 from pyams_thesaurus.schema import ThesaurusTermsListField
    21 
       
    22 from pyams_content import _
       
    23 
    22 
    24 
    23 
    25 #
    24 #
    26 # Tags management
    25 # Tags management
    27 #
    26 #
    30 TAGS_INFO_KEY = 'pyams_content.tags.info'
    29 TAGS_INFO_KEY = 'pyams_content.tags.info'
    31 
    30 
    32 
    31 
    33 class ITagsManager(IThesaurusContextManager):
    32 class ITagsManager(IThesaurusContextManager):
    34     """Tags manager interface"""
    33     """Tags manager interface"""
    35 
       
    36     enable_tags_search = Bool(title=_("Enable search by tag?"),
       
    37                               description=_("If 'yes', displayed tags will lead to a search engine "
       
    38                                             "displaying contents matching given tag"),
       
    39                               required=True,
       
    40                               default=False)
       
    41 
       
    42     tags_search_target = InternalReferenceField(title=_("Tags search target"),
       
    43                                                 description=_("Site or folder where tags search is displayed"),
       
    44                                                 required=False)
       
    45 
       
    46     @invariant
       
    47     def check_search_target(self):
       
    48         if self.enable_tags_search and not self.tags_search_target:
       
    49             raise Invalid(_("You must specify search target when activating search by tags!"))
       
    50 
    34 
    51     enable_glossary = Bool(title=_("Enable glossary?"),
    35     enable_glossary = Bool(title=_("Enable glossary?"),
    52                            description=_(""),
    36                            description=_(""),
    53                            required=True,
    37                            required=True,
    54                            default=False)
    38                            default=False)