From 12f110d9139b45b55ffd169ffa6bfad8263976b7 Mon Sep 17 00:00:00 2001
From: Paul J Stevens
Date: Sat, 26 May 2018 14:35:47 +0200
Subject: [PATCH] remove customer manager again for now
---
src/wagtail_personalisation/models.py | 15 ---------------
src/wagtail_personalisation/utils.py | 5 ++++-
tests/factories/page.py | 1 +
tests/site/pages/models.py | 2 --
tests/unit/test_models.py | 9 +++++++++
5 files changed, 14 insertions(+), 18 deletions(-)
diff --git a/src/wagtail_personalisation/models.py b/src/wagtail_personalisation/models.py
index 8901dbd..d85fb8f 100644
--- a/src/wagtail_personalisation/models.py
+++ b/src/wagtail_personalisation/models.py
@@ -1,12 +1,9 @@
-from __future__ import absolute_import, unicode_literals
-
import random
from django import forms
from django.conf import settings
from django.core.validators import MaxValueValidator, MinValueValidator
from django.db import models, transaction
-from django.db.models import F
from django.template.defaultfilters import slugify
from django.utils.encoding import python_2_unicode_compatible
from django.utils.functional import cached_property
@@ -201,16 +198,6 @@ class Segment(ClusterableModel):
return False
-class PersonalisablePageManager(models.Manager):
-
- def canonicals(self):
- return (
- self.filter(
- personalisable_canonical_metadata__canonical_page_id=F(
- 'personalisable_canonical_metadata__variant__id'))
- )
-
-
class PersonalisablePageMetadata(ClusterableModel):
"""The personalisable page model. Allows creation of variants with linked
segments.
@@ -231,8 +218,6 @@ class PersonalisablePageMetadata(ClusterableModel):
on_delete=models.SET_NULL,
null=True, blank=True)
- objects = PersonalisablePageManager()
-
@cached_property
def has_variants(self):
"""Return a boolean indicating whether or not the personalisable page
diff --git a/src/wagtail_personalisation/utils.py b/src/wagtail_personalisation/utils.py
index 59a1246..631424a 100644
--- a/src/wagtail_personalisation/utils.py
+++ b/src/wagtail_personalisation/utils.py
@@ -1,5 +1,6 @@
import time
+from django.db.models import F
from django.template.base import FilterExpression, kwarg_re
from django.utils import timezone
@@ -103,4 +104,6 @@ def exclude_variants(pages):
:return: Queryset of pages that aren't variants
:rtype: QuerySet
"""
- return pages.canonicals()
+ return pages.filter(
+ personalisable_canonical_metadata__canonical_page_id=F(
+ 'personalisable_canonical_metadata__variant__id'))
diff --git a/tests/factories/page.py b/tests/factories/page.py
index 85ba4f2..c0bad88 100644
--- a/tests/factories/page.py
+++ b/tests/factories/page.py
@@ -8,6 +8,7 @@ from tests.site.pages import models
class ContentPageFactory(PageFactory):
+ parent = None
title = 'Test page'
slug = factory.LazyAttribute(lambda obj: slugify(obj.title))
diff --git a/tests/site/pages/models.py b/tests/site/pages/models.py
index 28f1702..6c40d92 100644
--- a/tests/site/pages/models.py
+++ b/tests/site/pages/models.py
@@ -1,5 +1,3 @@
-from __future__ import absolute_import, unicode_literals
-
from django.db import models
from wagtail.admin.edit_handlers import FieldPanel
from wagtail.core.fields import RichTextField
diff --git a/tests/unit/test_models.py b/tests/unit/test_models.py
index 078240b..3f1e886 100644
--- a/tests/unit/test_models.py
+++ b/tests/unit/test_models.py
@@ -5,7 +5,9 @@ import datetime
import pytest
from tests.factories.segment import SegmentFactory
+from tests.factories.page import ContentPageFactory
from wagtail_personalisation.rules import TimeRule
+from tests.site.pages import models
@pytest.mark.django_db
@@ -25,3 +27,10 @@ def test_metadata_page_has_variants(segmented_page):
canonical = segmented_page.personalisation_metadata.canonical_page
assert canonical.personalisation_metadata.is_canonical
assert canonical.personalisation_metadata.has_variants
+
+
+@pytest.mark.django_db
+def test_content_page_model():
+ page = ContentPageFactory()
+ qs = models.ContentPage.objects.all()
+ assert page in qs