jobs list: filter by purged attribute
authorMaciej Tronowski <mtro@man.poznan.pl>
Wed, 29 Apr 2015 14:53:52 +0000 (16:53 +0200)
committerMaciej Tronowski <mtro@man.poznan.pl>
Wed, 29 Apr 2015 14:53:52 +0000 (16:53 +0200)
qcg/forms.py
qcg/templates/qcg/jobs.html
qcg/views.py

index ecfb154..d3d1915 100644 (file)
@@ -44,12 +44,14 @@ class FiltersForm(forms.Form):
     }
     STATUS_CHOICES_DICT = dict(STATUS_CHOICES)
 
+    keywords = forms.CharField(max_length=100, label=u"Wyszukaj frazę", required=False)
     status = forms.MultipleChoiceField(choices=STATUS_CHOICES, label=u"Status", 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)
+    host = forms.MultipleChoiceField(label=u"Host", required=False, widget=forms.CheckboxSelectMultiple)
+    purged = forms.TypedChoiceField(label=u"Istniejący katalog roboczy?", required=False, coerce=lambda x: bool(int(x)),
+                                    choices=((0, 'Tak'), (1, 'Nie')), widget=forms.RadioSelect)
     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)
 
index c2e1480..4cc79d1 100644 (file)
@@ -67,7 +67,7 @@
 
 {% block container %}
     <form action="." class="pull-right">
-        {% get_params_as_hidden 'host' 'submission' 'finish' %}
+        {% get_params_as_hidden 'host' 'purged' 'submission' 'finish' %}
         <div class="btn-toolbar" role="toolbar">
             <div class="btn-group" role="group">
                 <div class="input-group">
                                 </div>
                             </div>
                         </div>
+
+                        <div class="form-group">
+                            <label class="col-sm-3 col-md-4 control-label">Istniejący katalog roboczy?</label>
+                            <div class="col-sm-9 col-md-6">
+                                <div class="btn-group" data-toggle="buttons">
+                                    {% for choice in filters.purged %}
+                                        <label class="btn btn-default{% if choice.is_checked %} active{% endif %}">
+                                            <input type="radio" name="{{ choice.name }}" value="{{ choice.choice_value }}"
+                                                   {% if choice.is_checked %}checked{% endif %}> {{ choice.choice_label }}
+                                        </label>
+                                    {% endfor %}
+                                </div>
+                            </div>
+                        </div>
+
                         {% bootstrap_field filters.submission layout='horizontal' bound_css_class=' ' %}
                         {% bootstrap_field filters.finish layout='horizontal' bound_css_class=' ' %}
                     </form>
index b702668..12827a9 100644 (file)
@@ -74,6 +74,7 @@ def jobs_list(request):
         keywords = filters.cleaned_data['keywords']
         status = filters.cleaned_data['status']
         host = filters.cleaned_data['host']
+        purged = filters.cleaned_data['purged']
         submission = filters.cleaned_data['submission']
         finish = filters.cleaned_data['finish']
 
@@ -105,6 +106,14 @@ def jobs_list(request):
             for h in host:
                 selected_filters.append((host_dict[h], 'host', h))
 
+        if isinstance(purged, bool):
+            tasks = tasks.filter(purged=purged)
+
+            if purged:
+                selected_filters.append((u"Usunięty katalog roboczy", 'purged', '1'))
+            else:
+                selected_filters.append((u"Istniejący katalog roboczy", 'purged', '0'))
+
         if submission:
             start, end = submission.split('-')