Compatibility Django 3.0

This commit is contained in:
Dmitriy Sokolov 2019-12-04 11:55:54 +03:00
parent ae5bdda175
commit 3fa173eb50
No known key found for this signature in database
GPG Key ID: 03FE88EBBCB36640
4 changed files with 28 additions and 12 deletions

View File

@ -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}

View File

@ -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):

View File

@ -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()
)

View File

@ -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'], '?')