src/pyams_content/features/footer/zmi/__init__.py
changeset 636 1d0b1d4b3770
parent 595 f6ecc99e4745
child 715 38fe2d681233
equal deleted inserted replaced
635:ac6c59149f0d 636:1d0b1d4b3770
   130     legend = None
   130     legend = None
   131 
   131 
   132     fields = field.Fields(IFooterSettings).select('renderer')
   132     fields = field.Fields(IFooterSettings).select('renderer')
   133     weight = 1
   133     weight = 1
   134 
   134 
       
   135     _changes = None
       
   136 
   135     def __init__(self, context, request, group):
   137     def __init__(self, context, request, group):
   136         context = IFooterSettings(context)
   138         context = IFooterSettings(context)
   137         super(FooterSettingsRendererEditSubform, self).__init__(context, request, group)
   139         super(FooterSettingsRendererEditSubform, self).__init__(context, request, group)
   138 
   140 
   139     def updateWidgets(self, prefix=None):
   141     def updateWidgets(self, prefix=None):
   150                 'ams-select2-helper-target': '#renderer-settings-helper'
   152                 'ams-select2-helper-target': '#renderer-settings-helper'
   151             }
   153             }
   152             alsoProvides(widget, IObjectData)
   154             alsoProvides(widget, IObjectData)
   153 
   155 
   154     def get_forms(self, include_self=True):
   156     def get_forms(self, include_self=True):
   155         if include_self and self.request.method == 'POST':
   157         if include_self and (self._changes is None) and (self.request.method == 'POST'):
   156             data, errors = self.extractData()
   158             data, errors = self.extractData()
   157             if not errors:
   159             if not errors:
   158                 self.applyChanges(data)
   160                 self._changes = self.applyChanges(data)
   159         for form in super(FooterSettingsRendererEditSubform, self).get_forms(include_self):
   161         for form in super(FooterSettingsRendererEditSubform, self).get_forms(include_self):
   160             yield form
   162             yield form
       
   163 
       
   164     def get_ajax_output(self, changes):
       
   165         if not changes:
       
   166             changes = self._changes
       
   167         if changes:
       
   168             return {
       
   169                 'status': 'success',
       
   170                 'message': self.request.localizer.translate(self.successMessage)
       
   171             }
       
   172         else:
       
   173             return super(FooterSettingsRendererEditSubform, self).get_ajax_output(changes)
   161 
   174 
   162 
   175 
   163 @adapter_config(name='footer-renderer-settings-form',
   176 @adapter_config(name='footer-renderer-settings-form',
   164                 context=(IFooterRendererSettings, IPyAMSLayer, FooterSettingsRendererEditSubform),
   177                 context=(IFooterRendererSettings, IPyAMSLayer, FooterSettingsRendererEditSubform),
   165                 provides=IInnerSubForm)
   178                 provides=IInnerSubForm)