Пример #1
0
 def _clone_form_items(self, old_form, new_form, clone_all_revisions):
     old_sections = RegistrationFormSection.find(
         RegistrationFormSection.registration_form_id == old_form.id)
     items_attrs = get_simple_column_attrs(RegistrationFormSection)
     for old_section in old_sections:
         new_section = RegistrationFormSection(
             **{attr: getattr(old_section, attr)
                for attr in items_attrs})
         for old_item in old_section.children:
             new_item = RegistrationFormItem(
                 parent=new_section,
                 registration_form=new_form,
                 **{attr: getattr(old_item, attr)
                    for attr in items_attrs})
             if new_item.is_field:
                 if clone_all_revisions:
                     self._clone_all_field_versions(old_item, new_item)
                 else:
                     field_data = RegistrationFormFieldData(
                         field=new_item,
                         versioned_data=old_item.versioned_data)
                     new_item.current_data = field_data
                     self._field_data_map[
                         old_item.current_data] = field_data
             new_section.children.append(new_item)
         new_form.form_items.append(new_section)
         db.session.flush()
Пример #2
0
 def _clone_form_items(self, old_form, new_form, clone_all_revisions):
     old_sections = RegistrationFormSection.find(RegistrationFormSection.registration_form_id == old_form.id)
     items_attrs = get_simple_column_attrs(RegistrationFormSection)
     for old_section in old_sections:
         new_section = RegistrationFormSection(**{attr: getattr(old_section, attr) for attr in items_attrs})
         for old_item in old_section.children:
             new_item = RegistrationFormItem(parent=new_section, registration_form=new_form,
                                             **{attr: getattr(old_item, attr) for attr in items_attrs})
             if new_item.is_field:
                 if clone_all_revisions:
                     self._clone_all_field_versions(old_item, new_item)
                 else:
                     field_data = RegistrationFormFieldData(field=new_item,
                                                            versioned_data=old_item.versioned_data)
                     new_item.current_data = field_data
                     self._field_data_map[old_item.current_data] = field_data
             new_section.children.append(new_item)
         new_form.form_items.append(new_section)
         db.session.flush()