def handleSaveDefaults(self, action): # ignore fields from behaviors by setting their widgets' modes # to the display mode while we extract the form values (hack!) widget_modes = {} for widget in self._iterateOverWidgets(): if widget.field.interface is not self.context.schema: widget_modes[widget] = widget.mode widget.mode = DISPLAY_MODE data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return for fname, value in data.items(): self.context.schema[fname].default = value notify(SchemaModifiedEvent(self.context)) # restore the actual widget modes so they render a preview for widget, mode in widget_modes.items(): widget.mode = mode # update widgets to take the new defaults into account self.updateWidgets()
def test_subscriberOKforNonAmbidexterityTypes(self): notify(SchemaModifiedEvent(self.portal.portal_types.Document))