src/pyams_default_theme/component/association/__init__.py
changeset 382 f0c399c2d649
parent 380 f549a5cd4781
child 534 7d485d40eec3
--- 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)