From 71d69278bca9cd88e3749507cddddcdc99a111f7 Mon Sep 17 00:00:00 2001 From: Andreas Kotowicz Date: Thu, 1 Dec 2011 20:48:37 +0100 Subject: [PATCH] custom fields: add option which forces user to make an active choice. in forms.py we prepend a 0 entry to the list of choices. --- helpdesk/forms.py | 16 +++++++++++----- helpdesk/models.py | 5 +++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/helpdesk/forms.py b/helpdesk/forms.py index 02e64151..b9b6bd4d 100644 --- a/helpdesk/forms.py +++ b/helpdesk/forms.py @@ -58,7 +58,10 @@ class EditTicketForm(forms.ModelForm): instanceargs['max_digits'] = field.max_length elif field.data_type == 'list': fieldclass = forms.ChoiceField - instanceargs['choices'] = field.choices_as_array + if field.empty_selection_list: + choices = field.choices_as_array + choices.insert(0, ('','---------' ) ) + instanceargs['choices'] = choices elif field.data_type == 'boolean': fieldclass = forms.BooleanField elif field.data_type == 'date': @@ -192,7 +195,10 @@ class TicketForm(forms.Form): instanceargs['max_digits'] = field.max_length elif field.data_type == 'list': fieldclass = forms.ChoiceField - instanceargs['choices'] = field.choices_as_array + if field.empty_selection_list: + choices = field.choices_as_array + choices.insert(0, ('','---------' ) ) + instanceargs['choices'] = choices elif field.data_type == 'boolean': fieldclass = forms.BooleanField elif field.data_type == 'date': @@ -405,9 +411,9 @@ class PublicTicketForm(forms.Form): instanceargs['max_digits'] = field.max_length elif field.data_type == 'list': fieldclass = forms.ChoiceField - choices = [] - for line in field.list_values.split("\n"): - choices.append((line, line)) + if field.empty_selection_list: + choices = field.choices_as_array + choices.insert(0, ('','---------' ) ) instanceargs['choices'] = choices elif field.data_type == 'boolean': fieldclass = forms.BooleanField diff --git a/helpdesk/models.py b/helpdesk/models.py index d10afc8b..5432825d 100644 --- a/helpdesk/models.py +++ b/helpdesk/models.py @@ -1175,6 +1175,11 @@ class CustomField(models.Model): blank=True, null=True, ) + + empty_selection_list = models.BooleanField( + _('Add empty first choice to List?'), + help_text=_('Only for List: adds an empty first entry to the choices list, which enforces that the user makes an active choice.'), + ) list_values = models.TextField( _('List Values'),