diff --git a/sandbox/exampledata/personalisation.json b/sandbox/exampledata/personalisation.json index 93205e5..e340a0f 100644 --- a/sandbox/exampledata/personalisation.json +++ b/sandbox/exampledata/personalisation.json @@ -74,7 +74,7 @@ "body": "[]" } }, { - "model": "wagtailcore.page", + "model": "wagtail.core.page", "pk": 1, "fields": { "path": "0001", diff --git a/sandbox/requirements.txt b/sandbox/requirements.txt index 7a13411..bbaa0f6 100644 --- a/sandbox/requirements.txt +++ b/sandbox/requirements.txt @@ -1,4 +1,4 @@ -Django>=1.11,<1.12 -wagtail>=1.10,<1.11 -django-debug-toolbar==1.8 +Django>=2.0,<2.1 +wagtail>=2.0,<2.1 +django-debug-toolbar==1.9.1 -e .[docs,test] diff --git a/sandbox/sandbox/apps/home/migrations/0003_homepage_text_content.py b/sandbox/sandbox/apps/home/migrations/0003_homepage_text_content.py index d4108b9..adb5502 100644 --- a/sandbox/sandbox/apps/home/migrations/0003_homepage_text_content.py +++ b/sandbox/sandbox/apps/home/migrations/0003_homepage_text_content.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals from django.db import migrations -import wagtail.wagtailcore.fields +import wagtail.core.fields import wagtail_personalisation @@ -17,14 +17,14 @@ class Migration(migrations.Migration): migrations.AddField( model_name='homepage', name='intro', - field=wagtail.wagtailcore.fields.RichTextField( + field=wagtail.core.fields.RichTextField( default='
Thank you for trying Wagxperience!
'), preserve_default=False, ), migrations.AddField( model_name='homepage', name='body', - field=wagtail.wagtailcore.fields.StreamField((('personalisable_paragraph', wagtail.wagtailcore.blocks.StructBlock((('segment', wagtail.wagtailcore.blocks.ChoiceBlock(choices=wagtail_personalisation.blocks.list_segment_choices, help_text='Only show this content block for users in this segment', label='Personalisation segment', required=False)), ('paragraph', wagtail.wagtailcore.blocks.RichTextBlock())), icon='pilcrow')),), default=''), + field=wagtail.core.fields.StreamField((('personalisable_paragraph', wagtail.core.blocks.StructBlock((('segment', wagtail.core.blocks.ChoiceBlock(choices=wagtail_personalisation.blocks.list_segment_choices, help_text='Only show this content block for users in this segment', label='Personalisation segment', required=False)), ('paragraph', wagtail.core.blocks.RichTextBlock())), icon='pilcrow')),), default=''), preserve_default=False, ), ] diff --git a/sandbox/sandbox/apps/home/models.py b/sandbox/sandbox/apps/home/models.py index 0d409fe..fbd05b0 100644 --- a/sandbox/sandbox/apps/home/models.py +++ b/sandbox/sandbox/apps/home/models.py @@ -1,9 +1,9 @@ from __future__ import absolute_import, unicode_literals -from wagtail.wagtailadmin.edit_handlers import RichTextFieldPanel, StreamFieldPanel -from wagtail.wagtailcore import blocks -from wagtail.wagtailcore.fields import RichTextField, StreamField -from wagtail.wagtailcore.models import Page +from wagtail.admin.edit_handlers import RichTextFieldPanel, StreamFieldPanel +from wagtail.core import blocks +from wagtail.core.fields import RichTextField, StreamField +from wagtail.core.models import Page from wagtail_personalisation.models import PersonalisablePageMixin from wagtail_personalisation.blocks import PersonalisedStructBlock diff --git a/sandbox/sandbox/apps/search/views.py b/sandbox/sandbox/apps/search/views.py index e17a1e9..78b1631 100644 --- a/sandbox/sandbox/apps/search/views.py +++ b/sandbox/sandbox/apps/search/views.py @@ -3,8 +3,8 @@ from __future__ import absolute_import, unicode_literals from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator from django.shortcuts import render -from wagtail.wagtailcore.models import Page -from wagtail.wagtailsearch.models import Query +from wagtail.core.models import Page +from wagtail.search.models import Query def search(request): diff --git a/sandbox/sandbox/settings.py b/sandbox/sandbox/settings.py index ac25145..b414dc0 100644 --- a/sandbox/sandbox/settings.py +++ b/sandbox/sandbox/settings.py @@ -33,17 +33,25 @@ EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' # Application definition INSTALLED_APPS = [ - 'wagtail.wagtailforms', - 'wagtail.wagtailredirects', - 'wagtail.wagtailembeds', - 'wagtail.wagtailsites', - 'wagtail.wagtailusers', - 'wagtail.wagtailsnippets', - 'wagtail.wagtaildocs', - 'wagtail.wagtailimages', - 'wagtail.wagtailsearch', - 'wagtail.wagtailadmin', - 'wagtail.wagtailcore', + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.messages', + 'django.contrib.sessions', + 'django.contrib.sites', + 'django.contrib.staticfiles', + + 'wagtail.contrib.forms', + 'wagtail.contrib.redirects', + 'wagtail.embeds', + 'wagtail.sites', + 'wagtail.users', + 'wagtail.snippets', + 'wagtail.documents', + 'wagtail.images', + 'wagtail.search', + 'wagtail.admin', + 'wagtail.core', 'wagtail.contrib.modeladmin', 'wagtailfontawesome', @@ -51,13 +59,6 @@ INSTALLED_APPS = [ 'taggit', 'debug_toolbar', - 'django.contrib.admin', - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.messages', - 'django.contrib.staticfiles', - 'wagtail_personalisation', 'sandbox.apps.home', @@ -68,17 +69,17 @@ INSTALLED_APPS = [ MIDDLEWARE = [ 'debug_toolbar.middleware.DebugToolbarMiddleware', + 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.http.ConditionalGetMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', - 'django.middleware.security.SecurityMiddleware', - 'wagtail.wagtailcore.middleware.SiteMiddleware', - 'wagtail.wagtailredirects.middleware.RedirectMiddleware', + 'wagtail.core.middleware.SiteMiddleware', + 'wagtail.contrib.redirects.middleware.RedirectMiddleware', ] ROOT_URLCONF = 'sandbox.urls' diff --git a/sandbox/sandbox/urls.py b/sandbox/sandbox/urls.py index 383a8e6..e48ffaa 100644 --- a/sandbox/sandbox/urls.py +++ b/sandbox/sandbox/urls.py @@ -4,14 +4,14 @@ import debug_toolbar from django.conf import settings from django.conf.urls import include, url from django.contrib import admin -from wagtail.wagtailadmin import urls as wagtailadmin_urls -from wagtail.wagtailcore import urls as wagtail_urls -from wagtail.wagtaildocs import urls as wagtaildocs_urls +from wagtail.admin import urls as wagtailadmin_urls +from wagtail.core import urls as wagtail_urls +from wagtail.documents import urls as wagtaildocs_urls from sandbox.apps.search import views as search_views urlpatterns = [ - url(r'^admin/', include(admin.site.urls)), + url(r'^admin/', admin.site.urls), url(r'^cms/', include(wagtailadmin_urls)), url(r'^documents/', include(wagtaildocs_urls)), diff --git a/setup.py b/setup.py index b15f048..e5af273 100644 --- a/setup.py +++ b/setup.py @@ -3,9 +3,9 @@ from setuptools import find_packages, setup install_requires = [ - 'wagtail>=1.9,<1.11', + 'wagtail>=2.0,<2.1', 'user-agents>=1.0.1', - 'wagtailfontawesome>=1.0.6', + 'wagtailfontawesome>=1.1.3', ] tests_require = [ @@ -15,11 +15,11 @@ tests_require = [ 'flake8-imports', 'flake8', 'freezegun==0.3.8', - 'pytest-cov==2.4.0', + 'pytest-cov==2.5.1', 'pytest-django==3.1.2', 'pytest-pythonpath==0.7.2', - 'pytest-sugar==0.7.1', - 'pytest==3.1.0', + 'pytest-sugar==0.9.1', + 'pytest==3.4.2', 'wagtail_factories==0.3.0', ] diff --git a/src/wagtail_personalisation/blocks.py b/src/wagtail_personalisation/blocks.py index fd6d35d..3d74f93 100644 --- a/src/wagtail_personalisation/blocks.py +++ b/src/wagtail_personalisation/blocks.py @@ -1,7 +1,7 @@ from __future__ import absolute_import, unicode_literals from django.utils.translation import ugettext_lazy as _ -from wagtail.wagtailcore import blocks +from wagtail.core import blocks from wagtail_personalisation.adapters import get_segment_adapter from wagtail_personalisation.models import Segment diff --git a/src/wagtail_personalisation/models.py b/src/wagtail_personalisation/models.py index 82719d7..e6e87d8 100644 --- a/src/wagtail_personalisation/models.py +++ b/src/wagtail_personalisation/models.py @@ -6,9 +6,9 @@ from django.utils.encoding import python_2_unicode_compatible from django.utils.functional import cached_property from django.utils.translation import ugettext_lazy as _ from modelcluster.models import ClusterableModel -from wagtail.wagtailadmin.edit_handlers import ( +from wagtail.admin.edit_handlers import ( FieldPanel, FieldRowPanel, InlinePanel, MultiFieldPanel) -from wagtail.wagtailcore.models import Page +from wagtail.core.models import Page from wagtail_personalisation.rules import AbstractBaseRule from wagtail_personalisation.utils import count_active_days @@ -119,10 +119,13 @@ class PersonalisablePageMetadata(ClusterableModel): ) variant = models.OneToOneField( - Page, related_name='_personalisable_page_metadata') + Page, related_name='_personalisable_page_metadata', + on_delete=models.CASCADE) segment = models.ForeignKey( - Segment, related_name='page_metadata', null=True, blank=True) + Segment, related_name='page_metadata', + on_delete=models.SET_NULL, + null=True, blank=True) @cached_property def has_variants(self): diff --git a/src/wagtail_personalisation/rules.py b/src/wagtail_personalisation/rules.py index 5d5b94e..223f17c 100644 --- a/src/wagtail_personalisation/rules.py +++ b/src/wagtail_personalisation/rules.py @@ -10,7 +10,7 @@ from django.utils.encoding import force_text, python_2_unicode_compatible from django.utils.translation import ugettext_lazy as _ from modelcluster.fields import ParentalKey from user_agents import parse -from wagtail.wagtailadmin.edit_handlers import ( +from wagtail.admin.edit_handlers import ( FieldPanel, FieldRowPanel, PageChooserPanel) diff --git a/src/wagtail_personalisation/views.py b/src/wagtail_personalisation/views.py index 30ee913..1dfce6e 100644 --- a/src/wagtail_personalisation/views.py +++ b/src/wagtail_personalisation/views.py @@ -1,13 +1,13 @@ from __future__ import absolute_import, unicode_literals from django import forms -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import HttpResponseForbidden, HttpResponseRedirect from django.shortcuts import get_object_or_404 from django.utils.translation import ugettext_lazy as _ from wagtail.contrib.modeladmin.options import ModelAdmin, modeladmin_register from wagtail.contrib.modeladmin.views import IndexView -from wagtail.wagtailcore.models import Page +from wagtail.core.models import Page from wagtail_personalisation.models import Segment diff --git a/src/wagtail_personalisation/wagtail_hooks.py b/src/wagtail_personalisation/wagtail_hooks.py index 55ddd42..0f81b28 100644 --- a/src/wagtail_personalisation/wagtail_hooks.py +++ b/src/wagtail_personalisation/wagtail_hooks.py @@ -3,14 +3,14 @@ from __future__ import absolute_import, unicode_literals import logging from django.conf.urls import include, url -from django.core.urlresolvers import reverse +from django.urls import reverse from django.template.defaultfilters import pluralize from django.utils.safestring import mark_safe from django.utils.translation import ugettext_lazy as _ -from wagtail.wagtailadmin.site_summary import SummaryItem, PagesSummaryItem -from wagtail.wagtailadmin.widgets import Button, ButtonWithDropdownFromHook -from wagtail.wagtailcore import hooks -from wagtail.wagtailcore.models import Page +from wagtail.admin.site_summary import SummaryItem, PagesSummaryItem +from wagtail.admin.widgets import Button, ButtonWithDropdownFromHook +from wagtail.core import hooks +from wagtail.core.models import Page from wagtail_personalisation import admin_urls, models, utils from wagtail_personalisation.adapters import get_segment_adapter @@ -23,9 +23,7 @@ def register_admin_urls(): """Adds the administration urls for the personalisation apps.""" return [ url(r'^personalisation/', include( - admin_urls, - app_name='wagtail_personalisation', - namespace='wagtail_personalisation')), + admin_urls, namespace='wagtail_personalisation')), ] @@ -35,7 +33,7 @@ def set_visit_count(page, request, serve_args, serve_kwargs): to a segment. :param page: The page being served - :type page: wagtail.wagtailcore.models.Page + :type page: wagtail.core.models.Page :param request: The http request :type request: django.http.HttpRequest @@ -49,7 +47,7 @@ def segment_user(page, request, serve_args, serve_kwargs): """Apply a segment to a visitor before serving the page. :param page: The page being served - :type page: wagtail.wagtailcore.models.Page + :type page: wagtail.core.models.Page :param request: The http request :type request: django.http.HttpRequest @@ -63,12 +61,12 @@ def serve_variant(page, request, serve_args, serve_kwargs): """Apply a segment to a visitor before serving the page. :param page: The page being served - :type page: wagtail.wagtailcore.models.Page + :type page: wagtail.core.models.Page :param request: The http request :type request: django.http.HttpRequest :returns: A variant if one is available for the visitor's segment, otherwise the original page - :rtype: wagtail.wagtailcore.models.Page + :rtype: wagtail.core.models.Page """ user_segments = []