]> git.ipfire.org Git - thirdparty/patchwork.git/commitdiff
filters: Return dictionaries
authorStephen Finucane <stephen@that.guru>
Thu, 27 Sep 2018 14:34:07 +0000 (15:34 +0100)
committerStephen Finucane <stephen@that.guru>
Sat, 13 Oct 2018 16:27:19 +0000 (17:27 +0100)
This makes it a little easier to figure out what filters are active and
will be used in a future patch.

Signed-off-by: Stephen Finucane <stephen@that.guru>
(cherry picked from commit 0bd13fe1d4d077e7b1fa101d08c914da04387d0a)

patchwork/filters.py
patchwork/templates/patchwork/filters.html
patchwork/views/__init__.py

index 8d0f82f2d9a5772d2d734d3527d5fdff1811fbb5..f6e483947b245f25c92d7771f0e9d18548504b7d 100644 (file)
@@ -19,6 +19,8 @@
 
 from __future__ import absolute_import
 
+import collections
+
 from django.contrib.auth.models import User
 from django.utils.html import escape
 from django.utils.safestring import mark_safe
@@ -459,7 +461,7 @@ class Filters:
         self.project = project
 
     def filter_conditions(self):
-        kwargs = {}
+        kwargs = collections.OrderedDict()
         for f in self._filters:
             if f.applied:
                 kwargs.update(f.kwargs())
@@ -472,11 +474,11 @@ class Filters:
         return queryset.filter(**kwargs)
 
     def params(self):
-        return [(f.param, f.key()) for f in self._filters
-                if f.key() is not None]
+        return collections.OrderedDict([
+            (f.param, f.key()) for f in self._filters if f.key() is not None])
 
     def querystring(self, remove=None):
-        params = dict(self.params())
+        params = self.params()
 
         for (k, v) in self.values.items():
             if k not in params:
@@ -497,7 +499,8 @@ class Filters:
         return self.querystring(filter)
 
     def applied_filters(self):
-        return [x for x in self._filters if x.applied]
+        return collections.OrderedDict([
+            (x.param, x) for x in self._filters if x.applied])
 
     def available_filters(self):
         return self._filters
index 5331ac855aecc07b63163426be90e3149d6bba2e..e760310bdbed6cfa7d2bd834329a0c144340011c 100644 (file)
@@ -130,7 +130,7 @@ $(document).ready(function() {
  <div id="filtersummary">
   <a href="javascript:filter_click()">Show patches with</a>:
  {% if filters.applied_filters %}
-  {% for filter in filters.applied_filters %}
+  {% for filter in filters.applied_filters.values %}
    {{ filter.name }} = <strong>{{ filter.condition }}</strong>
     {% if not filter.forced %}
      <a class="filter-action"
index f8d23a388ac7d8ca584d23dfebbf36d49145ad54..b4f7964f1871391c07a69f03570e48ca46635c47 100644 (file)
@@ -202,7 +202,7 @@ def generic_list(request, project, view, view_args=None, filter_settings=None,
 
         value = data.get(param, None)
         if value:
-            params.append((param, value))
+            params['param'] = value
 
     data = {}
     if request.method == 'GET':