7

Make compatible with latest Wagtail version (2.11.2)

This commit is contained in:
Marcel Hekking
2020-11-24 09:05:20 +01:00
parent 137b5b411c
commit f3e403bec6
8 changed files with 48 additions and 10 deletions

View File

@ -79,7 +79,7 @@ MIDDLEWARE = [
'django.contrib.messages.middleware.MessageMiddleware', 'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware',
'wagtail.core.middleware.SiteMiddleware', 'tail.contrib.legacy.sitemiddleware.SiteMiddleware',
'wagtail.contrib.redirects.middleware.RedirectMiddleware', 'wagtail.contrib.redirects.middleware.RedirectMiddleware',
] ]
@ -162,3 +162,12 @@ BASE_URL = 'http://example.com'
INTERNAL_IPS = ['127.0.0.1'] INTERNAL_IPS = ['127.0.0.1']
# Wagtail
WAGTAIL_I18N_ENABLED = True
WAGTAIL_CONTENT_LANGUAGES = LANGUAGES = [
("en", "English"),
("nl", "Dutch"),
]

View File

@ -1,19 +1,20 @@
from datetime import datetime from datetime import datetime
import functools
from importlib import import_module from importlib import import_module
from django.conf import settings from django.conf import settings
from django.contrib.auth import get_user_model from django.contrib.auth import get_user_model
from django.contrib.auth.models import AnonymousUser from django.contrib.auth.models import AnonymousUser
from django.contrib.staticfiles.templatetags.staticfiles import static from django.templatetags.static import static
from django.test.client import RequestFactory from django.test.client import RequestFactory
from django.utils.lru_cache import lru_cache # from django.utils.lru_cache import lru_cache
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from wagtail.admin.forms import WagtailAdminModelForm from wagtail.admin.forms import WagtailAdminModelForm
SessionStore = import_module(settings.SESSION_ENGINE).SessionStore SessionStore = import_module(settings.SESSION_ENGINE).SessionStore
@lru_cache(maxsize=1000) @functools.lru_cache(maxsize=1000)
def user_from_data(user_id): def user_from_data(user_id):
User = get_user_model() User = get_user_model()
try: try:

View File

@ -11,7 +11,7 @@ from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from wagtail.admin import messages from wagtail.admin import messages
from wagtail.admin.site_summary import PagesSummaryItem, SummaryItem from wagtail.admin.site_summary import PagesSummaryItem, SummaryItem
from wagtail.admin.views.pages import get_valid_next_url_from_request from wagtail.admin.views.pages.utils import get_valid_next_url_from_request
from wagtail.admin.widgets import Button, ButtonWithDropdownFromHook from wagtail.admin.widgets import Button, ButtonWithDropdownFromHook
from wagtail.core import hooks from wagtail.core import hooks
from wagtail.core.models import Page from wagtail.core.models import Page

View File

@ -2,12 +2,19 @@ from __future__ import absolute_import, unicode_literals
import factory import factory
from django.utils.text import slugify from django.utils.text import slugify
from wagtail.core.models import Locale
from wagtail_factories.factories import PageFactory from wagtail_factories.factories import PageFactory
from tests.site.pages import models from tests.site.pages import models
from wagtail_personalisation.models import PersonalisablePageMetadata from wagtail_personalisation.models import PersonalisablePageMetadata
class LocaleFactory(factory.django.DjangoModelFactory):
language_code = "en"
class Meta:
model = Locale
class ContentPageFactory(PageFactory): class ContentPageFactory(PageFactory):
parent = None parent = None
title = 'Test page' title = 'Test page'

View File

@ -4,13 +4,14 @@ from django.contrib.messages.storage.fallback import FallbackStorage
from django.contrib.sessions.backends.db import SessionStore from django.contrib.sessions.backends.db import SessionStore
from django.test.client import RequestFactory as BaseRequestFactory from django.test.client import RequestFactory as BaseRequestFactory
from tests.factories.page import ContentPageFactory, RegularPageFactory from tests.factories.page import ContentPageFactory, LocaleFactory, RegularPageFactory
from tests.factories.segment import SegmentFactory from tests.factories.segment import SegmentFactory
from tests.factories.site import SiteFactory from tests.factories.site import SiteFactory
@pytest.fixture(scope='function') @pytest.fixture(scope='function')
def site(): def site():
LocaleFactory()
root_page = ContentPageFactory(parent=None, slug='') root_page = ContentPageFactory(parent=None, slug='')
site = SiteFactory(is_default_site=True, root_page=root_page) site = SiteFactory(is_default_site=True, root_page=root_page)

View File

@ -59,7 +59,7 @@ MIDDLEWARE = (
'django.contrib.messages.middleware.MessageMiddleware', 'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware',
'wagtail.core.middleware.SiteMiddleware', 'wagtail.contrib.legacy.sitemiddleware.SiteMiddleware',
) )
INSTALLED_APPS = ( INSTALLED_APPS = (
@ -91,3 +91,18 @@ PASSWORD_HASHERS = (
) )
WAGTAIL_SITE_NAME = 'wagtail-personalisation test' WAGTAIL_SITE_NAME = 'wagtail-personalisation test'
# LANGUAGE_CODE = "en"
# TIME_ZONE = "UTC"
# USE_I18N = True
# USE_L10N = True
# USE_TZ = True
# # Wagtail
# WAGTAIL_I18N_ENABLED = True
# WAGTAIL_CONTENT_LANGUAGES = LANGUAGES = [
# ("en", "English"),
# ("nl", "Dutch"),
# ]

View File

@ -3,7 +3,7 @@ import datetime
import pytest import pytest
from django.db.models import ProtectedError from django.db.models import ProtectedError
from tests.factories.page import ContentPageFactory from tests.factories.page import ContentPageFactory, LocaleFactory
from tests.factories.segment import SegmentFactory from tests.factories.segment import SegmentFactory
from tests.site.pages import models from tests.site.pages import models
from wagtail_personalisation.models import PersonalisablePageMetadata, Segment from wagtail_personalisation.models import PersonalisablePageMetadata, Segment
@ -31,6 +31,7 @@ def test_metadata_page_has_variants(segmented_page):
@pytest.mark.django_db @pytest.mark.django_db
def test_content_page_model(): def test_content_page_model():
LocaleFactory()
page = ContentPageFactory() page = ContentPageFactory()
qs = models.ContentPage.objects.all() qs = models.ContentPage.objects.all()
assert page in qs assert page in qs
@ -76,5 +77,5 @@ def test_sitemap_generation_for_variants_is_disabled(segmented_page):
@pytest.mark.django_db @pytest.mark.django_db
def test_segment_edit_view(site, client, django_user_model): def test_segment_edit_view(site, client, django_user_model):
test_segment = SegmentFactory() test_segment = SegmentFactory()
new_panel = test_segment.panels[1].children[0].bind_to_model(Segment) new_panel = test_segment.panels[1].children[0].bind_to(model=Segment)
assert new_panel.related.name == "wagtail_personalisation_timerules" assert new_panel.related.name == "wagtail_personalisation_timerules"

View File

@ -3,13 +3,14 @@ from django.test import override_settings
from wagtail.core.models import Page as WagtailPage from wagtail.core.models import Page as WagtailPage
from tests.factories.page import ( from tests.factories.page import (
ContentPageFactory, PersonalisablePageMetadataFactory) ContentPageFactory, LocaleFactory, PersonalisablePageMetadataFactory)
from wagtail_personalisation.utils import ( from wagtail_personalisation.utils import (
can_delete_pages, exclude_variants, get_client_ip, impersonate_other_page) can_delete_pages, exclude_variants, get_client_ip, impersonate_other_page)
@pytest.fixture @pytest.fixture
def rootpage(): def rootpage():
LocaleFactory()
return ContentPageFactory(parent=None, path='/', depth=0, title='root') return ContentPageFactory(parent=None, path='/', depth=0, title='root')
@ -71,6 +72,7 @@ def test_exclude_variants_with_pages_querysets():
''' '''
Test that excludes variant works for querysets Test that excludes variant works for querysets
''' '''
LocaleFactory()
for i in range(5): for i in range(5):
page = ContentPageFactory(path="/" + str(i), depth=0, url_path="/", title="Hoi " + str(i)) page = ContentPageFactory(path="/" + str(i), depth=0, url_path="/", title="Hoi " + str(i))
page.save() page.save()
@ -86,6 +88,7 @@ def test_exclude_variants_with_pages_querysets_not_canonical():
Test that excludes variant works for querysets with Test that excludes variant works for querysets with
personalisation_metadata canonical False personalisation_metadata canonical False
''' '''
LocaleFactory()
for i in range(5): for i in range(5):
page = ContentPageFactory(path="/" + str(i), depth=0, url_path="/", title="Hoi " + str(i)) page = ContentPageFactory(path="/" + str(i), depth=0, url_path="/", title="Hoi " + str(i))
page.save() page.save()
@ -106,6 +109,7 @@ def test_exclude_variants_with_pages_querysets_meta_none():
''' '''
Test that excludes variant works for querysets with meta as none Test that excludes variant works for querysets with meta as none
''' '''
LocaleFactory()
for i in range(5): for i in range(5):
page = ContentPageFactory(path="/" + str(i), depth=0, url_path="/", title="Hoi " + str(i)) page = ContentPageFactory(path="/" + str(i), depth=0, url_path="/", title="Hoi " + str(i))
page.save() page.save()