fix host choices setup
authorMaciej Tronowski <mtro@man.poznan.pl>
Wed, 25 Feb 2015 11:42:04 +0000 (12:42 +0100)
committerMaciej Tronowski <mtro@man.poznan.pl>
Wed, 25 Feb 2015 11:42:04 +0000 (12:42 +0100)
qcg/forms.py

index d9d7a92..8906e2d 100644 (file)
@@ -2,17 +2,11 @@
 from django import forms
 from django.core.validators import RegexValidator
 from django.template.defaultfilters import capfirst
-from django.utils.functional import lazy
 from pyqcg.utils import TaskStatus
 
 from qcg.models import Task, Allocation
 
 
-def host_choices():
-    return tuple((host, capfirst(host.split('.')[0])) for host in
-                 Allocation.objects.values_list('host_name', flat=True).order_by('host_name').distinct())
-
-
 date_range_validator = RegexValidator(r'[0-9]{2}\.[0-9]{2}\.[0-9]{4} - [0-9]{2}\.[0-9]{2}\.[0-9]{4}')
 
 
@@ -47,10 +41,16 @@ class FiltersForm(forms.Form):
 
     status = forms.MultipleChoiceField(choices=STATUS_CHOICES, label=u"Status", required=False,
                                        widget=forms.CheckboxSelectMultiple)
-    host = forms.MultipleChoiceField(choices=lazy(host_choices, tuple)(), label=u"Host", required=False,
-                                     widget=forms.CheckboxSelectMultiple)
+    host = forms.MultipleChoiceField(label=u"Host", required=False, widget=forms.CheckboxSelectMultiple)
 
     # advanced
     keywords = forms.CharField(max_length=100, label=u"Wyszukaj frazę", required=False)
     submission = forms.CharField(label=u"Data zlecenia", validators=[date_range_validator], required=False)
     finish = forms.CharField(label=u"Data zakończenia", validators=[date_range_validator], required=False)
+
+    def __init__(self, *args, **kwargs):
+        super(FiltersForm, self).__init__(*args, **kwargs)
+
+        self.fields['host'].choices = tuple(
+            (host, capfirst(host.split('.', 1)[0]))
+            for host in Allocation.objects.values_list('host_name', flat=True).order_by('host_name').distinct())