Fixes Django 2.1 breaking changes; QUERY_TERMS & auth_views.login()

This commit is contained in:
Ryan Verner 2018-07-25 16:23:16 +10:00 committed by Matt Westcott
parent 986f03748a
commit a657a75cd7
5 changed files with 39 additions and 2 deletions

View file

@ -29,6 +29,10 @@ matrix:
sudo: true
- env: TOXENV=py35-dj20-sqlite-noelasticsearch
python: 3.5
- env: TOXENV=py35-dj21-sqlite-noelasticsearch
python: 3.5
- env: TOXENV=py35-dj21-mysql-noelasticsearch
python: 3.5
- env: TOXENV=py36-dj111-sqlite-noelasticsearch
python: 3.6
- env: TOXENV=py36-dj111-postgres-noelasticsearch
@ -37,33 +41,52 @@ matrix:
python: 3.6
- env: TOXENV=py36-dj20-postgres-noelasticsearch
python: 3.6
- env: TOXENV=py36-dj21-postgres-noelasticsearch
python: 3.6
- env: TOXENV=py36-dj111-postgres-elasticsearch2 INSTALL_ELASTICSEARCH2=yes
python: 3.6
sudo: true
- env: TOXENV=py36-dj20-sqlite-elasticsearch2 INSTALL_ELASTICSEARCH2=yes
python: 3.6
sudo: true
- env: TOXENV=py36-dj21-sqlite-elasticsearch2 INSTALL_ELASTICSEARCH2=yes
python: 3.6
sudo: true
- env: TOXENV=py36-dj111-postgres-elasticsearch5 INSTALL_ELASTICSEARCH5=yes
python: 3.6
sudo: true
- env: TOXENV=py36-dj20-postgres-elasticsearch5 INSTALL_ELASTICSEARCH5=yes
python: 3.6
sudo: true
- env: TOXENV=py36-dj21-postgres-elasticsearch5 INSTALL_ELASTICSEARCH5=yes
python: 3.6
sudo: true
- env: TOXENV=py36-dj111-postgres-elasticsearch6 INSTALL_ELASTICSEARCH6=yes
python: 3.6
sudo: true
- env: TOXENV=py36-dj20-postgres-elasticsearch6 INSTALL_ELASTICSEARCH6=yes
python: 3.6
sudo: true
- env: TOXENV=py36-dj21-postgres-elasticsearch6 INSTALL_ELASTICSEARCH6=yes
python: 3.6
sudo: true
allow_failures:
# Ignore failures on Elasticsearch tests because ES on Travis is intermittently flaky
- env: TOXENV=py35-dj111-postgres-elasticsearch2 INSTALL_ELASTICSEARCH2=yes
- env: TOXENV=py36-dj111-postgres-elasticsearch2 INSTALL_ELASTICSEARCH2=yes
- env: TOXENV=py36-dj20-sqlite-elasticsearch2 INSTALL_ELASTICSEARCH2=yes
- env: TOXENV=py36-dj21-sqlite-elasticsearch2 INSTALL_ELASTICSEARCH2=yes
- env: TOXENV=py36-dj111-postgres-elasticsearch5 INSTALL_ELASTICSEARCH5=yes
- env: TOXENV=py36-dj20-postgres-elasticsearch5 INSTALL_ELASTICSEARCH5=yes
- env: TOXENV=py36-dj21-postgres-elasticsearch5 INSTALL_ELASTICSEARCH5=yes
- env: TOXENV=py36-dj111-postgres-elasticsearch6 INSTALL_ELASTICSEARCH6=yes
- env: TOXENV=py36-dj20-postgres-elasticsearch6 INSTALL_ELASTICSEARCH6=yes
- env: TOXENV=py36-dj21-postgres-elasticsearch6 INSTALL_ELASTICSEARCH6=yes
# Django 2.1 support is in progress
- env: TOXENV=py35-dj21-sqlite-noelasticsearch
- env: TOXENV=py35-dj21-mysql-noelasticsearch
- env: TOXENV=py36-dj21-postgres-noelasticsearch
# Services
services:

View file

@ -311,6 +311,7 @@ Contributors
* Andrew Crewdson
* Aram Dulyan
* Kevin Howbrook
* Ryan Verner
Translators
===========

View file

@ -43,6 +43,8 @@ deps =
dj111: Django>=1.11b1,<2.0
dj111-mssql: django-pyodbc-azure==1.11.0.0
dj20: Django>=2.0,<2.1
dj21: git+https://github.com/django/django.git@2.1rc1#egg=Django
postgres: psycopg2>=2.6
mysql: mysqlclient==1.3.6
elasticsearch2: elasticsearch>=2,<3

View file

@ -15,7 +15,6 @@ from django.db import models
from django.db.models.constants import LOOKUP_SEP
from django.db.models.fields import FieldDoesNotExist
from django.db.models.fields.related import ForeignObjectRel, ManyToManyField
from django.db.models.sql.constants import QUERY_TERMS
from django.shortcuts import get_object_or_404, redirect
from django.template.defaultfilters import filesizeformat
from django.utils.decorators import method_decorator
@ -34,6 +33,18 @@ from wagtail.admin.edit_handlers import ObjectList, extract_panel_definitions_fr
from .forms import ParentChooserForm
try:
from django.db.models.sql.constants import QUERY_TERMS
except ImportError:
# Django 2.1+ does not have QUERY_TERMS anymore
QUERY_TERMS = {
'contains', 'day', 'endswith', 'exact', 'gt', 'gte', 'hour',
'icontains', 'iendswith', 'iexact', 'in', 'iregex', 'isnull',
'istartswith', 'lt', 'lte', 'minute', 'month', 'range', 'regex',
'search', 'second', 'startswith', 'week_day', 'year',
}
class WMABaseView(TemplateView):
"""
Groups together common functionality for all app views.

View file

@ -25,7 +25,7 @@ WAGTAIL_FRONTEND_LOGIN_TEMPLATE = getattr(
urlpatterns = [
url(r'^_util/authenticate_with_password/(\d+)/(\d+)/$', views.authenticate_with_password,
name='wagtailcore_authenticate_with_password'),
url(r'^_util/login/$', auth_views.login, {'template_name': WAGTAIL_FRONTEND_LOGIN_TEMPLATE},
url(r'^_util/login/$', auth_views.LoginView.as_view(template_name=WAGTAIL_FRONTEND_LOGIN_TEMPLATE),
name='wagtailcore_login'),
# Front-end page views are handled through Wagtail's core.views.serve