Example #1
0
    def save(self):
        cf = self.obj or CustomField()
        self.populate_obj(cf)
        cf.meeting = g.meeting

        is_choice_field_disabled = self.custom_field_choices.flags.disabled
        if (cf.field_type in (CustomField.MULTI_CHECKBOX, CustomField.RADIO)
                and not is_choice_field_disabled):
            CustomFieldChoice.query.filter_by(custom_field_id=cf.id).delete()
            for choice in self.custom_field_choices.data:
                cf_choice = CustomFieldChoice(custom_field=cf)
                cf_choice.value = Translation(english=choice)
                db.session.add(cf_choice)

        if not cf.id:
            last_sort = (CustomField.query.filter_by(
                meeting=g.meeting).with_entities(CustomField.sort).order_by(
                    desc(CustomField.sort)).first())
            if last_sort:
                cf.sort = last_sort[0] + 1
            db.session.add(cf)
        db.session.commit()
    def save(self):
        cf = self.obj or CustomField()
        self.populate_obj(cf)
        cf.meeting = g.meeting

        is_choice_field_disabled = self.custom_field_choices.flags.disabled
        if (cf.field_type in (CustomField.MULTI_CHECKBOX, CustomField.RADIO)
            and not is_choice_field_disabled):
            CustomFieldChoice.query.filter_by(custom_field_id=cf.id).delete()
            for choice in self.custom_field_choices.data:
                cf_choice = CustomFieldChoice(custom_field=cf)
                cf_choice.value = Translation(english=choice)
                db.session.add(cf_choice)

        if not cf.id:
            last_sort = (
                CustomField.query.filter_by(meeting=g.meeting)
                .with_entities(CustomField.sort)
                .order_by(desc(CustomField.sort))
                .first())
            if last_sort:
                cf.sort = last_sort[0] + 1
            db.session.add(cf)
        db.session.commit()
    def _clone_custom_fields(self, meeting, custom_fields,
                             translation_attrs=[]):
        for custom_field in custom_fields:

            clone = copy_attributes(custom_field.__class__(), custom_field)
            for attr in translation_attrs:
                setattr(clone, attr, copy_attributes(Translation(),
                                                     getattr(custom_field, attr)))
            clone.meeting = meeting
            db.session.add(clone)

            for choice in custom_field.choices:
                if choice.value.english == 'Nomenclature specialist':
                    continue
                choice_clone = CustomFieldChoice(custom_field=clone)
                setattr(choice_clone, 'value', copy_attributes(Translation(),
                                                               getattr(choice, 'value')))
                db.session.add(choice_clone)

            db.session.flush()
def _add_choice_values_for_custom_field(custom_field, choices):
    """Adds CustomFieldChoices for CustomField."""
    for value, label in (choices or []):
        custom_field_choice = CustomFieldChoice(custom_field=custom_field)
        custom_field_choice.value = Translation(english=value)
        db.session.add(custom_field_choice)
def _add_choice_values_for_custom_field(custom_field, choices):
    """Adds CustomFieldChoices for CustomField."""
    for value, label in (choices or []):
        custom_field_choice = CustomFieldChoice(custom_field=custom_field)
        custom_field_choice.value = Translation(english=value)
        db.session.add(custom_field_choice)