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
|
self.get_response = get_response
|
||||||
|
|
||||||
def __call__(self, request):
|
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:
|
if 'segments' not in request.session:
|
||||||
request.session['segments'] = []
|
request.session['segments'] = []
|
||||||
|
request.session['visit_count'] = 1
|
||||||
|
|
||||||
segments = Segment.objects.all().filter(status='enabled')
|
segments = Segment.objects.all().filter(status='enabled')
|
||||||
|
|
||||||
@ -26,9 +30,6 @@ class SegmentMiddleware(object):
|
|||||||
|
|
||||||
response = self.get_response(request)
|
response = self.get_response(request)
|
||||||
|
|
||||||
if not request.session.get('segments'):
|
|
||||||
request.session['segments'] = []
|
|
||||||
|
|
||||||
print(request.session['segments'])
|
print(request.session['segments'])
|
||||||
return response
|
return response
|
||||||
|
|
||||||
@ -44,5 +45,10 @@ class SegmentMiddleware(object):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
def add_segment_to_user(self, segment, request):
|
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']:
|
if segment not in request.session['segments']:
|
||||||
request.session['segments'].append(segment.encoded_name())
|
request.session['segments'].append(segment.encoded_name())
|
||||||
|
@ -130,13 +130,13 @@ class VisitCountRule(AbstractBaseRule):
|
|||||||
segment_count = self.count
|
segment_count = self.count
|
||||||
visit_count = request.session.get('visit_count')
|
visit_count = request.session.get('visit_count')
|
||||||
|
|
||||||
if operator is "more_than":
|
if operator == "more_than":
|
||||||
if visit_count > segment_count:
|
if visit_count > segment_count:
|
||||||
return True
|
return True
|
||||||
elif operator is "less_than":
|
elif operator == "less_than":
|
||||||
if visit_count < segment_count:
|
if visit_count < segment_count:
|
||||||
return True
|
return True
|
||||||
elif operator is "equal_to":
|
elif operator == "equal_to":
|
||||||
if visit_count == segment_count:
|
if visit_count == segment_count:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
@ -34,11 +34,10 @@ modeladmin_register(SegmentModelAdmin)
|
|||||||
@hooks.register('before_serve_page')
|
@hooks.register('before_serve_page')
|
||||||
def set_visit_count(page, request, serve_args, serve_kwargs):
|
def set_visit_count(page, request, serve_args, serve_kwargs):
|
||||||
"""Update the users visit count before each page visit."""
|
"""Update the users visit count before each page visit."""
|
||||||
if request.session.get('visit_count'):
|
if 'visit_count' not in request.session:
|
||||||
request.session['visit_count'] = request.session.get('visit_count') + 1
|
|
||||||
else:
|
|
||||||
request.session['visit_count'] = 1
|
request.session['visit_count'] = 1
|
||||||
|
else:
|
||||||
print("User {} visited {} times.".format(
|
print("User {} visited {} time(s).".format(
|
||||||
request.session.session_key,
|
request.session.session_key,
|
||||||
request.session['visit_count']))
|
request.session['visit_count']))
|
||||||
|
request.session['visit_count'] = request.session.get('visit_count') + 1
|
||||||
|
Reference in New Issue
Block a user