class AllFieldsForm(forms.Form): boolean = forms.BooleanField() char = forms.CharField(max_length=50) choices = forms.ChoiceField(choices=ALPHA_CHOICES) date = forms.DateField() datetime = forms.DateTimeField() decimal = forms.DecimalField(decimal_places=2, max_digits=4) email = forms.EmailField() file_field = forms.FileField() file_path = forms.FilePathField(path='uploads/') float_field = forms.FloatField() generic_ip_address = forms.GenericIPAddressField() image = forms.ImageField() integer = forms.IntegerField() ip_address = forms.IPAddressField() multiple_choices = forms.MultipleChoiceField(choices=ALPHA_CHOICES) null_boolean = forms.NullBooleanField() regex_field = forms.RegexField(regex='^\w+$', js_regex='^[a-zA-Z]+$') slug = forms.SlugField() split_datetime = forms.SplitDateTimeField() time = forms.TimeField() typed_choices = forms.TypedChoiceField(choices=NUMERIC_CHOICES, coerce=int) typed_multiple_choices = forms.TypedMultipleChoiceField( choices=NUMERIC_CHOICES, coerce=int) url = forms.URLField() # GIS fields. if gis_forms: osm_point = gis.PointField( widget=mixin(gis.PointWidget, gis.BaseOsmWidget)) osm_multipoint = gis.MultiPointField( widget=mixin(gis.MultiPointWidget, gis.BaseOsmWidget)) osm_linestring = gis.LineStringField( widget=mixin(gis.LineStringWidget, gis.BaseOsmWidget)) osm_multilinestring = gis.MultiLineStringField( widget=mixin(gis.MultiLineStringWidget, gis.BaseOsmWidget)) osm_polygon = gis.PolygonField( widget=mixin(gis.PolygonWidget, gis.BaseOsmWidget)) osm_multipolygon = gis.MultiPolygonField( widget=mixin(gis.MultiPolygonWidget, gis.BaseOsmWidget)) gmap_point = gis.PointField( widget=mixin(gis.PointWidget, BaseGMapWidget)) gmap_multipoint = gis.MultiPointField( widget=mixin(gis.MultiPointWidget, BaseGMapWidget)) gmap_linestring = gis.LineStringField( widget=mixin(gis.LineStringWidget, BaseGMapWidget)) gmap_multilinestring = gis.MultiLineStringField( widget=mixin(gis.MultiLineStringWidget, BaseGMapWidget)) gmap_polygon = gis.PolygonField( widget=mixin(gis.PolygonWidget, BaseGMapWidget)) gmap_multipolygon = gis.MultiPolygonField( widget=mixin(gis.MultiPolygonWidget, BaseGMapWidget))
class ReportsSearchForm(AdvancedSearchForm): search_weight = forms.TypedMultipleChoiceField( label=_("Report Types"), help_text=_("Limit search to certain report types."), choices=( (2, _("Open")), (1, _("Resolved")), (0, _("Bogus")), ), coerce=int, widget=forms.CheckboxSelectMultiple, required=False)
class SearchNewslettersForm(Form): name = forms.CharField(label=_("Newsletter Name"), max_length=255, required=False) contains = forms.CharField(label=_("Message Contents"), max_length=255, required=False) type = forms.TypedMultipleChoiceField(label=_("Newsletter Type"), widget=forms.CheckboxSelectMultiple, choices=((0, _("Only to subscribers")), (1, _("To every member"))), coerce=int, required=False) rank = forms.ModelMultipleChoiceField( label=_("Recipient Rank"), widget=forms.CheckboxSelectMultiple, queryset=Rank.objects.order_by('order').all(), required=False)
def finalize_form(self): choices = [] for choice in self.poll.choices_cache: choices.append((choice['pk'], choice['name'])) if self.poll.max_choices > 1: self.add_field( 'options', forms.TypedMultipleChoiceField( choices=choices, coerce=int, required=False, widget=forms.CheckboxSelectMultiple)) else: self.add_field( 'options', forms.TypedChoiceField(choices=choices, coerce=int, required=False, widget=forms.RadioSelect))
class SearchUsersForm(Form): username = forms.CharField(label=_("Username"), max_length=255, required=False) email = forms.CharField(label=_("E-mail Address"), max_length=255, required=False) activation = forms.TypedMultipleChoiceField( label=_("Activation Requirement"), widget=forms.CheckboxSelectMultiple, choices=((0, _("Already Active")), (1, _("By User")), (2, _("By Administrator"))), coerce=int, required=False) rank = forms.ModelMultipleChoiceField( label=_("Rank is"), widget=forms.CheckboxSelectMultiple, queryset=Rank.objects.order_by('order').all(), required=False) role = forms.ModelMultipleChoiceField( label=_("Has Role"), widget=forms.CheckboxSelectMultiple, queryset=Role.objects.order_by('name').all(), required=False)
class TypedMultiForm(forms.Form): thing = forms.TypedMultipleChoiceField(coerce=my_coerce, choices=TYPE_CHOICES)