src/pyams_content/component/paragraph/container.py
changeset 1240 921ff38f1aae
parent 964 ca1064e94ad2
equal deleted inserted replaced
1239:b6d9396beffd 1240:921ff38f1aae
    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_utils.factory import factory_config
    15 from ZODB.interfaces import IBroken
    16 from ZODB.interfaces import IBroken
    16 from zope.interface import implementer
       
    17 from zope.location.interfaces import ISublocations
    17 from zope.location.interfaces import ISublocations
    18 from zope.traversing.interfaces import ITraversable
    18 from zope.traversing.interfaces import ITraversable
    19 
    19 
    20 from pyams_content.component.paragraph.interfaces import IParagraphFactory, IParagraphContainer, \
    20 from pyams_content.component.paragraph.interfaces import IParagraphFactory, IParagraphContainer, \
    21     IParagraphContainerTarget, PARAGRAPH_CONTAINER_KEY
    21     IParagraphContainerTarget, PARAGRAPH_CONTAINER_KEY
    26 from pyams_utils.registry import get_global_registry
    26 from pyams_utils.registry import get_global_registry
    27 
    27 
    28 from pyams_content import _
    28 from pyams_content import _
    29 
    29 
    30 
    30 
    31 @implementer(IParagraphContainer)
    31 @factory_config(IParagraphContainer)
    32 class ParagraphContainer(BTreeOrderedContainer):
    32 class ParagraphContainer(BTreeOrderedContainer):
    33     """Paragraphs container"""
    33     """Paragraphs container"""
    34 
    34 
    35     last_id = 1
    35     last_id = 1
    36 
    36 
    65 
    65 
    66 
    66 
    67 @adapter_config(context=IParagraphContainerTarget, provides=IParagraphContainer)
    67 @adapter_config(context=IParagraphContainerTarget, provides=IParagraphContainer)
    68 def paragraph_container_factory(target):
    68 def paragraph_container_factory(target):
    69     """Paragraphs container factory"""
    69     """Paragraphs container factory"""
    70     return get_annotation_adapter(target, PARAGRAPH_CONTAINER_KEY, ParagraphContainer,
    70     return get_annotation_adapter(target, PARAGRAPH_CONTAINER_KEY, IParagraphContainer,
    71                                   name='++paras++')
    71                                   name='++paras++')
    72 
    72 
    73 
    73 
    74 @adapter_config(name='paras', context=IParagraphContainerTarget, provides=ITraversable)
    74 @adapter_config(name='paras', context=IParagraphContainerTarget, provides=ITraversable)
    75 class ParagraphContainerNamespace(ContextAdapter):
    75 class ParagraphContainerNamespace(ContextAdapter):