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