summaryrefslogtreecommitdiff
path: root/patchwork/filters.py
diff options
context:
space:
mode:
authorStephen Finucane <stephen@that.guru>2016-10-29 14:13:39 +0100
committerStephen Finucane <stephen@that.guru>2016-10-31 16:37:17 +0000
commitf3c5cb55b617f0837cd558c132a97b010f7d4c91 (patch)
tree2eede0ef2c7d3c149f8cd77fc82c4ec45ca0daed /patchwork/filters.py
parent5136285b1f0dac3caa251ce8b96173b5a9048ecc (diff)
downloadpatchwork-f3c5cb55b617f0837cd558c132a97b010f7d4c91.tar
patchwork-f3c5cb55b617f0837cd558c132a97b010f7d4c91.tar.gz
templates: Integrate series support
Integrate support for series in the web UI. This is rather straightforward, the only significant change being the addition of a filter for series filtering. Signed-off-by: Stephen Finucane <stephen@that.guru> Reviewed-by: Andy Doan <andy.doan@linaro.org> Tested-by: Russell Currey <ruscur@russell.cc> Reviewed-by: Daniel Axtens <dja@axtens.net> Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
Diffstat (limited to 'patchwork/filters.py')
-rw-r--r--patchwork/filters.py49
1 files changed, 47 insertions, 2 deletions
diff --git a/patchwork/filters.py b/patchwork/filters.py
index ea832b7..bc8ca41 100644
--- a/patchwork/filters.py
+++ b/patchwork/filters.py
@@ -25,7 +25,9 @@ from django.utils.safestring import mark_safe
from django.utils import six
from django.utils.six.moves.urllib.parse import quote
-from patchwork.models import Person, State
+from patchwork.models import Person
+from patchwork.models import Series
+from patchwork.models import State
class Filter(object):
@@ -82,6 +84,48 @@ class Filter(object):
return '%s: %s' % (self.name, self.kwargs())
+class SeriesFilter(Filter):
+ param = 'series'
+ name = 'Series'
+
+ def __init__(self, filters):
+ super(SeriesFilter, self).__init__(filters)
+ self.series = None
+
+ def _set_key(self, key):
+ self.series = None
+
+ key = key.strip()
+ if not key:
+ return
+
+ try:
+ self.series = Series.objects.get(id=int(key))
+ except (ValueError, Series.DoesNotExist):
+ return
+
+ self.applied = True
+
+ def kwargs(self):
+ if self.series:
+ return {'series': self.series}
+ return {}
+
+ def condition(self):
+ if self.series:
+ return self.series.name
+ return ''
+
+ def _form(self):
+ return mark_safe(('<input type="text" name="series" ' +
+ 'id="series_input" class="form-control">'))
+
+ def key(self):
+ if self.series:
+ return self.series.id
+ return
+
+
class SubmitterFilter(Filter):
param = 'submitter'
@@ -391,7 +435,8 @@ class DelegateFilter(Filter):
self.forced = True
-filterclasses = [SubmitterFilter,
+filterclasses = [SeriesFilter,
+ SubmitterFilter,
StateFilter,
SearchFilter,
ArchiveFilter,