From 3fa173eb5096c2597c3ea1615dd0ac0d9255474a Mon Sep 17 00:00:00 2001 From: Dmitriy Sokolov Date: Wed, 4 Dec 2019 11:55:54 +0300 Subject: [PATCH] Compatibility Django 3.0 --- .travis.yml | 5 +++++ rangefilter/apps.py | 9 ++++++++- rangefilter/filter.py | 10 +++++++--- rangefilter/tests.py | 16 ++++++++-------- 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index 5494968..9fe501e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,10 +23,15 @@ matrix: - { python: "3.6", env: DJANGO_VERSION="2.0.*" } - { python: "3.6", env: DJANGO_VERSION="2.1.*" } - { python: "3.6", env: DJANGO_VERSION="2.2.*" } + - { python: "3.6", env: DJANGO_VERSION="3.0.*" } - { python: "3.7", env: DJANGO_VERSION="2.0.*" } - { python: "3.7", env: DJANGO_VERSION="2.1.*" } - { python: "3.7", env: DJANGO_VERSION="2.2.*" } + - { python: "3.7", env: DJANGO_VERSION="3.0.*" } + + - { python: "3.8", env: DJANGO_VERSION="2.2.*" } + - { python: "3.8", env: DJANGO_VERSION="3.0.*" } install: - pip install Django==${DJANGO_VERSION} diff --git a/rangefilter/apps.py b/rangefilter/apps.py index 0d31e32..281187d 100644 --- a/rangefilter/apps.py +++ b/rangefilter/apps.py @@ -2,8 +2,15 @@ from __future__ import unicode_literals +import django + from django.apps import AppConfig -from django.utils.translation import ugettext_lazy as _ + +if django.VERSION >= (2, 0, 0): + from django.utils.translation import gettext_lazy as _ +else: + from django.utils.translation import ugettext_lazy as _ + class RangeFilterConfig(AppConfig): diff --git a/rangefilter/filter.py b/rangefilter/filter.py index db37f28..415e4db 100644 --- a/rangefilter/filter.py +++ b/rangefilter/filter.py @@ -24,10 +24,14 @@ from django.utils.html import format_html from django.utils import timezone from django.template.defaultfilters import slugify from django.templatetags.static import StaticNode -from django.utils.translation import ugettext as _ -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.contrib.admin.widgets import AdminDateWidget, AdminSplitDateTime as BaseAdminSplitDateTime +if django.VERSION >= (2, 0, 0): + from django.utils.translation import gettext_lazy as _ +else: + from django.utils.translation import ugettext_lazy as _ + class AdminSplitDateTime(BaseAdminSplitDateTime): def format_output(self, rendered_widgets): @@ -63,7 +67,7 @@ class DateRangeFilter(admin.filters.FieldListFilter): # slugify converts any non-unicode characters to empty characters # but system_name is required, if title converts to empty string use id # https://github.com/silentsokolov/django-admin-rangefilter/issues/18 - 'system_name': force_text(slugify(self.title) if slugify(self.title) else id(self.title)), + 'system_name': force_str(slugify(self.title) if slugify(self.title) else id(self.title)), 'query_string': cl.get_query_string( {}, remove=self._get_expected_fields() ) diff --git a/rangefilter/tests.py b/rangefilter/tests.py index c817de6..ead904c 100644 --- a/rangefilter/tests.py +++ b/rangefilter/tests.py @@ -18,7 +18,7 @@ from django.db import models from django.contrib.admin import ModelAdmin, site from django.contrib.admin.views.main import ChangeList from django.contrib.auth.models import User -from django.utils.encoding import force_text +from django.utils.encoding import force_str from django.contrib.staticfiles.storage import staticfiles_storage from .filter import DateRangeFilter, DateTimeRangeFilter @@ -128,7 +128,7 @@ class DateRangeFilterTestCase(TestCase): self.assertEqual(list(queryset), [self.djangonaut_book, self.django_book]) filterspec = changelist.get_filters(request)[0][0] - self.assertEqual(force_text(filterspec.title), 'created at') + self.assertEqual(force_str(filterspec.title), 'created at') def test_datefilter_filtered(self): self.request_factory = RequestFactory() @@ -144,7 +144,7 @@ class DateRangeFilterTestCase(TestCase): self.assertEqual(list(queryset), [self.django_book]) filterspec = changelist.get_filters(request)[0][0] - self.assertEqual(force_text(filterspec.title), 'created at') + self.assertEqual(force_str(filterspec.title), 'created at') choice = select_by(filterspec.choices(changelist)) self.assertEqual(choice['query_string'], '?') @@ -163,7 +163,7 @@ class DateRangeFilterTestCase(TestCase): self.assertEqual(list(queryset), [self.django_book]) filterspec = changelist.get_filters(request)[0][0] - self.assertEqual(force_text(filterspec.title), 'created at') + self.assertEqual(force_str(filterspec.title), 'created at') choice = select_by(filterspec.choices(changelist)) self.assertEqual(choice['query_string'], '?') @@ -183,7 +183,7 @@ class DateRangeFilterTestCase(TestCase): self.assertEqual(list(queryset), [self.django_book_date]) filterspec = changelist.get_filters(request)[0][0] - self.assertEqual(force_text(filterspec.title), 'created at') + self.assertEqual(force_str(filterspec.title), 'created at') choice = select_by(filterspec.choices(changelist)) self.assertEqual(choice['query_string'], '?') @@ -233,7 +233,7 @@ class DateTimeRangeFilterTestCase(TestCase): self.assertEqual(list(queryset), [self.djangonaut_book, self.django_book]) filterspec = changelist.get_filters(request)[0][0] - self.assertEqual(force_text(filterspec.title), 'created at') + self.assertEqual(force_str(filterspec.title), 'created at') def test_datetimfilter_filtered(self): self.request_factory = RequestFactory() @@ -251,7 +251,7 @@ class DateTimeRangeFilterTestCase(TestCase): self.assertEqual(list(queryset), [self.django_book]) filterspec = changelist.get_filters(request)[0][0] - self.assertEqual(force_text(filterspec.title), 'created at') + self.assertEqual(force_str(filterspec.title), 'created at') choice = select_by(filterspec.choices(changelist)) self.assertEqual(choice['query_string'], '?') @@ -271,7 +271,7 @@ class DateTimeRangeFilterTestCase(TestCase): self.assertEqual(list(queryset), [self.django_book]) filterspec = changelist.get_filters(request)[0][0] - self.assertEqual(force_text(filterspec.title), 'created at') + self.assertEqual(force_str(filterspec.title), 'created at') choice = select_by(filterspec.choices(changelist)) self.assertEqual(choice['query_string'], '?')