diff --git a/registrasion/reporting/forms.py b/registrasion/reporting/forms.py index 8543209b4d433541b7d0e7ce5821aea4106db2ea..2e983491156c4859d2c3b525db764a5603634e2c 100644 --- a/registrasion/reporting/forms.py +++ b/registrasion/reporting/forms.py @@ -29,3 +29,22 @@ class UserIdForm(forms.Form): label="User ID", required=False, ) + + +def model_fields_form_factory(model): + ''' Creates a form for specifying fields from a model to display. ''' + + fields = model._meta.get_fields() + + choices = [] + for field in fields: + if hasattr(field, "verbose_name"): + choices.append((field.name, field.verbose_name)) + + class ModelFieldsForm(forms.Form): + fields = forms.MultipleChoiceField( + choices=choices, + required=False, + ) + + return ModelFieldsForm