Example #1
0
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)
Example #2
0
 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)
Example #3
0
 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)