diff --git a/.travis.yml b/.travis.yml index f350274..da8e9ba 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,6 +16,7 @@ env: - DJANGO="Django==1.6.4" - DJANGO="Django==1.7.11" - DJANGO="Django==1.8.11" + - DJANGO="Django==1.9.4" matrix: exclude: # Python 2.6 support has been dropped in Django 1.7 @@ -25,3 +26,5 @@ matrix: env: DJANGO="Django==1.4.12" - python: "2.6" env: DJANGO="Django==1.8.11" + - python: "2.6" + env: DJANGO="Django==1.9.4" diff --git a/runtests.py b/runtests.py index f4f8726..529fedf 100755 --- a/runtests.py +++ b/runtests.py @@ -36,11 +36,6 @@ if not settings.configured: ) -# Django 1.7 compatibility: -if hasattr(django, 'setup'): - django.setup() - - import logging logging.basicConfig( level = logging.DEBUG, diff --git a/tos/compat.py b/tos/compat.py index 11855c9..72f42f1 100644 --- a/tos/compat.py +++ b/tos/compat.py @@ -5,15 +5,35 @@ from django.conf import settings def get_fk_user_model(): if django.VERSION >= (1, 5): return settings.AUTH_USER_MODEL - else: - from django.contrib.auth.models import User - return User + from django.contrib.auth.models import User + return User def get_runtime_user_model(): if django.VERSION >= (1, 5): from django.contrib.auth import get_user_model return get_user_model() + from django.contrib.auth.models import User + return User + + +def get_request_site(): + if django.VERSION >= (1, 9): + from django.contrib.sites.requests import RequestSite else: - from django.contrib.auth.models import User - return User + from django.contrib.sites.models import RequestSite + return RequestSite + + +def get_library(): + if django.VERSION >= (1, 9): + from django.template.library import Library + else: + from django.template.base import Library + return Library + + +if django.VERSION < (1, 5): + from django.templatetags.future import url +else: + from django.template.defaulttags import url diff --git a/tos/templates/tos/tos_check.html b/tos/templates/tos/tos_check.html index ae6ace6..cf0163a 100644 --- a/tos/templates/tos/tos_check.html +++ b/tos/templates/tos/tos_check.html @@ -1,4 +1,4 @@ -{% load url from future %} +{% load url from compat %} {% if note %}

{{ note }} {% else %} diff --git a/tos/templatetags/__init__.py b/tos/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tos/templatetags/compat.py b/tos/templatetags/compat.py new file mode 100644 index 0000000..9e0499d --- /dev/null +++ b/tos/templatetags/compat.py @@ -0,0 +1,10 @@ +from tos.compat import url as tos_url, get_library + + +Library = get_library() +register = Library() + + +@register.tag +def url(parser, token): + return tos_url(parser, token) diff --git a/tos/tests/__init__.py b/tos/tests/__init__.py index 027f01a..80ca9a7 100644 --- a/tos/tests/__init__.py +++ b/tos/tests/__init__.py @@ -1,2 +1,5 @@ -from tos.tests.test_models import * -from tos.tests.test_views import * \ No newline at end of file +import django + +if django.VERSION < (1, 6): + from tos.tests.test_models import * + from tos.tests.test_views import * diff --git a/tos/views.py b/tos/views.py index bcf7b19..3846196 100644 --- a/tos/views.py +++ b/tos/views.py @@ -5,7 +5,7 @@ from django.contrib import messages from django.contrib.auth import login as auth_login from django.contrib.auth import REDIRECT_FIELD_NAME from django.contrib.auth.forms import AuthenticationForm -from django.contrib.sites.models import Site, RequestSite +from django.contrib.sites.models import Site from django.http import HttpResponseRedirect from django.shortcuts import render_to_response from django.template import RequestContext @@ -13,7 +13,7 @@ from django.views.decorators.cache import never_cache from django.views.decorators.csrf import csrf_protect from django.utils.translation import ugettext_lazy as _ -from tos.compat import get_runtime_user_model +from tos.compat import get_runtime_user_model, get_request_site from tos.models import has_user_agreed_latest_tos, TermsOfService, UserAgreement @@ -47,7 +47,7 @@ def _redirect_to(redirect_to): def check_tos(request, template_name='tos/tos_check.html', redirect_field_name=REDIRECT_FIELD_NAME,): - redirect_to = _redirect_to(request.REQUEST.get(redirect_field_name, '')) + redirect_to = _redirect_to(request.POST.get(redirect_field_name, request.GET.get(redirect_field_name, ''))) tos = TermsOfService.objects.get_current_tos() if request.method == "POST": if request.POST.get("accept", "") == "accept": @@ -83,7 +83,7 @@ def login(request, template_name='registration/login.html', authentication_form=AuthenticationForm): """Displays the login form and handles the login action.""" - redirect_to = request.REQUEST.get(redirect_field_name, '') + redirect_to = request.POST.get(redirect_field_name, request.GET.get(redirect_field_name, '')) if request.method == "POST": form = authentication_form(data=request.POST) @@ -128,7 +128,7 @@ def login(request, template_name='registration/login.html', if Site._meta.installed: current_site = Site.objects.get_current() else: - current_site = RequestSite(request) + current_site = get_request_site()(request) return render_to_response(template_name, { 'form': form,