summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.rst2
-rw-r--r--patchwork/api/filters.py5
-rw-r--r--patchwork/compat.py16
-rw-r--r--releasenotes/notes/django-filter-1-1-6a6b0ab8cbe0faca.yaml6
-rw-r--r--requirements-dev.txt2
-rw-r--r--requirements-prod.txt2
-rw-r--r--tox.ini3
7 files changed, 30 insertions, 6 deletions
diff --git a/README.rst b/README.rst
index ddc4b98..94ac32c 100644
--- a/README.rst
+++ b/README.rst
@@ -47,7 +47,7 @@ Requirements
- Django REST Framework (3.4 - 3.8)
-- Django Filters (1.0)
+- Django Filters (1.0 - 1.1)
Development Installation
------------------------
diff --git a/patchwork/api/filters.py b/patchwork/api/filters.py
index 73353d9..ddf527f 100644
--- a/patchwork/api/filters.py
+++ b/patchwork/api/filters.py
@@ -26,6 +26,7 @@ from django_filters import ModelMultipleChoiceFilter
from django.forms import ModelMultipleChoiceField as BaseMultipleChoiceField
from django.forms.widgets import MultipleHiddenInput
+from patchwork.compat import NAME_FIELD
from patchwork.models import Bundle
from patchwork.models import Check
from patchwork.models import CoverLetter
@@ -151,8 +152,8 @@ class UserFilter(ModelMultipleChoiceFilter):
class TimestampMixin(FilterSet):
# TODO(stephenfin): These should filter on a 'updated_at' field instead
- before = IsoDateTimeFilter(name='date', lookup_expr='lt')
- since = IsoDateTimeFilter(name='date', lookup_expr='gte')
+ before = IsoDateTimeFilter(lookup_expr='lt', **{NAME_FIELD: 'date'})
+ since = IsoDateTimeFilter(lookup_expr='gte', **{NAME_FIELD: 'date'})
class SeriesFilterSet(TimestampMixin, FilterSet):
diff --git a/patchwork/compat.py b/patchwork/compat.py
index 38caa4e..3bbff44 100644
--- a/patchwork/compat.py
+++ b/patchwork/compat.py
@@ -41,6 +41,22 @@ if settings.ENABLE_REST_API:
from rest_framework.filters import DjangoFilterBackend # noqa
+# NAME_FIELD
+#
+# The django-filter library renamed 'Filter.name' to 'Filter.field_name' in
+# 1.1.
+#
+# https://django-filter.readthedocs.io/en/master/guide/migration.html#migrating-to-2-0
+
+if settings.ENABLE_REST_API:
+ import django_filters # noqa
+
+ if django_filters.VERSION >= (1, 1):
+ NAME_FIELD = 'field_name'
+ else:
+ NAME_FIELD = 'name'
+
+
# reverse, reverse_lazy
#
# The reverse and reverse_lazy functions have been moved to django.urls in
diff --git a/releasenotes/notes/django-filter-1-1-6a6b0ab8cbe0faca.yaml b/releasenotes/notes/django-filter-1-1-6a6b0ab8cbe0faca.yaml
new file mode 100644
index 0000000..3beb9c0
--- /dev/null
+++ b/releasenotes/notes/django-filter-1-1-6a6b0ab8cbe0faca.yaml
@@ -0,0 +1,6 @@
+---
+upgrade:
+ - |
+ `django-filter 1.1
+ <https://github.com/carltongibson/django-filter/releases/tag/1.1.0>`_ is
+ now supported.
diff --git a/requirements-dev.txt b/requirements-dev.txt
index b12246d..1d58df7 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -1,4 +1,4 @@
Django>=1.8,<2.0
djangorestframework>=3.4,<3.9
-django-filter>=1.0,<1.1
+django-filter>=1.0,<1.2
-r requirements-test.txt
diff --git a/requirements-prod.txt b/requirements-prod.txt
index 42ff8ec..59e2c1e 100644
--- a/requirements-prod.txt
+++ b/requirements-prod.txt
@@ -1,5 +1,5 @@
Django>=1.8,<2.0
djangorestframework>=3.4,<3.9
-django-filter>=1.0,<1.1
+django-filter>=1.0,<1.2
psycopg2>=2.7,<2.8
sqlparse==0.2.4
diff --git a/tox.ini b/tox.ini
index c1bc64e..9aac824 100644
--- a/tox.ini
+++ b/tox.ini
@@ -13,7 +13,8 @@ deps =
django{18,19}: djangorestframework>=3.4,<3.7
django110: djangorestframework>=3.4,<3.9
django111: djangorestframework>=3.6,<3.9
- django{18,19,110,111}: django-filter>=1.0,<1.1
+ django18: django-filter>=1.0,<1.1
+ django{19,110,111}: django-filter>=1.0,<1.2
setenv =
DJANGO_SETTINGS_MODULE = patchwork.settings.dev
PYTHONDONTWRITEBYTECODE = 1