src/pyams_content/shared/logo/paragraph.py
changeset 1347 0230c7fd71c3
parent 1329 5b3909c566e2
equal deleted inserted replaced
1346:88b5ce31afdc 1347:0230c7fd71c3
     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 zope.interface import implementer
    14 
       
    15 from zope.schema.fieldproperty import FieldProperty
    14 from zope.schema.fieldproperty import FieldProperty
    16 from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary
    15 from zope.schema.vocabulary import SimpleTerm, SimpleVocabulary
    17 
    16 
    18 from pyams_content.component.paragraph import BaseParagraph, BaseParagraphContentChecker, BaseParagraphFactory, \
    17 from pyams_content.component.paragraph import BaseParagraph, BaseParagraphContentChecker, \
    19     IParagraphFactory
    18     BaseParagraphFactory, IParagraphFactory
    20 from pyams_content.features.checker.interfaces import ERROR_VALUE, IContentChecker, MISSING_LANG_VALUE, MISSING_VALUE
    19 from pyams_content.features.checker.interfaces import ERROR_VALUE, IContentChecker, \
       
    20     MISSING_LANG_VALUE, MISSING_VALUE
    21 from pyams_content.features.renderer.interfaces import IContentRenderer
    21 from pyams_content.features.renderer.interfaces import IContentRenderer
    22 from pyams_content.shared.logo.interfaces import ILogosParagraph, LOGOS_PARAGRAPH_NAME, LOGOS_PARAGRAPH_RENDERERS, \
    22 from pyams_content.shared.logo.interfaces import ILogosParagraph, LOGOS_PARAGRAPH_NAME, \
    23     LOGOS_PARAGRAPH_TYPE
    23     LOGOS_PARAGRAPH_RENDERERS, LOGOS_PARAGRAPH_TYPE
    24 from pyams_i18n.interfaces import II18n, II18nManager, INegotiator
    24 from pyams_i18n.interfaces import II18n, II18nManager, INegotiator
       
    25 from pyams_sequence.interfaces import IInternalReferencesList
    25 from pyams_sequence.reference import get_reference_target
    26 from pyams_sequence.reference import get_reference_target
    26 from pyams_utils.adapter import adapter_config
    27 from pyams_utils.adapter import adapter_config
    27 from pyams_utils.factory import factory_config
    28 from pyams_utils.factory import factory_config
    28 from pyams_utils.registry import get_utility, utility_config
    29 from pyams_utils.registry import get_utility, utility_config
    29 from pyams_utils.request import check_request
    30 from pyams_utils.request import check_request
    30 from pyams_utils.traversing import get_parent
    31 from pyams_utils.traversing import get_parent
    31 from pyams_utils.vocabulary import vocabulary_config
    32 from pyams_utils.vocabulary import vocabulary_config
    32 from pyams_workflow.interfaces import IWorkflow, IWorkflowState
    33 from pyams_workflow.interfaces import IWorkflow, IWorkflowState
    33 
    34 
       
    35 
       
    36 __docformat__ = 'restructuredtext'
       
    37 
    34 from pyams_content import _
    38 from pyams_content import _
    35 
    39 
    36 
    40 
    37 @factory_config(ILogosParagraph)
    41 @factory_config(ILogosParagraph)
       
    42 @implementer(IInternalReferencesList)
    38 class LogosParagraph(BaseParagraph):
    43 class LogosParagraph(BaseParagraph):
    39     """Logos paragraph"""
    44     """Logos paragraph"""
    40 
    45 
    41     icon_class = 'fa-th-large'
    46     icon_class = 'fa-th-large'
    42     icon_hint = LOGOS_PARAGRAPH_NAME
    47     icon_hint = LOGOS_PARAGRAPH_NAME
    48         for reference in self.logos or ():
    53         for reference in self.logos or ():
    49             if with_reference:
    54             if with_reference:
    50                 yield reference, get_reference_target(reference, state)
    55                 yield reference, get_reference_target(reference, state)
    51             else:
    56             else:
    52                 yield get_reference_target(reference, state)
    57                 yield get_reference_target(reference, state)
       
    58 
       
    59     # Internal refernces interface support
       
    60 
       
    61     @property
       
    62     def references(self):
       
    63         return self.logos
       
    64 
       
    65     def get_targets(self, state=None):
       
    66         yield from self.get_logos(state)
    53 
    67 
    54 
    68 
    55 @utility_config(name=LOGOS_PARAGRAPH_TYPE, provides=IParagraphFactory)
    69 @utility_config(name=LOGOS_PARAGRAPH_TYPE, provides=IParagraphFactory)
    56 class LogosParagraphFactory(BaseParagraphFactory):
    70 class LogosParagraphFactory(BaseParagraphFactory):
    57     """Logos paragraph factory"""
    71     """Logos paragraph factory"""