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 adb5502..4ede4ed 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,14 @@ from __future__ import unicode_literals from django.db import migrations -import wagtail.core.fields +from wagtail import VERSION as WAGTAIL_VERSION + +if WAGTAIL_VERSION >= (3, 0): + import wagtail.fields as wagtail_fields + import wagtail.blocks as wagtail_blocks +else: + import wagtail.core.fields as wagtail_fields + import wagtail.core.blocks as wagtail_blocks import wagtail_personalisation @@ -17,14 +24,20 @@ class Migration(migrations.Migration): migrations.AddField( model_name='homepage', name='intro', - field=wagtail.core.fields.RichTextField( + field=wagtail_fields.RichTextField( default='
Thank you for trying Wagxperience!
'), preserve_default=False, ), migrations.AddField( model_name='homepage', name='body', - 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=''), + field=wagtail_fields.StreamField((('personalisable_paragraph', wagtail_blocks.StructBlock((('segment', wagtail_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_blocks.RichTextBlock())), icon='pilcrow')),), default='', use_json_field=True), preserve_default=False, - ), + ) if WAGTAIL_VERSION >= (3, 0) else migrations.AddField( + model_name='homepage', + name='body', + field=wagtail_fields.StreamField((('personalisable_paragraph', wagtail_blocks.StructBlock((('segment', wagtail_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_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 fbd05b0..2310049 100644 --- a/sandbox/sandbox/apps/home/models.py +++ b/sandbox/sandbox/apps/home/models.py @@ -1,9 +1,16 @@ from __future__ import absolute_import, unicode_literals +from wagtail import VERSION as WAGTAIL_VERSION -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 +if WAGTAIL_VERSION >= (3, 0): + from wagtail.admin.panels import FieldPanel + from wagtail import blocks + from wagtail.fields import RichTextField, StreamField + from wagtail.models import Page +else: + 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 @@ -11,13 +18,20 @@ from wagtail_personalisation.blocks import PersonalisedStructBlock class HomePage(PersonalisablePageMixin, Page): intro = RichTextField() - body = StreamField([ - ('personalisable_paragraph', PersonalisedStructBlock([ - ('paragraph', blocks.RichTextBlock()), - ], icon='pilcrow')) - ]) + if WAGTAIL_VERSION >= (3, 0): + body = StreamField([ + ('personalisable_paragraph', PersonalisedStructBlock([ + ('paragraph', blocks.RichTextBlock()), + ], icon='pilcrow')) + ], use_json_field=True) + else: + body = StreamField([ + ('personalisable_paragraph', PersonalisedStructBlock([ + ('paragraph', blocks.RichTextBlock()), + ], icon='pilcrow')) + ]) content_panels = Page.content_panels + [ - RichTextFieldPanel('intro'), - StreamFieldPanel('body'), + FieldPanel('intro') if WAGTAIL_VERSION >= (3, 0) else RichTextFieldPanel('intro'), + FieldPanel('body') if WAGTAIL_VERSION >= (3, 0) else StreamFieldPanel('body'), ] diff --git a/sandbox/sandbox/apps/search/views.py b/sandbox/sandbox/apps/search/views.py index 78b1631..09076e1 100644 --- a/sandbox/sandbox/apps/search/views.py +++ b/sandbox/sandbox/apps/search/views.py @@ -2,8 +2,13 @@ from __future__ import absolute_import, unicode_literals from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator from django.shortcuts import render +from wagtail import VERSION as WAGTAIL_VERSION -from wagtail.core.models import Page +if WAGTAIL_VERSION >= (3, 0): + from wagtail.models import Page +else: + from wagtail.core.models import Page + from wagtail.search.models import Query diff --git a/sandbox/sandbox/settings.py b/sandbox/sandbox/settings.py index 306dde4..bac35c3 100644 --- a/sandbox/sandbox/settings.py +++ b/sandbox/sandbox/settings.py @@ -15,6 +15,7 @@ from __future__ import absolute_import, unicode_literals # Build paths inside the project like this: os.path.join(BASE_DIR, ...) import os from importlib.util import find_spec +from wagtail import VERSION as WAGTAIL_VERSION PROJECT_DIR = os.path.dirname(os.path.abspath(__file__)) BASE_DIR = os.path.dirname(PROJECT_DIR) @@ -53,7 +54,7 @@ INSTALLED_APPS = [ 'wagtail.images', 'wagtail.search', 'wagtail.admin', - 'wagtail.core', + 'wagtail' if WAGTAIL_VERSION >= (3, 0) else 'wagtail.core', 'wagtail.contrib.modeladmin', 'wagtailfontawesome', @@ -85,7 +86,7 @@ MIDDLEWARE = [ if find_spec('wagtail.contrib.legacy'): MIDDLEWARE += ('wagtail.contrib.legacy.sitemiddleware.SiteMiddleware',) else: - MIDDLEWARE += ('wagtail.core.middleware.SiteMiddleware', ) + MIDDLEWARE += ('wagtail.middleware.SiteMiddleware', ) ROOT_URLCONF = 'sandbox.urls' diff --git a/sandbox/sandbox/urls.py b/sandbox/sandbox/urls.py index 86561a2..4b69f42 100644 --- a/sandbox/sandbox/urls.py +++ b/sandbox/sandbox/urls.py @@ -5,7 +5,13 @@ from django.conf import settings from django.conf.urls import include, url from django.contrib import admin from wagtail.admin import urls as wagtailadmin_urls -from wagtail.core import urls as wagtail_urls +from wagtail import VERSION as WAGTAIL_VERSION + +if WAGTAIL_VERSION >= (3, 0): + from wagtail import urls as wagtail_urls +else: + 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