diff --git a/src/personalisation/models.py b/src/personalisation/models.py index d2fe281..8438445 100644 --- a/src/personalisation/models.py +++ b/src/personalisation/models.py @@ -37,6 +37,13 @@ class AbstractBaseRule(models.Model): def __str__(self): return "Abstract segmentation rule" + def encoded_name(self): + """Returns a string with a slug for the rule""" + return slugify(self.__str__().lower()) + + def description(self): + return "Abstract segmentation rule" + class Meta: abstract = True @@ -67,6 +74,18 @@ class TimeRule(AbstractBaseRule): def __str__(self): return _('Time Rule') + def description(self): + description = { + 'title': _('These users visit between'), + 'value': _('{} and {}'), + } + + description['value'] = description['value'].format( + self.start_time, + self.end_time) + + return description + @python_2_unicode_compatible class DayRule(AbstractBaseRule): @@ -115,6 +134,20 @@ class DayRule(AbstractBaseRule): def __str__(self): return _('Day Rule') + def description(self): + description = { + 'title': _('These users visit on'), + 'value': _('{}'), + } + + days = [self.mon] + + description['value'] = description['value'].format( + self.start_time, + self.end_time) + + return description + @python_2_unicode_compatible class ReferralRule(AbstractBaseRule): @@ -326,6 +359,13 @@ class Segment(ClusterableModel): """Returns a string with a slug for the segment""" return slugify(self.name.lower()) + def get_rules(self): + rules = AbstractBaseRule.__subclasses__() + segment_rules = [] + for rule in rules: + segment_rules += rule.objects.filter(segment=self) + return segment_rules + def check_status_change(sender, instance, *args, **kwargs): """Check if the status has changed. Alter dates accordingly.""" diff --git a/src/personalisation/templates/modeladmin/personalisation/segment/index.html b/src/personalisation/templates/modeladmin/personalisation/segment/index.html index f3bdd0f..fec2920 100644 --- a/src/personalisation/templates/modeladmin/personalisation/segment/index.html +++ b/src/personalisation/templates/modeladmin/personalisation/segment/index.html @@ -35,42 +35,13 @@
{{ rule.regex_string }}-
?{{ rule.parameter }}={{ rule.value }}-