def form_configuration_modified(context, event): if not is_definition_modified(context, event): return if not IBaseForm.providedBy(context): raise ValueError('context must be IBaseForm provider') ## re-sign context and data-record with current definition/schema: try: definition = form_definition(context) except ValueError: return # no definition means no schema to sync if ISimpleForm.providedBy(context): components = IFormComponents(definition) sync_simple_form(context, components) elif IMultiForm.providedBy(context): sync_multi_form(context, definition)
def update(self, *args, **kwargs): secmgr = getSecurityManager() self.forms = [] for form in self.content(): if not secmgr.checkPermission('View', form): continue # user does not have permission to include form if not IBaseForm.providedBy(form): continue # ignore non-form content if ISimpleForm.providedBy(form): if self._flex_form_hasdata(form): self.forms.append(form) if IMultiForm.providedBy(form): notes = getattr(form, 'entry_notes', '') or '' if len(form.keys()) or notes: self.forms.append(form) # non-empty multiform keyfn = lambda o: getattr(aq_base(o), 'start', None) self.forms = sorted(self.forms, key=keyfn)