7

Rule names

This commit is contained in:
Jasper Berghoef
2016-11-09 09:46:23 +01:00
parent b3fb265f9d
commit c9343c770d
3 changed files with 32 additions and 11 deletions

View File

@ -3,9 +3,6 @@ from django.contrib import admin
from personalisation import models from personalisation import models
class TimeRuleAdmin(admin.ModelAdmin):
list_display = ('name', 'start_time', 'end_time')
class TimeRuleAdminInline(admin.TabularInline): class TimeRuleAdminInline(admin.TabularInline):
model = models.TimeRule model = models.TimeRule
@ -16,9 +13,7 @@ class VisitCountRuleAdminInline(admin.TabularInline):
model = models.VisitCountRule model = models.VisitCountRule
class SegmentAdmin(admin.ModelAdmin): class SegmentAdmin(admin.ModelAdmin):
list_display = ['name']
inlines = (TimeRuleAdminInline, ReferralRuleAdminInline, VisitCountRuleAdminInline) inlines = (TimeRuleAdminInline, ReferralRuleAdminInline, VisitCountRuleAdminInline)
admin.site.register(models.TimeRule, TimeRuleAdmin)
admin.site.register(models.Segment, SegmentAdmin) admin.site.register(models.Segment, SegmentAdmin)

View File

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.3 on 2016-11-09 08:29
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('personalisation', '0009_auto_20161108_1731'),
]
operations = [
migrations.RemoveField(
model_name='abstractbaserule',
name='name',
),
]

View File

@ -40,18 +40,14 @@ Base for creating rules to segment users with
""" """
@python_2_unicode_compatible @python_2_unicode_compatible
class AbstractBaseRule(models.Model): class AbstractBaseRule(models.Model):
name = models.CharField(max_length=255)
segment = models.ForeignKey(to=Segment, related_name="segment") segment = models.ForeignKey(to=Segment, related_name="segment")
objects = InheritanceManager() objects = InheritanceManager()
def test_user(self, request=None): def test_user(self, request=None):
return True return True
def return_segment_id(self):
return "".join(self.name.lower().split())
def __str__(self): def __str__(self):
return self.name return "Segmentation rule"
""" """
@ -76,6 +72,9 @@ class TimeRule(AbstractBaseRule):
"""Mockable function for testing purposes""" """Mockable function for testing purposes"""
return datetime.now().time() return datetime.now().time()
def __str__(self):
return '{} - {}'.format(self.start_time, self.end_time)
""" """
Referral rule to segment users based on a regex test Referral rule to segment users based on a regex test
@ -95,6 +94,10 @@ class ReferralRule(AbstractBaseRule):
return True return True
return False return False
def __str__(self):
return '{}'.format(self.regex_string)
""" """
Visit count rule to segment users based on amount of visits Visit count rule to segment users based on amount of visits
""" """
@ -125,3 +128,7 @@ class VisitCountRule(AbstractBaseRule):
if visit_count is segment_count: if visit_count is segment_count:
return True return True
return False return False
def __str__(self):
operator_display = self.get_operator_display()
return '{} {}'.format(operator_display, self.count)