src/pyams_content/component/theme/__init__.py
changeset 800 2b5460ecb254
parent 558 d9c6b1d7fefa
child 829 f933926ed0a1
equal deleted inserted replaced
799:dd66696cb871 800:2b5460ecb254
    15 
    15 
    16 # import standard library
    16 # import standard library
    17 
    17 
    18 # import interfaces
    18 # import interfaces
    19 from pyams_content.component.theme.interfaces import IThemesManagerTarget, IThemesManager, THEMES_MANAGER_KEY, \
    19 from pyams_content.component.theme.interfaces import IThemesManagerTarget, IThemesManager, THEMES_MANAGER_KEY, \
    20     IThemesTarget, IThemesInfo, THEMES_INFO_KEY
    20     IThemesTarget, IThemesInfo, THEMES_INFO_KEY, ITagsManager, ITagsManagerTarget, TAGS_MANAGER_KEY, ITagsInfo, \
       
    21     ITagsTarget, TAGS_INFO_KEY
    21 from pyams_content.features.checker.interfaces import IContentChecker, ERROR_VALUE
    22 from pyams_content.features.checker.interfaces import IContentChecker, ERROR_VALUE
    22 
    23 
    23 # import packages
    24 # import packages
    24 from persistent import Persistent
    25 from persistent import Persistent
    25 from pyams_content.features.checker import BaseContentChecker
    26 from pyams_content.features.checker import BaseContentChecker
    28 from zope.interface import implementer
    29 from zope.interface import implementer
    29 from zope.schema.fieldproperty import FieldProperty
    30 from zope.schema.fieldproperty import FieldProperty
    30 
    31 
    31 from pyams_content import _
    32 from pyams_content import _
    32 
    33 
       
    34 
       
    35 #
       
    36 # Tags management
       
    37 #
       
    38 
       
    39 @implementer(ITagsManager)
       
    40 class TagsManager(Persistent, Contained):
       
    41     """Tags manager persistent class"""
       
    42 
       
    43     thesaurus_name = FieldProperty(ITagsManager['thesaurus_name'])
       
    44     extract_name = FieldProperty(ITagsManager['extract_name'])
       
    45 
       
    46 
       
    47 @adapter_config(context=ITagsManagerTarget, provides=ITagsManager)
       
    48 def tags_manager_factory(target):
       
    49     """Tags manager factory"""
       
    50     return get_annotation_adapter(target, TAGS_MANAGER_KEY, TagsManager, name='++tags-manager++')
       
    51 
       
    52 
       
    53 @implementer(ITagsInfo)
       
    54 class TagsInfo(Persistent, Contained):
       
    55     """Tags info persistent class"""
       
    56 
       
    57     tags = FieldProperty(ITagsInfo['tags'])
       
    58 
       
    59 
       
    60 @adapter_config(context=ITagsTarget, provides=ITagsInfo)
       
    61 def tags_info_factory(target):
       
    62     """Tags info factory"""
       
    63     return get_annotation_adapter(target, TAGS_INFO_KEY, TagsInfo, name='++tags++')
       
    64 
       
    65 
       
    66 @adapter_config(name='tags', context=ITagsTarget, provides=IContentChecker)
       
    67 class TagsContentChecker(BaseContentChecker):
       
    68     """Tags info content checker"""
       
    69 
       
    70     label = _("Tags")
       
    71     weight = 205
       
    72 
       
    73     def inner_check(self, request):
       
    74         output = []
       
    75         translate = request.localizer.translate
       
    76         tags = ITagsInfo(self.context)
       
    77         if not tags.tags:
       
    78             output.append(translate(ERROR_VALUE).format(field=translate(ITagsInfo['tags'].title),
       
    79                                                         message=translate(_("no defined tag"))))
       
    80         return output
       
    81 
       
    82 
       
    83 #
       
    84 # Themes management
       
    85 #
    33 
    86 
    34 @implementer(IThemesManager)
    87 @implementer(IThemesManager)
    35 class ThemesManager(Persistent, Contained):
    88 class ThemesManager(Persistent, Contained):
    36     """Themes manager persistent class"""
    89     """Themes manager persistent class"""
    37 
    90