add trace for read and edit
authorymh <ymh.work@gmail.com>
Mon, 04 Jul 2016 00:31:19 +0200
changeset 76 d3804d2eaf2d
parent 75 ada126bb171a
child 77 06f627e804b6
add trace for read and edit
server/src/metaeducation/tracking/__init__.py
server/src/metaeducation/tracking/messages.py
server/src/metaeducation/views/renkan.py
--- a/server/src/metaeducation/tracking/__init__.py	Sun Jul 03 18:51:40 2016 +0200
+++ b/server/src/metaeducation/tracking/__init__.py	Mon Jul 04 00:31:19 2016 +0200
@@ -1,4 +1,4 @@
 from .tasks import send_tracking_data
-from .messages import send_close_renkan
+from .messages import send_close_renkan, send_open_edit_renkan, send_open_read_renkan
 
-__all__ = ['send_tracking_data', 'send_close_renkan']
+__all__ = ['send_tracking_data', 'send_close_renkan', 'send_open_read_renkan', 'send_open_edit_renkan']
--- a/server/src/metaeducation/tracking/messages.py	Sun Jul 03 18:51:40 2016 +0200
+++ b/server/src/metaeducation/tracking/messages.py	Mon Jul 04 00:31:19 2016 +0200
@@ -73,7 +73,6 @@
     return 'urn:mtdc:renkan:renkan:%s' % renkan_id;
 
 
-
 def send_close_renkan(renkan, current_user, registration):
     msg = get_base_message('close', renkan.renkan_guid, current_user, registration)
 
@@ -93,3 +92,44 @@
     }
 
     send_tracking_data(msg)
+
+
+def send_open_read_renkan(renkan, current_user, registration):
+    msg = get_base_message('open_read', renkan.renkan_guid, current_user, registration)
+
+    msg['object'] = {
+        **(msg['object']),
+        **{
+            "definition": {
+                "name": {
+                    'fr-FR': renkan.title
+                },
+                "type": "http://www.w3.org/ns/activitystreams#Renkan",
+                "extensions": {
+                    'http://www.w3.org/ns/activitystreams#Data': json.loads(renkan.content),
+                }
+            }
+        }
+    }
+
+    send_tracking_data(msg)
+
+def send_open_edit_renkan(renkan, current_user, registration):
+    msg = get_base_message('open_edit', renkan.renkan_guid, current_user, registration)
+
+    msg['object'] = {
+        **(msg['object']),
+        **{
+            "definition": {
+                "name": {
+                    'fr-FR': renkan.title
+                },
+                "type": "http://www.w3.org/ns/activitystreams#Renkan",
+                "extensions": {
+                    'http://www.w3.org/ns/activitystreams#Data': json.loads(renkan.content),
+                }
+            }
+        }
+    }
+
+    send_tracking_data(msg)
--- a/server/src/metaeducation/views/renkan.py	Sun Jul 03 18:51:40 2016 +0200
+++ b/server/src/metaeducation/views/renkan.py	Mon Jul 04 00:31:19 2016 +0200
@@ -1,12 +1,16 @@
 import logging, json, uuid
+
 from django.conf import settings
 from django.core.urlresolvers import reverse
 from django.http import HttpResponse, HttpResponseRedirect
-from django.shortcuts import render
+from django.shortcuts import render, get_object_or_404
 from django.views.generic import TemplateView, View
+
 from renkanmanager.api.views import RenkanDetail
 from renkanmanager.models import Renkan
 from renkanmanager.serializers import RenkanSerializer
+
+from metaeducation.tracking import send_open_read_renkan, send_open_edit_renkan
 from metaeducation import __version__
 
 logger = logging.getLogger(__name__)
@@ -47,6 +51,13 @@
         context['registration'] = str(uuid.uuid4())
         return context
 
+    def get(self, request, *args, **kwargs):
+        renkan = get_object_or_404(Renkan.objects.select_related('current_revision'), renkan_guid=kwargs['renkan_guid'])
+        context = self.get_context_data(**kwargs)
+        send_open_read_renkan(renkan, str(request.user.external_id), str(context['registration']))
+        return self.render_to_response(context)
+
+
 
 class EditRenkanView(TemplateView):
     template_name = "renkan_edit.html"
@@ -55,6 +66,12 @@
         context['registration'] = str(uuid.uuid4())
         return context
 
+    def get(self, request, *args, **kwargs):
+        renkan = get_object_or_404(Renkan.objects.select_related('current_revision'), renkan_guid=kwargs['renkan_guid'])
+        context = self.get_context_data(**kwargs)
+        send_open_edit_renkan(renkan, str(request.user.external_id), str(context['registration']))
+        return self.render_to_response(context)
+
 
 class DeleteRenkanView(View):