7

Updates functions for new mixin

This commit is contained in:
Jasper Berghoef
2017-06-02 14:45:46 +02:00
committed by Michael van Tellingen
parent 7e24485aaf
commit f21c423b1c
2 changed files with 17 additions and 10 deletions

View File

@ -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 = (

View File

@ -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(