49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
from django.conf.urls import include, url
|
|
from wagtail.contrib.modeladmin.options import ModelAdmin, modeladmin_register
|
|
from wagtail.contrib.modeladmin.views import IndexView
|
|
from wagtail.wagtailcore import hooks
|
|
|
|
from personalisation import admin_urls
|
|
from personalisation.models import Segment
|
|
|
|
|
|
@hooks.register('register_admin_urls')
|
|
def register_admin_urls():
|
|
"""Adds the administration urls for the personalisation apps."""
|
|
return [
|
|
url(r'^personalisation/', include(
|
|
admin_urls,
|
|
app_name='personalisation',
|
|
namespace='personalisation')),
|
|
]
|
|
|
|
|
|
class SegmentModelAdmin(ModelAdmin):
|
|
"""The base model for the Segments administration interface."""
|
|
model = Segment
|
|
menu_icon = 'group'
|
|
add_to_settings_menu = False
|
|
list_display = ('status', 'name', 'create_date', 'edit_date')
|
|
index_view_extra_css = ['personalisation/segment/index.css']
|
|
form_view_extra_css = ['personalisation/segment/form.css']
|
|
inspect_view_enabled = True
|
|
|
|
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."""
|
|
for seg in request.session['segments']:
|
|
segment = Segment.objects.get(pk=seg['id'])
|
|
segment.visit_count = segment.visit_count + 1
|
|
segment.save()
|
|
|
|
if 'visit_count' not in request.session:
|
|
request.session['visit_count'] = 1
|
|
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
|