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
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)
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)
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.") )
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.' ))
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
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')
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')