diff --git a/suit/templatetags/suit_menu.py b/suit/templatetags/suit_menu.py index 4ac1e639..fdac3fd1 100644 --- a/suit/templatetags/suit_menu.py +++ b/suit/templatetags/suit_menu.py @@ -1,8 +1,13 @@ +import django from django import template from django.contrib import admin from django.contrib.admin import AdminSite from django.http import HttpRequest -from django.core.urlresolvers import reverse, resolve + +try: + from django.urls import reverse, resolve +except: + from django.core.urlresolvers import reverse, resolve try: from django.utils.six import string_types @@ -16,9 +21,12 @@ from suit.config import get_config register = template.Library() +if django.VERSION >= (2, 0, 0, 'final', 0): + simple_tag = register.simple_tag +else: + simple_tag = register.assignment_tag - -@register.assignment_tag(takes_context=True) +@simple_tag(takes_context=True) def get_menu(context, request): """ :type request: HttpRequest diff --git a/suit/templatetags/suit_tags.py b/suit/templatetags/suit_tags.py index 1e0f97fb..d0732a0f 100644 --- a/suit/templatetags/suit_tags.py +++ b/suit/templatetags/suit_tags.py @@ -1,7 +1,13 @@ import itertools + +import django from django import template from django.core.exceptions import ObjectDoesNotExist -from django.core.urlresolvers import NoReverseMatch, reverse + +try: + from django.urls import NoReverseMatch, reverse +except: + from django.core.urlresolvers import NoReverseMatch, reverse from django.db.models import ForeignKey from django.template.defaulttags import NowNode from django.utils.safestring import mark_safe @@ -17,6 +23,10 @@ from django.contrib.admin.util import lookup_field register = template.Library() +if django.VERSION >= (2, 0, 0, 'final', 0): + simple_tag = register.simple_tag +else: + simple_tag = register.assignment_tag @register.filter(name='suit_conf') @@ -81,12 +91,12 @@ def suit_bc(*args): return utils.value_by_version(args) -@register.assignment_tag +@simple_tag def suit_bc_value(*args): return utils.value_by_version(args) -@register.assignment_tag +@simple_tag def admin_extra_filters(cl): """ Return the dict of used filters which is not included in list_filters form """ @@ -95,7 +105,7 @@ def admin_extra_filters(cl): return dict((k, v) for k, v in cl.params.items() if k not in used_parameters) -@register.assignment_tag +@simple_tag def suit_django_version(): return django_version diff --git a/suit/tests/mixins.py b/suit/tests/mixins.py index d3daab6d..5380d078 100644 --- a/suit/tests/mixins.py +++ b/suit/tests/mixins.py @@ -2,7 +2,10 @@ from django.contrib.auth.models import User from django.core.management import CommandError from django.core.management import call_command -from django.core.urlresolvers import reverse +try: + from django.urls import reverse +except: + from django.core.urlresolvers import reverse from django.test import TestCase from random import randint diff --git a/suit/tests/settings.py b/suit/tests/settings.py index 64ce5a6c..1aed44fb 100644 --- a/suit/tests/settings.py +++ b/suit/tests/settings.py @@ -1,4 +1,5 @@ # Django settings for testproject project. +import django DEBUG = True TEMPLATE_DEBUG = DEBUG @@ -27,13 +28,24 @@ 'django.template.loaders.app_directories.Loader', ) -MIDDLEWARE_CLASSES = ( - 'django.middleware.common.CommonMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', -) +if django.VERSION >= (2, 0, 0, 'final', 0): + MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', + ] +else: + MIDDLEWARE_CLASSES = ( + 'django.middleware.common.CommonMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + ) ROOT_URLCONF = 'suit.tests.urls' TEMPLATE_DIRS = () diff --git a/suit/tests/templates/form_tabs.py b/suit/tests/templates/form_tabs.py index 402f98da..a69ce490 100644 --- a/suit/tests/templates/form_tabs.py +++ b/suit/tests/templates/form_tabs.py @@ -1,5 +1,8 @@ from django.contrib import admin -from django.core.urlresolvers import reverse +try: + from django.urls import reverse +except: + from django.core.urlresolvers import reverse from django.utils.translation import ugettext from suit.tests.mixins import ModelsTestCaseMixin, UserTestCaseMixin from suit.tests.models import Book, BookAdmin, test_app_label diff --git a/suit/tests/templatetags/suit_list.py b/suit/tests/templatetags/suit_list.py index 022834c5..53507602 100644 --- a/suit/tests/templatetags/suit_list.py +++ b/suit/tests/templatetags/suit_list.py @@ -1,6 +1,9 @@ from django.contrib.admin import ModelAdmin from django.contrib.admin.templatetags.admin_list import result_list -from django.core.urlresolvers import reverse +try: + from django.urls import reverse +except: + from django.core.urlresolvers import reverse from suit.templatetags.suit_list import paginator_number, paginator_info, \ pagination, suit_list_filter_select, headers_handler, dict_to_attrs, \ result_row_attrs, cells_handler diff --git a/suit/tests/templatetags/suit_menu.py b/suit/tests/templatetags/suit_menu.py index 3980786e..b5127202 100644 --- a/suit/tests/templatetags/suit_menu.py +++ b/suit/tests/templatetags/suit_menu.py @@ -1,6 +1,9 @@ from django.conf import settings from django.contrib.auth.models import Permission -from django.core.urlresolvers import reverse +try: + from django.urls import reverse +except: + from django.core.urlresolvers import reverse from suit.templatetags.suit_menu import get_menu from suit.tests.mixins import ModelsTestCaseMixin, UserTestCaseMixin from suit.tests.models import test_app_label diff --git a/suit/tests/templatetags/suit_tags.py b/suit/tests/templatetags/suit_tags.py index ba4958a3..737b79b2 100644 --- a/suit/tests/templatetags/suit_tags.py +++ b/suit/tests/templatetags/suit_tags.py @@ -21,7 +21,7 @@ def __str__(self): @python_2_unicode_compatible class City(models.Model): name = models.CharField(max_length=64) - country = models.ForeignKey(Country) + country = models.ForeignKey(Country, on_delete=models.CASCADE) def __str__(self): return self.name diff --git a/suit/tests/urls/__init__.py b/suit/tests/urls/__init__.py index ea0bd61d..7fbf8221 100644 --- a/suit/tests/urls/__init__.py +++ b/suit/tests/urls/__init__.py @@ -12,5 +12,5 @@ ) except ImportError: # Django 1.10+ urlpatterns = [ - url(r'^admin/', include(admin.site.urls)), + url(r'^admin/', admin.site.urls), ] diff --git a/suit/tests/widgets.py b/suit/tests/widgets.py index 40f1a5a2..b5c9271c 100644 --- a/suit/tests/widgets.py +++ b/suit/tests/widgets.py @@ -4,7 +4,7 @@ AutosizedTextarea from django.utils.translation import ugettext as _ from django.contrib.admin.templatetags.admin_static import static - +import django class WidgetsTestCase(TestCase): def test_NumberInput(self): @@ -69,10 +69,16 @@ def test_SuitDateWidget_with_existing_placeholder_attr(self): self.assertEqual('p', sdw.attrs['placeholder']) def get_SuitDateWidget_output(self): - return '