7
This repository has been archived on 2023-05-07. You can view files and clone it, but cannot push or open issues or pull requests.
Files
cavemanon-wagtail-personali…/src/personalisation/middleware.py
2016-11-07 15:42:03 +01:00

28 lines
821 B
Python

from personalisation.models import Segment, TimeRule
class SegmentMiddleware(object):
"""Middleware for testing and putting a user in a segment"""
def __init__(self, get_response=None):
self.get_response = get_response
def __call__(self, request):
segments = Segment.objects.all().filter(status="live")
chosen_segments = []
for segment in segments:
result = False
rules = TimeRule.objects.all().filter(segment=segment)
for rule in rules:
result = rule.test_user()
if result:
chosen_segments.append(segment.encoded_name())
request.session['segments'] = chosen_segments
response = self.get_response(request)
print(request.session['segments'])
return response