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) )
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
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
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