src/pyams_content/shared/logo/zmi/paragraph.py
changeset 527 5dd1aa8bedd9
parent 507 7320a5522ee1
child 546 213db0cb6b4c
equal deleted inserted replaced
526:b15153f45957 527:5dd1aa8bedd9
    33     BaseParagraphAJAXAddForm, BaseParagraphPropertiesEditForm, BaseParagraphAJAXEditForm
    33     BaseParagraphAJAXAddForm, BaseParagraphPropertiesEditForm, BaseParagraphAJAXEditForm
    34 from pyams_content.features.renderer.zmi import BaseRenderedContentRenderer
    34 from pyams_content.features.renderer.zmi import BaseRenderedContentRenderer
    35 from pyams_content.features.renderer.zmi.widget import RendererFieldWidget
    35 from pyams_content.features.renderer.zmi.widget import RendererFieldWidget
    36 from pyams_content.shared.logo.paragraph import LogosParagraph
    36 from pyams_content.shared.logo.paragraph import LogosParagraph
    37 from pyams_pagelet.pagelet import pagelet_config
    37 from pyams_pagelet.pagelet import pagelet_config
       
    38 from pyams_skin.event import get_json_widget_refresh_event
    38 from pyams_utils.adapter import adapter_config
    39 from pyams_utils.adapter import adapter_config
    39 from pyams_utils.traversing import get_parent
    40 from pyams_utils.traversing import get_parent
    40 from pyams_viewlet.viewlet import viewlet_config, BaseContentProvider
    41 from pyams_viewlet.viewlet import viewlet_config
    41 from pyams_zmi.form import AdminDialogAddForm
    42 from pyams_zmi.form import AdminDialogAddForm
    42 from pyramid.view import view_config
    43 from pyramid.view import view_config
    43 from z3c.form import field, button
    44 from z3c.form import field, button
    44 from zope.interface import implementer
    45 from zope.interface import implementer
    45 
    46 
    85 @pagelet_config(name='properties.html', context=ILogosParagraph, layer=IPyAMSLayer,
    86 @pagelet_config(name='properties.html', context=ILogosParagraph, layer=IPyAMSLayer,
    86                 permission=MANAGE_CONTENT_PERMISSION)
    87                 permission=MANAGE_CONTENT_PERMISSION)
    87 class LogosParagraphPropertiesEditForm(BaseParagraphPropertiesEditForm):
    88 class LogosParagraphPropertiesEditForm(BaseParagraphPropertiesEditForm):
    88     """Logos paragraph properties edit form"""
    89     """Logos paragraph properties edit form"""
    89 
    90 
       
    91     prefix = 'logos_properties.'
       
    92 
    90     @property
    93     @property
    91     def title(self):
    94     def title(self):
    92         content = get_parent(self.context, IWfSharedContent)
    95         content = get_parent(self.context, IWfSharedContent)
    93         return II18n(content).query_attribute('title', request=self.request)
    96         return II18n(content).query_attribute('title', request=self.request)
    94 
    97 
   131 
   134 
   132     def get_ajax_output(self, changes):
   135     def get_ajax_output(self, changes):
   133         output = super(LogosParagraphInnerAJAXEditForm, self).get_ajax_output(changes)
   136         output = super(LogosParagraphInnerAJAXEditForm, self).get_ajax_output(changes)
   134         updated = changes.get(ILogosParagraph, ())
   137         updated = changes.get(ILogosParagraph, ())
   135         if 'renderer' in updated:
   138         if 'renderer' in updated:
   136             form = LogosParagraphInnerEditForm(self.context, self.request)
   139             output.setdefault('events', []).append(
   137             form.update()
   140                 get_json_widget_refresh_event(self.context, self.request,
   138             content = form.getContent()
   141                                               LogosParagraphInnerEditForm, 'renderer'))
   139             output.setdefault('events', []).append({
       
   140                 'evennt': 'myams.refresh',
       
   141                 'options': {
       
   142                     'handler': 'MyAMS.skin.refreshWidget',
       
   143                     'parent_id': '{0}_{1}_{2}'.format(
       
   144                         content.__class__.__name__,
       
   145                         getattr(content, '__name__', 'noname').replace('++', ''),
       
   146                         form.id),
       
   147                     'widget_name': form.widgets['renderer'].name,
       
   148                     'content': form.widgets['renderer'].render()
       
   149                 }
       
   150             })
       
   151         return output
   142         return output
   152 
   143 
   153 
   144 
   154 #
   145 #
   155 # Logos paragraph renderer
   146 # Logos paragraph renderer