diff -r 1ab0b78f0480 -r f0c399c2d649 src/pyams_default_theme/component/association/__init__.py --- a/src/pyams_default_theme/component/association/__init__.py Fri Jan 18 15:29:24 2019 +0100 +++ b/src/pyams_default_theme/component/association/__init__.py Fri Jan 18 15:30:29 2019 +0100 @@ -25,8 +25,8 @@ from pyams_content.component.paragraph.interfaces import IParagraphContainer, IParagraphContainerTarget from pyams_content.features.renderer.interfaces import IContentRenderer from pyams_default_theme import _ -from pyams_default_theme.component.association.interfaces import IAssociationParagraphRemoteContentRendererSettings, \ - IAssociationParagraphSlicedRemoteContentRendererSettings +from pyams_default_theme.component.association.interfaces import IAssociationParagraphDefaultRendererSettings, \ + IAssociationParagraphRemoteContentRendererSettings, IAssociationParagraphSlicedRemoteContentRendererSettings from pyams_default_theme.features.renderer import BaseContentRenderer from pyams_skin.layer import IPyAMSLayer from pyams_template.template import template_config @@ -38,6 +38,23 @@ # Associations paragraph default renderer # +ASSOCIATION_PARAGRAPH_DEFAULT_RENDERER_SETTINGS_KEY = 'pyams_content.association.renderer:default' + + +@factory_config(IAssociationParagraphDefaultRendererSettings) +class AssociationParagraphDefaultRendererSettings(Persistent, Location): + """Association paragraph default renderer settings""" + + description_format = FieldProperty(IAssociationParagraphDefaultRendererSettings['description_format']) + + +@adapter_config(context=IAssociationParagraph, provides=IAssociationParagraphDefaultRendererSettings) +def association_paragraph_default_renderer_settings_factory(context): + """Associations paragraph default renderer settings factory""" + return get_annotation_adapter(context, ASSOCIATION_PARAGRAPH_DEFAULT_RENDERER_SETTINGS_KEY, + IAssociationParagraphDefaultRendererSettings) + + @adapter_config(name='default', context=(IAssociationParagraph, IPyAMSLayer), provides=IContentRenderer) @template_config(template='templates/association-default.pt', layer=IPyAMSLayer) class AssociationParagraphDefaultRenderer(BaseContentRenderer): @@ -46,8 +63,12 @@ label = _("Default associations renderer") i18n_context_attrs = ('title',) - links = None - attachments = None + settings_interface = IAssociationParagraphDefaultRendererSettings + + def __init__(self, *args, **kwargs): + super(AssociationParagraphDefaultRenderer, self).__init__(*args, **kwargs) + self.attachments = [] + self.links = [] def get_associations(self): yield from IAssociationContainer(self.context).get_visible_items(self.request) @@ -58,8 +79,6 @@ def update(self): super().update() - self.attachments = [] - self.links = [] for item in self.get_associations(): if IExtFile.providedBy(item): self.attachments.append(item) @@ -71,8 +90,10 @@ # Associations paragraph remote content renderer # -ASSOCIATION_PARAGRAPH_SLICED_REMOTE_CONTENT_RENDERER_SETTINGS_KEY = 'pyams_content.association.renderer:sliced-remote-content' -ASSOCIATION_PARAGRAPH_REMOTE_CONTENT_RENDERER_SETTINGS_KEY = 'pyams_content.association.renderer:remote-content' +ASSOCIATION_PARAGRAPH_SLICED_REMOTE_CONTENT_RENDERER_SETTINGS_KEY = \ + 'pyams_content.association.renderer:sliced-remote-content' +ASSOCIATION_PARAGRAPH_REMOTE_CONTENT_RENDERER_SETTINGS_KEY = \ + 'pyams_content.association.renderer:remote-content' @factory_config(IAssociationParagraphSlicedRemoteContentRendererSettings)