src/pyams_portal/zmi/portlet.py
changeset 118 15e0ccc31b91
parent 109 1204c6c35575
child 122 4fcb3a5afa91
equal deleted inserted replaced
117:4d5187421912 118:15e0ccc31b91
    24 
    24 
    25 # import packages
    25 # import packages
    26 from pyams_form.form import ajax_config
    26 from pyams_form.form import ajax_config
    27 from pyams_pagelet.pagelet import pagelet_config
    27 from pyams_pagelet.pagelet import pagelet_config
    28 from pyams_portal.zmi.widget import PortletRendererFieldWidget
    28 from pyams_portal.zmi.widget import PortletRendererFieldWidget
       
    29 from pyams_skin.event import get_json_widget_refresh_event
    29 from pyams_template.template import template_config
    30 from pyams_template.template import template_config
    30 from pyams_utils.adapter import adapter_config
    31 from pyams_utils.adapter import adapter_config
    31 from pyams_utils.url import absolute_url
    32 from pyams_utils.url import absolute_url
    32 from pyams_zmi.form import AdminDialogEditForm, InnerAdminEditForm
    33 from pyams_zmi.form import AdminDialogEditForm, InnerAdminEditForm
    33 from pyramid.decorator import reify
    34 from pyramid.decorator import reify
   106         fields['renderer'].widgetFactory = PortletRendererFieldWidget
   107         fields['renderer'].widgetFactory = PortletRendererFieldWidget
   107         return fields
   108         return fields
   108 
   109 
   109     weight = 10
   110     weight = 10
   110 
   111 
       
   112     def get_ajax_output(self, changes):
       
   113 
       
   114         def get_form_factory(context, request):
       
   115             return PortletSettingsPropertiesEditor(context, request, self.parent_form)
       
   116 
       
   117         output = super(PortletSettingsPropertiesEditor, self).get_ajax_output(changes)
       
   118         if 'renderer' in changes.get(IPortletSettings, ()):
       
   119             renderer = self.context.get_renderer()
       
   120             if (renderer is not None) and \
       
   121                (renderer.target_interface is None) and \
       
   122                (renderer.settings_interface is not None):
       
   123                 output.update({
       
   124                     'close_form': False
       
   125                 })
       
   126                 output.setdefault('events', []).append(
       
   127                     get_json_widget_refresh_event(self.context, self.request, get_form_factory, 'renderer'))
       
   128         return output
       
   129 
   111 
   130 
   112 #
   131 #
   113 # Portlet renderer settings edit form
   132 # Portlet renderer settings edit form
   114 #
   133 #
   115 
   134