Compatibility Django 3.0
This commit is contained in:
parent
ae5bdda175
commit
3fa173eb50
|
@ -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}
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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()
|
||||||
)
|
)
|
||||||
|
|
|
@ -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'], '?')
|
||||||
|
|
Loading…
Reference in New Issue