Exemplo n.º 1
0
 def get_formfield_name(cls, block_value):
     """
     Return a value to use as the 'name' for the Django form field.
     """
     return block_value.get("name") or get_slug_from_string(
         cls.get_formfield_label(block_value)
     )
Exemplo n.º 2
0
    def get_data_fields(self):
        """ Returns a list of tuples with (field_name, field_label). """

        data_fields = [("submit_time", _("Submission date"))]
        data_fields += [(get_slug_from_string(field["value"]["label"]),
                         field["value"]["label"])
                        for field in self.get_form_fields()]

        return data_fields
Exemplo n.º 3
0
    def get_data_fields(self):
        """ Returns a list of tuples with (field_name, field_label). """

        data_fields = [
            ('submit_time', _('Submission date')),
        ]
        data_fields += [
            (get_slug_from_string(field['value']['label']), field['value']['label'])
            for field in self.get_form_fields()
        ]

        return data_fields
Exemplo n.º 4
0
    def formfields(self):
        """ Return a list of form fields from the registered fields. """

        formfields = OrderedDict()

        registered_fields = get_fields()

        for field in self.fields:
            field_type = field.get('type')
            field_value = field.get('value')

            # check we have the field
            if field_type not in registered_fields:
                raise AttributeError(
                    'Could not find a registered field of type %s' %
                    field_type)

            # check there is a label
            if 'label' not in field_value:
                raise AttributeError(
                    'The block for %s must contain a label of type blocks.CharBlock(required=True)'
                    % field_type)

            # slugify the label for the field name
            field_name = get_slug_from_string(field_value.get('label'))

            # get the field
            registered_cls = registered_fields[field_type]()
            field_cls = registered_cls.get_formfield(field_value)
            formfields[field_name] = field_cls

        # add fields to uniquely identify the form
        formfields['form_id'] = forms.CharField(widget=forms.HiddenInput)
        formfields['form_reference'] = forms.CharField(
            widget=forms.HiddenInput)

        return formfields