src/pyams_default_theme/component/paragraph/milestone.py
changeset 220 0c28a10db587
parent 204 713edde7dbf1
child 465 e4397e6a6890
equal deleted inserted replaced
219:b82dc95dff03 220:0c28a10db587
    10 # FOR A PARTICULAR PURPOSE.
    10 # FOR A PARTICULAR PURPOSE.
    11 #
    11 #
    12 
    12 
    13 __docformat__ = 'restructuredtext'
    13 __docformat__ = 'restructuredtext'
    14 
    14 
    15 from pyams_content.component.paragraph.interfaces.milestone import IMilestoneParagraph
    15 from pyramid.decorator import reify
       
    16 
       
    17 from pyams_content.component.paragraph.interfaces.milestone import IMilestoneParagraph, IMilestoneContainer
    16 from pyams_content.features.renderer.interfaces import IContentRenderer
    18 from pyams_content.features.renderer.interfaces import IContentRenderer
    17 from pyams_default_theme.features.renderer import BaseContentRenderer
    19 from pyams_default_theme.features.renderer import BaseContentRenderer
    18 from pyams_skin.layer import IPyAMSLayer
    20 from pyams_skin.layer import IPyAMSLayer
    19 from pyams_template.template import template_config
    21 from pyams_template.template import template_config
    20 from pyams_utils.adapter import adapter_config
    22 from pyams_utils.adapter import adapter_config
    33 
    35 
    34     label = _("Default milestones renderer")
    36     label = _("Default milestones renderer")
    35     weight = 1
    37     weight = 1
    36 
    38 
    37     i18n_context_attrs = ('title', 'body')
    39     i18n_context_attrs = ('title', 'body')
       
    40 
       
    41     @reify
       
    42     def milestones(self):
       
    43         return IMilestoneContainer(self.context)
       
    44 
       
    45     @property
       
    46     def has_anchors(self):
       
    47         for milestone in self.milestones.values():
       
    48             if milestone.anchor is not None:
       
    49                 return True
       
    50         return False