Use (some) new class functions to generate choices
Defer choice generation from database until object instantiation. - Legacy-Id: 124
This commit is contained in:
parent
561c97bc72
commit
6396c8ee73
|
@ -1,17 +1,17 @@
|
|||
from django import newforms as forms
|
||||
from itertools import chain
|
||||
from ietf.idtracker.models import IDState, IDStatus, GroupIETF
|
||||
from ietf.idindex.models import orgs
|
||||
|
||||
class IDIndexSearchForm(forms.Form):
|
||||
filename = forms.CharField(max_length=100, label='Filename (Full or Partial):', widget=forms.TextInput(attrs={'size': 30}))
|
||||
id_tracker_state_id = forms.ChoiceField(choices=chain((('', 'All/Any'),),
|
||||
[(state.document_state_id, state.state) for state in IDState.objects.all()]), label='I-D Tracker State:')
|
||||
wg_id = forms.ChoiceField(choices=chain((('', 'All/Any'),),
|
||||
[(wg.group_acronym_id, wg.group_acronym.acronym) for wg in GroupIETF.objects.all().select_related().order_by('acronym.acronym')]), label='Working Group:')
|
||||
other_group = forms.ChoiceField(choices=chain((('', 'All/Any'),),
|
||||
[(org['key'], org['name']) for org in orgs]), label='Other Group:')
|
||||
status_id = forms.ChoiceField(choices=chain((('', 'All/Any'),),
|
||||
[(status.status_id, status.status) for status in IDStatus.objects.all()]), label='I-D Status:')
|
||||
id_tracker_state_id = forms.ChoiceField(label='I-D Tracker State:')
|
||||
wg_id = forms.ChoiceField(label='Working Group:')
|
||||
other_group = forms.ChoiceField(choices=[('', 'All/Any')] + [(org['key'], org['name']) for org in orgs], label='Other Group:')
|
||||
status_id = forms.ChoiceField(label='I-D Status:')
|
||||
last_name = forms.CharField(max_length=50)
|
||||
first_name = forms.CharField(max_length=50)
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(IDIndexSearchForm, self).__init__(*args, **kwargs)
|
||||
self.fields['id_tracker_state_id'].choices = [('', 'All/Any')] + IDState.choices()
|
||||
self.fields['wg_id'].choices = [('', 'All/Any')] + GroupIETF.choices()
|
||||
self.fields['status_id'].choices = [('', 'All/Any')] + [(status.status_id, status.status) for status in IDStatus.objects.all()]
|
||||
|
|
Loading…
Reference in a new issue