src/pyams_content/component/illustration/zmi/paragraph.py
changeset 694 4541a452fd4c
parent 591 b694d5667d17
child 842 7f0d72e427b1
equal deleted inserted replaced
693:26d51b558325 694:4541a452fd4c
    16 # import standard library
    16 # import standard library
    17 
    17 
    18 # import interfaces
    18 # import interfaces
    19 from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget, \
    19 from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget, \
    20     IParagraphContainer
    20     IParagraphContainer
    21 from pyams_content.component.illustration.interfaces import IIllustration, IIllustrationParagraph, \
    21 from pyams_content.component.illustration.interfaces import IIllustrationTarget, IIllustration, \
    22     ILLUSTRATION_PARAGRAPH_TYPE
    22     IIllustrationParagraph, ILLUSTRATION_PARAGRAPH_TYPE
    23 from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor, IParagraphContainerView
    23 from pyams_content.component.paragraph.zmi.interfaces import IParagraphInnerEditor, IParagraphContainerView, \
       
    24     IParagraphContainerTable, IParagraphTitleToolbar
    24 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
    25 from pyams_content.interfaces import MANAGE_CONTENT_PERMISSION
    25 from pyams_form.interfaces.form import IInnerForm
    26 from pyams_form.interfaces.form import IInnerForm
    26 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
    27 from pyams_skin.interfaces.viewlet import IToolbarAddingMenu
    27 from pyams_skin.layer import IPyAMSLayer
    28 from pyams_skin.layer import IPyAMSLayer
       
    29 from pyams_utils.interfaces import VIEW_SYSTEM_PERMISSION
    28 from transaction.interfaces import ITransactionManager
    30 from transaction.interfaces import ITransactionManager
    29 from z3c.form.interfaces import INPUT_MODE
    31 from z3c.form.interfaces import INPUT_MODE
    30 
    32 
    31 # import packages
    33 # import packages
    32 from pyams_content.component.illustration.paragraph import Illustration
    34 from pyams_content.component.illustration.paragraph import Illustration
    34     BaseParagraphAddMenu, BaseParagraphPropertiesEditForm, get_json_paragraph_refresh_event, IParagraphEditFormButtons
    36     BaseParagraphAddMenu, BaseParagraphPropertiesEditForm, get_json_paragraph_refresh_event, IParagraphEditFormButtons
    35 from pyams_content.features.renderer.zmi.widget import RendererFieldWidget
    37 from pyams_content.features.renderer.zmi.widget import RendererFieldWidget
    36 from pyams_form.form import ajax_config
    38 from pyams_form.form import ajax_config
    37 from pyams_pagelet.pagelet import pagelet_config
    39 from pyams_pagelet.pagelet import pagelet_config
    38 from pyams_skin.event import get_json_form_refresh_event
    40 from pyams_skin.event import get_json_form_refresh_event
       
    41 from pyams_template.template import template_config
    39 from pyams_utils.adapter import adapter_config
    42 from pyams_utils.adapter import adapter_config
    40 from pyams_viewlet.viewlet import viewlet_config
    43 from pyams_viewlet.viewlet import viewlet_config, Viewlet
    41 from pyams_zmi.form import AdminDialogAddForm
    44 from pyams_zmi.form import AdminDialogAddForm
    42 from z3c.form import field, button
    45 from z3c.form import field, button
    43 from zope.interface import implementer
    46 from zope.interface import implementer
    44 
    47 
    45 from pyams_content import _
    48 from pyams_content import _
   145             # we have to commit transaction to be able to handle blobs...
   148             # we have to commit transaction to be able to handle blobs...
   146             ITransactionManager(self.context).get().commit()
   149             ITransactionManager(self.context).get().commit()
   147             output.setdefault('events', []).append(get_json_form_refresh_event(self.context, self.request,
   150             output.setdefault('events', []).append(get_json_form_refresh_event(self.context, self.request,
   148                                                                                IllustrationInnerEditForm))
   151                                                                                IllustrationInnerEditForm))
   149         return output
   152         return output
       
   153 
       
   154 
       
   155 #
       
   156 # Paragraph container illustration marker
       
   157 #
       
   158 
       
   159 @viewlet_config(name='illustration', context=IIllustrationTarget, layer=IPyAMSLayer, view=IParagraphContainerTable,
       
   160                 manager=IParagraphTitleToolbar, permission=VIEW_SYSTEM_PERMISSION, weight=5)
       
   161 @template_config(template='templates/paragraph-illustration-icon.pt', layer=IPyAMSLayer)
       
   162 class ParagraphContainerIllustrationMarker(Viewlet):
       
   163     """Paragraph container illustration marker column"""
       
   164 
       
   165     weight = 5
       
   166     action_class = 'action illustration nowrap width-40'
       
   167     icon_class = 'fa fa-fw fa-picture-o'
       
   168     icon_hint = _("Illustration")
       
   169 
       
   170     marker_type = 'illustration'
       
   171 
       
   172     def render(self):
       
   173         illustration = IIllustration(self.context, None)
       
   174         if illustration and illustration.data:
       
   175             for value in illustration.data.values():
       
   176                 if value:
       
   177                     return super(ParagraphContainerIllustrationMarker, self).render()
       
   178         return ''