server/src/metaeducation/tracking/messages.py
changeset 77 06f627e804b6
parent 76 d3804d2eaf2d
child 78 8e1440b83f0c
equal deleted inserted replaced
76:d3804d2eaf2d 77:06f627e804b6
     1 import datetime
     1 import datetime
     2 import json
     2 import json
     3 import logging
     3 import logging
     4 import pytz
     4 import pytz
       
     5 import functools
     5 
     6 
     6 from .tasks import send_tracking_data
     7 from .tasks import send_tracking_data
     7 
     8 
     8 logger = logging.getLogger(__name__)
     9 logger = logging.getLogger(__name__)
     9 
    10 
   116 
   117 
   117 def send_open_edit_renkan(renkan, current_user, registration):
   118 def send_open_edit_renkan(renkan, current_user, registration):
   118     msg = get_base_message('open_edit', renkan.renkan_guid, current_user, registration)
   119     msg = get_base_message('open_edit', renkan.renkan_guid, current_user, registration)
   119 
   120 
   120     msg['object'] = {
   121     msg['object'] = {
   121         **(msg['object']),
   122         **(msg.get('object', {})),
   122         **{
   123         **{
   123             "definition": {
   124             "definition": {
   124                 "name": {
   125                 "name": {
   125                     'fr-FR': renkan.title
   126                     'fr-FR': renkan.title
   126                 },
   127                 },
   131             }
   132             }
   132         }
   133         }
   133     }
   134     }
   134 
   135 
   135     send_tracking_data(msg)
   136     send_tracking_data(msg)
       
   137 
       
   138 def _send_operation_renkan(action, renkan, current_user, content=None):
       
   139     if not content:
       
   140         content = json.loads(renkan.content)
       
   141         title = renkan.title
       
   142         renkan_guid = renkan.renkan_guid
       
   143     else:
       
   144         content = json.loads(content)
       
   145         title = content.get('title', '')
       
   146         renkan_guid = content.get('id', content.get('_id', ''))
       
   147     msg = get_base_message(action, renkan_guid, current_user)
       
   148     msg['object'] = {
       
   149         **(msg.get('object',{})),
       
   150         **{
       
   151             "definition": {
       
   152                 "name": {
       
   153                     'fr-FR': title
       
   154                 },
       
   155                 "type": "http://www.w3.org/ns/activitystreams#Renkan",
       
   156                 "extensions": {
       
   157                     'http://www.w3.org/ns/activitystreams#Data': content,
       
   158                 }
       
   159             }
       
   160         }
       
   161     }
       
   162     send_tracking_data(msg)
       
   163 
       
   164 
       
   165 send_delete_renkan = functools.partial(_send_operation_renkan, 'delete')
       
   166 send_update_renkan = functools.partial(_send_operation_renkan, 'update')
       
   167 
       
   168 def send_create_renkan(renkan, current_user):
       
   169     msg = get_base_message('create', renkan.renkan_guid, current_user)
       
   170     msg['object'] = {
       
   171         **(msg.get('object', {})),
       
   172         **{
       
   173             "definition": {
       
   174                 "name": {
       
   175                     'fr-FR': renkan.title
       
   176                 },
       
   177                 "type": "http://www.w3.org/ns/activitystreams#Renkan",
       
   178                 "extensions": {
       
   179                     'http://www.w3.org/ns/activitystreams#Data': json.loads(renkan.content),
       
   180                 }
       
   181             }
       
   182         }
       
   183     }
       
   184     if renkan.source_revision:
       
   185         msg['context']['extensions'] = {
       
   186             **msg.get('context', {}).get('extensions', {}),
       
   187             **{
       
   188                 'http://liris.renkantracking.org/fromCreate': {'renkan': renkan.source_revision.parent_renkan.renkan_guid, 'revision': renkan.source_revision.revision_guid}
       
   189             }
       
   190         }
       
   191     send_tracking_data(msg)