fixes wagtail2 compatibility
return QuerySets instead of lists
This commit is contained in:
@@ -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."""
|
||||
|
@@ -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'))
|
||||
)
|
||||
|
Reference in New Issue
Block a user