Regroup multiselect options to make classifying pending feedback simpler. Make the control larger and resizable. Fixes #1854.

- Legacy-Id: 10593
This commit is contained in:
Robert Sparks 2015-12-14 23:14:44 +00:00
parent 5e0632e8eb
commit bf54e2b3f5
2 changed files with 13 additions and 3 deletions

View file

@ -39,9 +39,15 @@ class PositionNomineeField(forms.ChoiceField):
positions = Position.objects.get_by_nomcom(self.nomcom).opened().order_by('name')
results = []
for position in positions:
nominees = [('%s_%s' % (position.id, i.id), unicode(i)) for i in Nominee.objects.get_by_nomcom(self.nomcom).not_duplicated().filter(nominee_position=position).select_related("email", "email__person")]
accepted_nominees = [np.nominee for np in NomineePosition.objects.filter(position=position,state='accepted').exclude(nominee__duplicated__isnull=False)]
nominees = [('%s_%s' % (position.id, i.id), unicode(i)) for i in accepted_nominees]
if nominees:
results.append((position.name, nominees))
results.append((position.name+" (Accepted)", nominees))
for position in positions:
other_nominees = [np.nominee for np in NomineePosition.objects.filter(position=position).exclude(state='accepted').exclude(nominee__duplicated__isnull=False)]
nominees = [('%s_%s' % (position.id, i.id), unicode(i)) for i in other_nominees]
if nominees:
results.append((position.name+" (Declined or Pending)", nominees))
kwargs['choices'] = results
super(PositionNomineeField, self).__init__(*args, **kwargs)
@ -671,7 +677,7 @@ class MutableFeedbackForm(forms.ModelForm):
if self.feedback_type.slug != 'nomina':
self.fields['nominee'] = MultiplePositionNomineeField(nomcom=self.nomcom,
required=True,
widget=forms.SelectMultiple,
widget=forms.SelectMultiple(attrs={'class':'nominee_multi_select','size':'12'}),
help_text='Hold down "Control", or "Command" on a Mac, to select more than one.')
else:
self.fields['position'] = forms.ModelChoiceField(queryset=Position.objects.get_by_nomcom(self.nomcom).opened(), label="Position")

View file

@ -7,6 +7,10 @@
{% block subtitle %} - Feeback pending{% endblock %}
{% block morecss %}
.nominee_multi_select { resize: vertical; }
{% endblock %}
{% block nomcom_content %}
{% origin %}
<h2>Feedback pending from email list</h2>