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.0.*" }
- { python: "3.6", env: DJANGO_VERSION="2.1.*" } - { python: "3.6", env: DJANGO_VERSION="2.1.*" }
- { python: "3.6", env: DJANGO_VERSION="2.2.*" } - { 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.0.*" }
- { python: "3.7", env: DJANGO_VERSION="2.1.*" } - { python: "3.7", env: DJANGO_VERSION="2.1.*" }
- { python: "3.7", env: DJANGO_VERSION="2.2.*" } - { 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: install:
- pip install Django==${DJANGO_VERSION} - pip install Django==${DJANGO_VERSION}

View File

@ -2,8 +2,15 @@
from __future__ import unicode_literals from __future__ import unicode_literals
import django
from django.apps import AppConfig 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): class RangeFilterConfig(AppConfig):

View File

@ -24,10 +24,14 @@ from django.utils.html import format_html
from django.utils import timezone from django.utils import timezone
from django.template.defaultfilters import slugify from django.template.defaultfilters import slugify
from django.templatetags.static import StaticNode from django.templatetags.static import StaticNode
from django.utils.translation import ugettext as _ from django.utils.encoding import force_str
from django.utils.encoding import force_text
from django.contrib.admin.widgets import AdminDateWidget, AdminSplitDateTime as BaseAdminSplitDateTime 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): class AdminSplitDateTime(BaseAdminSplitDateTime):
def format_output(self, rendered_widgets): def format_output(self, rendered_widgets):
@ -63,7 +67,7 @@ class DateRangeFilter(admin.filters.FieldListFilter):
# slugify converts any non-unicode characters to empty characters # slugify converts any non-unicode characters to empty characters
# but system_name is required, if title converts to empty string use id # but system_name is required, if title converts to empty string use id
# https://github.com/silentsokolov/django-admin-rangefilter/issues/18 # 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( 'query_string': cl.get_query_string(
{}, remove=self._get_expected_fields() {}, 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 import ModelAdmin, site
from django.contrib.admin.views.main import ChangeList from django.contrib.admin.views.main import ChangeList
from django.contrib.auth.models import User 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 django.contrib.staticfiles.storage import staticfiles_storage
from .filter import DateRangeFilter, DateTimeRangeFilter from .filter import DateRangeFilter, DateTimeRangeFilter
@ -128,7 +128,7 @@ class DateRangeFilterTestCase(TestCase):
self.assertEqual(list(queryset), [self.djangonaut_book, self.django_book]) self.assertEqual(list(queryset), [self.djangonaut_book, self.django_book])
filterspec = changelist.get_filters(request)[0][0] 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): def test_datefilter_filtered(self):
self.request_factory = RequestFactory() self.request_factory = RequestFactory()
@ -144,7 +144,7 @@ class DateRangeFilterTestCase(TestCase):
self.assertEqual(list(queryset), [self.django_book]) self.assertEqual(list(queryset), [self.django_book])
filterspec = changelist.get_filters(request)[0][0] 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)) choice = select_by(filterspec.choices(changelist))
self.assertEqual(choice['query_string'], '?') self.assertEqual(choice['query_string'], '?')
@ -163,7 +163,7 @@ class DateRangeFilterTestCase(TestCase):
self.assertEqual(list(queryset), [self.django_book]) self.assertEqual(list(queryset), [self.django_book])
filterspec = changelist.get_filters(request)[0][0] 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)) choice = select_by(filterspec.choices(changelist))
self.assertEqual(choice['query_string'], '?') self.assertEqual(choice['query_string'], '?')
@ -183,7 +183,7 @@ class DateRangeFilterTestCase(TestCase):
self.assertEqual(list(queryset), [self.django_book_date]) self.assertEqual(list(queryset), [self.django_book_date])
filterspec = changelist.get_filters(request)[0][0] 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)) choice = select_by(filterspec.choices(changelist))
self.assertEqual(choice['query_string'], '?') self.assertEqual(choice['query_string'], '?')
@ -233,7 +233,7 @@ class DateTimeRangeFilterTestCase(TestCase):
self.assertEqual(list(queryset), [self.djangonaut_book, self.django_book]) self.assertEqual(list(queryset), [self.djangonaut_book, self.django_book])
filterspec = changelist.get_filters(request)[0][0] 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): def test_datetimfilter_filtered(self):
self.request_factory = RequestFactory() self.request_factory = RequestFactory()
@ -251,7 +251,7 @@ class DateTimeRangeFilterTestCase(TestCase):
self.assertEqual(list(queryset), [self.django_book]) self.assertEqual(list(queryset), [self.django_book])
filterspec = changelist.get_filters(request)[0][0] 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)) choice = select_by(filterspec.choices(changelist))
self.assertEqual(choice['query_string'], '?') self.assertEqual(choice['query_string'], '?')
@ -271,7 +271,7 @@ class DateTimeRangeFilterTestCase(TestCase):
self.assertEqual(list(queryset), [self.django_book]) self.assertEqual(list(queryset), [self.django_book])
filterspec = changelist.get_filters(request)[0][0] 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)) choice = select_by(filterspec.choices(changelist))
self.assertEqual(choice['query_string'], '?') self.assertEqual(choice['query_string'], '?')