7

adds referral rule and fixes segment testing

This commit is contained in:
Boris Besemer
2016-11-08 09:04:57 +01:00
parent 40a9c598bb
commit 5e06baeee2
3 changed files with 39 additions and 8 deletions

View File

@ -1,4 +1,4 @@
from personalisation.models import Segment, AbstractBaseRule, TimeRule
from personalisation.models import Segment, AbstractBaseRule
class SegmentMiddleware(object):
"""Middleware for testing and putting a user in a segment"""
@ -12,10 +12,9 @@ class SegmentMiddleware(object):
chosen_segments = []
for segment in segments:
result = False
rules = AbstractBaseRule.objects.filter(segment=segment).select_subclasses()
for rule in rules:
result = rule.test_user()
result = self.test_rules(rules)
if result:
chosen_segments.append(segment.encoded_name())
@ -25,3 +24,13 @@ class SegmentMiddleware(object):
print(request.session['segments'])
return response
def test_rules(self, rules):
for rule in rules:
result = rule.test_user()
if result is False:
return False
return True