equal
deleted
inserted
replaced
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): |