CHECKBOX_MULTIPLE: forms.CheckboxSelectMultiple, RADIO_MULTIPLE: forms.RadioSelect, DATE: SelectDateWidget, DOB: SelectDateWidget, HIDDEN: forms.HiddenInput, } # Some helper groupings of field types. CHOICES = (CHECKBOX, SELECT, RADIO_MULTIPLE) DATES = (DATE, DATE_TIME, DOB) MULTIPLE = (CHECKBOX_MULTIPLE, SELECT_MULTIPLE) # HTML5 Widgets if USE_HTML5: WIDGETS.update({ DATE: html5_field("date", forms.DateInput), DATE_TIME: html5_field("datetime", forms.DateTimeInput), DOB: html5_field("date", forms.DateInput), EMAIL: html5_field("email", forms.TextInput), NUMBER: html5_field("number", forms.TextInput), URL: html5_field("url", forms.TextInput), }) META_REQUIRED_KEYS = {} META_OPTIONAL_KEYS = {} CHOICES_REQUIRED_KEYS = {} CHOICES_OPTIONAL_KEYS = {} for field_id, field_name in NAMES: META_REQUIRED_KEYS[field_id] = [] META_OPTIONAL_KEYS[field_id] = []
CHECKBOX_MULTIPLE: forms.CheckboxSelectMultiple, RADIO_MULTIPLE: forms.RadioSelect, DATE: SelectDateWidget, DOB: SelectDateWidget, HIDDEN: forms.HiddenInput, } # Some helper groupings of field types. CHOICES = (CHECKBOX, SELECT, RADIO_MULTIPLE) DATES = (DATE, DATE_TIME, DOB) MULTIPLE = (CHECKBOX_MULTIPLE, SELECT_MULTIPLE) # HTML5 Widgets if USE_HTML5: WIDGETS.update({ DATE: html5_field("date", forms.DateInput), DATE_TIME: html5_field("datetime", forms.DateTimeInput), DOB: html5_field("date", forms.DateInput), EMAIL: html5_field("email", forms.TextInput), NUMBER: html5_field("number", forms.TextInput), URL: html5_field("url", forms.TextInput), }) # Add any custom fields defined. for field_id, field_path, field_name in EXTRA_FIELDS: if field_id in CLASSES: err = "ID %s for field %s in FORMS_EXTRA_FIELDS already exists" raise ImproperlyConfigured(err % (field_id, field_name)) CLASSES[field_id] = import_attr(field_path) NAMES += ((field_id, _(field_name)),)