src/pyams_content/features/header/zmi/__init__.py
changeset 628 baf2d9499054
parent 595 f6ecc99e4745
child 715 38fe2d681233
equal deleted inserted replaced
627:e350df2967ea 628:baf2d9499054
   136     legend = None
   136     legend = None
   137 
   137 
   138     fields = field.Fields(IHeaderSettings).select('renderer')
   138     fields = field.Fields(IHeaderSettings).select('renderer')
   139     weight = 1
   139     weight = 1
   140 
   140 
       
   141     _changes = None
       
   142 
   141     def __init__(self, context, request, group):
   143     def __init__(self, context, request, group):
   142         context = IHeaderSettings(context)
   144         context = IHeaderSettings(context)
   143         super(HeaderSettingsRendererEditSubform, self).__init__(context, request, group)
   145         super(HeaderSettingsRendererEditSubform, self).__init__(context, request, group)
   144 
   146 
   145     def updateWidgets(self, prefix=None):
   147     def updateWidgets(self, prefix=None):
   156                 'ams-select2-helper-target': '#renderer-settings-helper'
   158                 'ams-select2-helper-target': '#renderer-settings-helper'
   157             }
   159             }
   158             alsoProvides(widget, IObjectData)
   160             alsoProvides(widget, IObjectData)
   159 
   161 
   160     def get_forms(self, include_self=True):
   162     def get_forms(self, include_self=True):
   161         if include_self and self.request.method == 'POST':
   163         if include_self and (self._changes is None) and (self.request.method == 'POST'):
   162             data, errors = self.extractData()
   164             data, errors = self.extractData()
   163             if not errors:
   165             if not errors:
   164                 self.applyChanges(data)
   166                 self._changes = self.applyChanges(data)
   165         for form in super(HeaderSettingsRendererEditSubform, self).get_forms(include_self):
   167         for form in super(HeaderSettingsRendererEditSubform, self).get_forms(include_self):
   166             yield form
   168             yield form
       
   169 
       
   170     def get_ajax_output(self, changes):
       
   171         if not changes:
       
   172             changes = self._changes
       
   173         if changes:
       
   174             return {
       
   175                 'status': 'success',
       
   176                 'message': self.request.localizer.translate(self.successMessage)
       
   177             }
       
   178         else:
       
   179             return super(HeaderSettingsRendererEditSubform, self).get_ajax_output(changes)
   167 
   180 
   168 
   181 
   169 @adapter_config(name='header-renderer-settings-form',
   182 @adapter_config(name='header-renderer-settings-form',
   170                 context=(IHeaderRendererSettings, IPyAMSLayer, HeaderSettingsRendererEditSubform),
   183                 context=(IHeaderRendererSettings, IPyAMSLayer, HeaderSettingsRendererEditSubform),
   171                 provides=IInnerSubForm)
   184                 provides=IInnerSubForm)