Small fixes to Visit count, prevent middleware functionality on admin
This commit is contained in:
@ -8,8 +8,12 @@ class SegmentMiddleware(object):
|
||||
self.get_response = get_response
|
||||
|
||||
def __call__(self, request):
|
||||
if request.path.startswith('/admin/') or request.path.startswith('/django-admin/'):
|
||||
return self.get_response(request)
|
||||
|
||||
if 'segments' not in request.session:
|
||||
request.session['segments'] = []
|
||||
request.session['visit_count'] = 1
|
||||
|
||||
segments = Segment.objects.all().filter(status='enabled')
|
||||
|
||||
@ -26,9 +30,6 @@ class SegmentMiddleware(object):
|
||||
|
||||
response = self.get_response(request)
|
||||
|
||||
if not request.session.get('segments'):
|
||||
request.session['segments'] = []
|
||||
|
||||
print(request.session['segments'])
|
||||
return response
|
||||
|
||||
@ -44,5 +45,10 @@ class SegmentMiddleware(object):
|
||||
return False
|
||||
|
||||
def add_segment_to_user(self, segment, request):
|
||||
"""Register the request to the Segment model as visit
|
||||
and save the segment in the user session"""
|
||||
segment.visit_count = segment.visit_count + 1
|
||||
segment.save()
|
||||
|
||||
if segment not in request.session['segments']:
|
||||
request.session['segments'].append(segment.encoded_name())
|
||||
|
@ -130,13 +130,13 @@ class VisitCountRule(AbstractBaseRule):
|
||||
segment_count = self.count
|
||||
visit_count = request.session.get('visit_count')
|
||||
|
||||
if operator is "more_than":
|
||||
if operator == "more_than":
|
||||
if visit_count > segment_count:
|
||||
return True
|
||||
elif operator is "less_than":
|
||||
elif operator == "less_than":
|
||||
if visit_count < segment_count:
|
||||
return True
|
||||
elif operator is "equal_to":
|
||||
elif operator == "equal_to":
|
||||
if visit_count == segment_count:
|
||||
return True
|
||||
return False
|
||||
|
@ -34,11 +34,10 @@ modeladmin_register(SegmentModelAdmin)
|
||||
@hooks.register('before_serve_page')
|
||||
def set_visit_count(page, request, serve_args, serve_kwargs):
|
||||
"""Update the users visit count before each page visit."""
|
||||
if request.session.get('visit_count'):
|
||||
request.session['visit_count'] = request.session.get('visit_count') + 1
|
||||
else:
|
||||
if 'visit_count' not in request.session:
|
||||
request.session['visit_count'] = 1
|
||||
|
||||
print("User {} visited {} times.".format(
|
||||
else:
|
||||
print("User {} visited {} time(s).".format(
|
||||
request.session.session_key,
|
||||
request.session['visit_count']))
|
||||
request.session['visit_count'] = request.session.get('visit_count') + 1
|
||||
|
Reference in New Issue
Block a user