8

fixes wagtail2 compatibility

return QuerySets instead of lists
This commit is contained in:
Paul J Stevens
2018-03-17 11:26:56 +01:00
parent 32e73329c3
commit 62d258fd9e
2 changed files with 8 additions and 12 deletions

View File

@@ -80,15 +80,11 @@ class Segment(ClusterableModel):
def get_used_pages(self):
"""Return the pages that have variants using this segment."""
pages = list(PersonalisablePageMetadata.objects.filter(segment=self))
return pages
return PersonalisablePageMetadata.objects.filter(segment=self)
def get_created_variants(self):
"""Return the variants using this segment."""
pages = Page.objects.filter(_personalisable_page_metadata__segment=self)
return pages
return Page.objects.filter(_personalisable_page_metadata__segment=self)
def get_rules(self):
"""Retrieve all rules in the segment."""

View File

@@ -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,9 +104,8 @@ def exclude_variants(pages):
:return: List of pages that aren't variants
:rtype: list
"""
return [page for page in pages
if (hasattr(page, 'personalisation_metadata') is False)
or (hasattr(page, 'personalisation_metadata')
and page.personalisation_metadata is None)
or (hasattr(page, 'personalisation_metadata')
and page.personalisation_metadata.is_canonical)]
return (
pages.filter(
personalisable_canonical_metadata__canonical_page_id=F(
'personalisable_canonical_metadata__variant__id'))
)