From 6d5433bd057f8e3df8e8b37517e95cb430f44ad1 Mon Sep 17 00:00:00 2001 From: Piotr Mitros Date: Sun, 1 Jan 2012 19:25:50 -0500 Subject: [PATCH] Tracking system enhanced --- settings.py | 1 + track/middleware.py | 19 +++++++++++++++++++ track/views.py | 1 - 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 track/middleware.py diff --git a/settings.py b/settings.py index f28d5d32cf..81b2654795 100644 --- a/settings.py +++ b/settings.py @@ -85,6 +85,7 @@ MIDDLEWARE_CLASSES = ( 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', + 'track.middleware.TrackMiddleware', 'djangomako.middleware.MakoMiddleware', #'debug_toolbar.middleware.DebugToolbarMiddleware', ) diff --git a/track/middleware.py b/track/middleware.py new file mode 100644 index 0000000000..866accbeb5 --- /dev/null +++ b/track/middleware.py @@ -0,0 +1,19 @@ +import views, json + +class TrackMiddleware: + def process_request (self, request): + try: + # We're already logging events + if request.META['PATH_INFO'] == '/event': + return + + event = { 'GET' : dict(request.GET), + 'POST' : dict(request.POST)} + + # TODO: Confirm no large file uploads + event = json.dumps(event) + event = event[:512] + + views.server_track(request, request.META['PATH_INFO'], event) + except: + pass diff --git a/track/views.py b/track/views.py index 69e66336f2..f5c9e8a31b 100644 --- a/track/views.py +++ b/track/views.py @@ -55,7 +55,6 @@ def server_track(request, event_type, event, page=None): event = { "username" : request.user.username, "ip" : request.META['REMOTE_ADDR'], - "ip" : request.META['REMOTE_ADDR'], "event_source" : "server", "event_type" : event_type, "event" : event,