7

Move visit count logic to the segment adapter

This makes the code also a bit simpler and updates the tests
This commit is contained in:
Michael van Tellingen
2017-05-31 13:40:00 +02:00
committed by Michael van Tellingen
parent 7034c09d4a
commit 7436384471
4 changed files with 45 additions and 49 deletions

View File

@ -124,6 +124,23 @@ class SessionSegmentsAdapter(BaseSegmentsAdapter):
segdict = create_segment_dictionary(segment)
self.request.session['segments'].append(segdict)
def add_page_visit(self, page):
"""Mar kthe page as visited by the user"""
visit_count = self.request.session.setdefault('visit_count', [])
page_visits = [visit for visit in visit_count if visit['id'] == page.pk]
if page_visits:
for page_visit in page_visits:
page_visit['count'] += 1
self.request.session.modified = True
else:
visit_count.append({
'slug': page.slug,
'id': page.pk,
'path': self.request.path,
'count': 1,
})
def update_visit_count(self):
"""Update the visit count for all segments in the request session."""
segments = self.request.session['segments']