--- a/src/pyams_content/component/paragraph/container.py Thu Sep 06 14:01:08 2018 +0200
+++ b/src/pyams_content/component/paragraph/container.py Thu Sep 06 17:43:49 2018 +0200
@@ -42,23 +42,29 @@
self[key] = value
self.last_id += 1
- def get_visible_paragraphs(self, anchors_only=False, factories=None):
- for paragraph in self.values():
- if not paragraph.visible:
- continue
- if anchors_only and not paragraph.anchor:
- continue
- if factories:
- registry = get_global_registry()
- has_factory = False
- for factory_name in factories:
- factory = registry.queryUtility(IParagraphFactory, name=factory_name)
- has_factory = (factory is not None) and isinstance(paragraph, factory.content_type)
- if has_factory:
- break
- if not has_factory:
+ def get_visible_paragraphs(self, names=None, anchors_only=False, factories=None):
+ if names:
+ for name in names:
+ paragraph = self.get(name)
+ if (paragraph is not None) and paragraph.visible:
+ yield paragraph
+ else:
+ for paragraph in self.values():
+ if not paragraph.visible:
+ continue
+ if anchors_only and not paragraph.anchor:
continue
- yield paragraph
+ if factories:
+ registry = get_global_registry()
+ has_factory = False
+ for factory_name in factories:
+ factory = registry.queryUtility(IParagraphFactory, name=factory_name)
+ has_factory = (factory is not None) and isinstance(paragraph, factory.content_type)
+ if has_factory:
+ break
+ if not has_factory:
+ continue
+ yield paragraph
@adapter_config(context=IParagraphContainerTarget, provides=IParagraphContainer)