rationalize user parameter for messages
authorymh <ymh.work@gmail.com>
Sun, 24 Jul 2016 23:59:57 +0200
changeset 88 b523b73ae39d
parent 87 756c34d7f639
child 89 4196849b15d3
rationalize user parameter for messages
server/src/metaeducation/tracking/messages.py
server/src/metaeducation/tracking/middleware.py
server/src/metaeducation/views/renkan.py
server/src/metaeducation/views/tracking.py
--- a/server/src/metaeducation/tracking/messages.py	Sat Jul 23 00:38:11 2016 +0200
+++ b/server/src/metaeducation/tracking/messages.py	Sun Jul 24 23:59:57 2016 +0200
@@ -3,10 +3,25 @@
 import logging
 import pytz
 
+from django.utils import six
+
 from .tasks import send_tracking_data
 
 logger = logging.getLogger(__name__)
 
+def get_user_name(user):
+    if not user:
+        return 'n/a'
+    if isinstance(user, six.string_types):
+        return user
+    try:
+        if user.is_authenticated() and user.external_id:
+            return str(user.external_id)
+        else:
+            return 'Anonymous'
+    except:
+        return 'anonymous'
+
 
 def get_base_message(verb, renkan_id, current_user, registration = None):
     #create
@@ -46,10 +61,10 @@
     msg = {
         'actor': {
             'objectType': 'Agent',
-            'name': current_user or 'n/a',
+            'name': get_user_name(current_user),
             'account': {
                 'homePage': 'https://www.metaeducation.fr/Utilisateurs/',
-                'name': current_user or 'n/a'
+                'name': get_user_name(current_user)
             }
         },
         'verb': verbNode,
--- a/server/src/metaeducation/tracking/middleware.py	Sat Jul 23 00:38:11 2016 +0200
+++ b/server/src/metaeducation/tracking/middleware.py	Sun Jul 24 23:59:57 2016 +0200
@@ -6,7 +6,7 @@
 
 from renkanmanager.models import Renkan, Revision
 
-from . import send_update_renkan, register_handlers, unregister_handlers, register_pre_save_handlers
+from . import register_handlers, unregister_handlers, register_pre_save_handlers
 
 logger = logging.getLogger(__name__)
 
--- a/server/src/metaeducation/views/renkan.py	Sat Jul 23 00:38:11 2016 +0200
+++ b/server/src/metaeducation/views/renkan.py	Sun Jul 24 23:59:57 2016 +0200
@@ -55,7 +55,7 @@
     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(getattr(request.user,'external_id', 'n/a')), str(context['registration']))
+        send_open_read_renkan(renkan, request.user, str(context['registration']))
         return self.render_to_response(context)
 
 
@@ -70,7 +70,7 @@
     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(getattr(request.user,'external_id', 'n/a')), str(context['registration']))
+        send_open_edit_renkan(renkan, request.user, str(context['registration']))
         return self.render_to_response(context)
 
 class DeleteForm(forms.Form):
--- a/server/src/metaeducation/views/tracking.py	Sat Jul 23 00:38:11 2016 +0200
+++ b/server/src/metaeducation/views/tracking.py	Sun Jul 24 23:59:57 2016 +0200
@@ -32,7 +32,7 @@
         if renkan_close_form.is_valid():
             form_data = renkan_close_form.cleaned_data
             renkan = get_object_or_404(Renkan.objects.select_related('current_revision'), renkan_guid=form_data['renkan_guid'])
-            send_close_renkan(renkan, str(request.user.external_id), str(form_data['registration']))
+            send_close_renkan(renkan, request.user, str(form_data['registration']))
             return HttpResponse(status=204)
         else:
             return HttpResponse(status=400)