Example #1
0
    def get_mapped_data(self, exclude_missing=False):
        """
        Returns an dictionary sorted by the position of the respective field
        in its form.

        :param boolean exclude_missing: If ``True``, non-filled fields (those
            whose value evaluates to ``False`` are not present in the returned
            dictionary. Default: ``False``
        """

        data = self.cleaned_data

        mapped_data = OrderedDict()
        for key, field in six.iteritems(self.model_fields):
            df = formfield_registry.get(field.field_type)
            # Hook to DynamicPhoneNumberField to set key and field.name properly
            if field.field_type == "dynamic_forms.formfields.DynamicPhoneNumberField":
                key = "phone_number"
                # field.name = key
            if field.field_type == "dynamic_forms.formfields.TimeField":
                key = "hora"
                # field.name = key
            if field.field_type == "dynamic_forms.formfields.DateField":
                key = "fecha"
                # field.name = key
            if df and df.do_display_data() and key != "agree":  # Dont save agreement
                name = field.name
                value = data.get(key, None)
                if exclude_missing and not bool(value):
                    continue
                mapped_data[name] = value
        return mapped_data
Example #2
0
    def save(self, *args, **kwargs):
        if not self.name:
            self.name = slugify(self.label)

        given_options = self.options
        field_type_cls = formfield_registry.get(self.field_type)
        invalid = set(self.options.keys()) - set(field_type_cls._meta.keys())
        if invalid:
            for key in invalid:
                del given_options[key]
            self.options = given_options

        super(FormFieldModel, self).save(*args, **kwargs)
Example #3
0
    def save(self, *args, **kwargs):
        if not self.name:
            self.name = slugify(self.label)

        given_options = self.options
        field_type_cls = formfield_registry.get(self.field_type)
        invalid = set(self.options.keys()) - set(field_type_cls._meta.keys())
        if invalid:
            for key in invalid:
                del given_options[key]
            self.options = given_options

        super(FormFieldModel, self).save(*args, **kwargs)
Example #4
0
 def __init__(self, *args, **kwargs):
     instance = kwargs.get("instance", None)
     meta = None
     if instance:
         df = formfield_registry.get(instance.field_type)
         if df:
             meta = df._meta
     super(AdminFormFieldInlineForm, self).__init__(*args, **kwargs)
     choices = self.fields["field_type"].choices
     self.fields["field_type"].choices = sorted(choices, key=lambda x: x[1])
     if meta is not None:
         self.fields["_options"] = OptionsField(meta, required=False, label=_("Options"))
     else:
         self.fields["_options"].widget = ReadOnlyWidget(
             show_text=_("The options for this field will be available once it has " "been stored the first time.")
         )
Example #5
0
 def __init__(self, *args, **kwargs):
     instance = kwargs.get('instance', None)
     meta = None
     if instance:
         df = formfield_registry.get(instance.field_type)
         if df:
             meta = df._meta
     super(AdminFormFieldInlineForm, self).__init__(*args, **kwargs)
     choices = self.fields['field_type'].choices
     self.fields['field_type'].choices = sorted(choices, key=lambda x: x[1])
     if meta is not None:
         self.fields['_options'] = OptionsField(meta, required=False,
             label=_('Options'))
     else:
         self.fields['_options'].widget = ReadOnlyWidget(show_text=_(
             'The options for this field will be available once it has '
             'been stored the first time.'
         ))
Example #6
0
    def get_mapped_data(self, exclude_missing=False):
        """
        Returns an dictionary sorted by the position of the respective field
        in its form.

        :param boolean exclude_missing: If ``True``, non-filled fields (those
            whose value evaluates to ``False`` are not present in the returned
            dictionary. Default: ``False``
        """
        data = self.cleaned_data
        mapped_data = OrderedDict()
        for key, field in six.iteritems(self.model_fields):
            df = formfield_registry.get(field.field_type)
            if df and df.do_display_data():
                name = field.label
                value = data.get(key)
                if exclude_missing and not bool(value):
                    continue
                mapped_data[name] = value
        return mapped_data
Example #7
0
 def generate_form_field(self, form):
     field_type_cls = formfield_registry.get(self.field_type)
     field = field_type_cls(**self.get_form_field_kwargs())
     field.contribute_to_form(form)
     return field
 def test_get_default_action(self):
     self.assertEqual(registry.get(self.key % 'BooleanField'), BooleanField)
     self.assertEqual(registry.get(self.key % 'ChoiceField'), ChoiceField)
    def test_unregister(self):
        key = 'tests.test_formfields.CharField'
        registry.register(CharField)
        registry.unregister(key)

        self.assertIsNone(registry.get(key))
 def test_register(self):
     registry.register(CharField)
     cls = registry.get('tests.test_formfields.CharField')
     self.assertEqual(cls, CharField)
     self.assertEqual(cls.get_display_label(), 'Char')
Example #11
0
 def generate_form_field(self, form):
     field_type_cls = formfield_registry.get(self.field_type)
     field = field_type_cls(**self.get_form_field_kwargs())
     field.contribute_to_form(form)
     return field
 def test_get_default_action(self):
     self.assertEqual(registry.get(self.key % 'BooleanField'), BooleanField)
     self.assertEqual(registry.get(self.key % 'ChoiceField'), ChoiceField)
    def test_unregister(self):
        key = 'tests.test_formfields.CharField'
        registry.register(CharField)
        registry.unregister(key)

        self.assertIsNone(registry.get(key))
 def test_register(self):
     registry.register(CharField)
     cls = registry.get('tests.test_formfields.CharField')
     self.assertEqual(cls, CharField)
     self.assertEqual(cls.get_display_label(), 'Char')