14 |
14 |
15 |
15 |
16 # import standard library |
16 # import standard library |
17 |
17 |
18 # import interfaces |
18 # import interfaces |
19 from pyams_content.component.paragraph.interfaces import IParagraphContainer, IParagraphContainerTarget, \ |
19 from pyams_content.component.paragraph.interfaces import IParagraphFactory, IParagraphContainer, \ |
20 PARAGRAPH_CONTAINER_KEY |
20 IParagraphContainerTarget, PARAGRAPH_CONTAINER_KEY |
21 from pyams_content.features.checker.interfaces import IContentChecker |
21 from pyams_content.features.checker.interfaces import IContentChecker |
22 from zope.location.interfaces import ISublocations |
22 from zope.location.interfaces import ISublocations |
23 from zope.traversing.interfaces import ITraversable |
23 from zope.traversing.interfaces import ITraversable |
24 |
24 |
25 # import packages |
25 # import packages |
26 from pyams_content.features.checker import BaseContentChecker |
26 from pyams_content.features.checker import BaseContentChecker |
27 from pyams_utils.adapter import adapter_config, ContextAdapter, get_annotation_adapter |
27 from pyams_utils.adapter import adapter_config, ContextAdapter, get_annotation_adapter |
28 from pyams_utils.container import BTreeOrderedContainer |
28 from pyams_utils.container import BTreeOrderedContainer |
|
29 from pyams_utils.registry import get_global_registry |
29 from zope.interface import implementer |
30 from zope.interface import implementer |
30 |
31 |
31 from pyams_content import _ |
32 from pyams_content import _ |
32 |
33 |
33 |
34 |
47 if not paragraph.visible: |
48 if not paragraph.visible: |
48 continue |
49 continue |
49 if anchors_only and not paragraph.anchor: |
50 if anchors_only and not paragraph.anchor: |
50 continue |
51 continue |
51 if factories: |
52 if factories: |
52 has_factory = tuple(filter(lambda x: x.content_type == paragraph.__class__)) |
53 registry = get_global_registry() |
|
54 has_factory = False |
|
55 for factory_name in factories: |
|
56 factory = registry.queryUtility(IParagraphFactory, name=factory_name) |
|
57 has_factory = (factory is not None) and (factory.content_type == paragraph.__class__) |
53 if not has_factory: |
58 if not has_factory: |
54 continue |
59 continue |
55 yield paragraph |
60 yield paragraph |
56 |
61 |
57 |
62 |