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) |