Updates functions for new mixin
This commit is contained in:
committed by
Michael van Tellingen
parent
7e24485aaf
commit
f21c423b1c
@ -81,22 +81,26 @@ class Segment(ClusterableModel):
|
|||||||
|
|
||||||
def get_used_pages(self):
|
def get_used_pages(self):
|
||||||
"""Return the pages that have variants using this segment."""
|
"""Return the pages that have variants using this segment."""
|
||||||
pass
|
pages = [page for page
|
||||||
|
in PersonalisablePageMetadata.objects.filter(segment=self)]
|
||||||
|
|
||||||
|
return pages
|
||||||
|
|
||||||
def get_created_variants(self):
|
def get_created_variants(self):
|
||||||
"""Return the variants using this segment."""
|
"""Return the variants using this segment."""
|
||||||
page_classes = [page_class for page_class
|
pages = [page.variations for page
|
||||||
in PersonalisablePageMixin.__subclasses__()]
|
in PersonalisablePageMetadata.objects.filter(segment=self)]
|
||||||
pages = [page.objects.filter(segment=self) for page in page_classes]
|
|
||||||
|
|
||||||
return list(itertools.chain(*pages))
|
return list(itertools.chain(*pages))
|
||||||
|
|
||||||
def get_rules(self):
|
def get_rules(self):
|
||||||
"""Retrieve all rules in the segment."""
|
"""Retrieve all rules in the segment."""
|
||||||
related_rules = [rule.objects.filter(segment=self)
|
segment_rules = []
|
||||||
for rule in AbstractBaseRule.__subclasses__()]
|
for rule_model in AbstractBaseRule.get_descendant_models():
|
||||||
|
segment_rules.extend(
|
||||||
|
rule_model._default_manager.filter(segment=self))
|
||||||
|
|
||||||
return list(itertools.chain(*related_rules))
|
return segment_rules
|
||||||
|
|
||||||
def toggle(self, save=True):
|
def toggle(self, save=True):
|
||||||
self.status = (
|
self.status = (
|
||||||
|
@ -39,7 +39,8 @@ class SegmentModelAdmin(ModelAdmin):
|
|||||||
dashboard_view_class = SegmentModelDashboardView
|
dashboard_view_class = SegmentModelDashboardView
|
||||||
menu_icon = 'fa-snowflake-o'
|
menu_icon = 'fa-snowflake-o'
|
||||||
add_to_settings_menu = False
|
add_to_settings_menu = False
|
||||||
list_display = ('name', 'persistent', 'match_any', 'status', 'variant_count', 'statistics')
|
list_display = ('name', 'persistent', 'match_any', 'status',
|
||||||
|
'page_count', 'variant_count', 'statistics')
|
||||||
index_view_extra_js = ['js/commons.js', 'js/index.js']
|
index_view_extra_js = ['js/commons.js', 'js/index.js']
|
||||||
index_view_extra_css = ['css/index.css']
|
index_view_extra_css = ['css/index.css']
|
||||||
form_view_extra_js = ['js/commons.js', 'js/form.js']
|
form_view_extra_js = ['js/commons.js', 'js/form.js']
|
||||||
@ -55,9 +56,11 @@ class SegmentModelAdmin(ModelAdmin):
|
|||||||
|
|
||||||
return view_class.as_view(**kwargs)(request)
|
return view_class.as_view(**kwargs)(request)
|
||||||
|
|
||||||
|
def page_count(self, obj):
|
||||||
|
return len(obj.get_used_pages())
|
||||||
|
|
||||||
def variant_count(self, obj):
|
def variant_count(self, obj):
|
||||||
return _("{pages} pages").format(
|
return len(obj.get_created_variants())
|
||||||
pages=len(obj.get_created_variants()))
|
|
||||||
|
|
||||||
def statistics(self, obj):
|
def statistics(self, obj):
|
||||||
return _("{visits} visits in {days} days").format(
|
return _("{visits} visits in {days} days").format(
|
||||||
|
Reference in New Issue
Block a user