server/src/metaeducation/tracking/messages.py
author ymh <ymh.work@gmail.com>
Tue, 05 Jul 2016 14:03:55 +0200
changeset 78 8e1440b83f0c
parent 77 06f627e804b6
child 81 709541e05240
permissions -rw-r--r--
put task under celery for better perf management
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
74
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
import datetime
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
import json
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
import logging
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
import pytz
77
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
     5
import functools
74
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
from .tasks import send_tracking_data
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
logger = logging.getLogger(__name__)
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
def get_base_message(verb, renkan_id, current_user, registration = None):
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
    #create
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
    #open-read
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    #open-edit
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
    #close
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
    #delete
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    #update
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    timestamp = datetime.datetime.utcnow().replace(tzinfo=pytz.utc)
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    verbNode = {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
        "create" : {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
            "id": 'http://activitystrea.ms/schema/1.0/create',
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
            "display": { 'fr-FR': 'a créé' }
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        },
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
        "update": {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
            "id": 'http://activitystrea.ms/schema/1.0/update',
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
            "display": { 'fr-FR': 'a modifié' }
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
        },
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        "delete": {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
            "id": 'http://activitystrea.ms/schema/1.0/delete',
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
            "display": { 'fr-FR': 'a supprimé' }
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
        },
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
        "close": {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
            "id": 'http://activitystrea.ms/schema/1.0/close',
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
            "display": { 'fr-FR': 'a fermé'}
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
        },
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
        "open_read": {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
            "id": 'http://id.tincanapi.com/verb/viewed',
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
            "display": { 'fr-FR': 'a vu'}
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
        },
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
        "open_edit": {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
            "id" : 'http://activitystrea.ms/schema/1.0/access',
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
            "display": { 'fr-FR': "a édité" }
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        }
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
    }[verb];
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
    msg = {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
        'actor': {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
            'objectType': 'Agent',
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
            'name': current_user,
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
            'account': {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
                'homePage': 'https://www.metaeducation.fr/Utilisateurs/',
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
                'name': current_user
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
            }
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
        },
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
        'verb': verbNode,
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
        'object': {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
            'objectType': 'Activity',
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
            'id': get_renkan_urn(renkan_id)
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
        },
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
        'context': {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
            'extensions': {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
                'http://liris.renkantracking.org/application': 'Outil carte mentale'
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
            }
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
        },
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
        'timestamp': timestamp.isoformat()
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
    };
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
    if registration:
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
        msg['context']['registration'] = registration
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
    return msg
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
def get_renkan_urn(renkan_id):
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
    return 'urn:mtdc:renkan:renkan:%s' % renkan_id;
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
def send_close_renkan(renkan, current_user, registration):
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
    msg = get_base_message('close', renkan.renkan_guid, current_user, registration)
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
    msg['object'] = {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
        **(msg['object']),
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
        **{
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
            "definition": {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
                "name": {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
                    'fr-FR': renkan.title
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
                },
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
                "type": "http://www.w3.org/ns/activitystreams#Renkan",
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
                "extensions": {
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
                    'http://www.w3.org/ns/activitystreams#Data': json.loads(renkan.content),
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
                }
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
            }
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
        }
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
    }
fa4fd5e8b54e add tracking of close + first version of tracking server side
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
78
8e1440b83f0c put task under celery for better perf management
ymh <ymh.work@gmail.com>
parents: 77
diff changeset
    95
    send_tracking_data.delay(msg)
76
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
    96
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
    97
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
    98
def send_open_read_renkan(renkan, current_user, registration):
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
    99
    msg = get_base_message('open_read', renkan.renkan_guid, current_user, registration)
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   100
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   101
    msg['object'] = {
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   102
        **(msg['object']),
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   103
        **{
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   104
            "definition": {
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   105
                "name": {
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   106
                    'fr-FR': renkan.title
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   107
                },
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   108
                "type": "http://www.w3.org/ns/activitystreams#Renkan",
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   109
                "extensions": {
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   110
                    'http://www.w3.org/ns/activitystreams#Data': json.loads(renkan.content),
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   111
                }
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   112
            }
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   113
        }
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   114
    }
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   115
78
8e1440b83f0c put task under celery for better perf management
ymh <ymh.work@gmail.com>
parents: 77
diff changeset
   116
    send_tracking_data.delay(msg)
76
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   117
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   118
def send_open_edit_renkan(renkan, current_user, registration):
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   119
    msg = get_base_message('open_edit', renkan.renkan_guid, current_user, registration)
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   120
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   121
    msg['object'] = {
77
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   122
        **(msg.get('object', {})),
76
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   123
        **{
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   124
            "definition": {
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   125
                "name": {
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   126
                    'fr-FR': renkan.title
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   127
                },
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   128
                "type": "http://www.w3.org/ns/activitystreams#Renkan",
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   129
                "extensions": {
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   130
                    'http://www.w3.org/ns/activitystreams#Data': json.loads(renkan.content),
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   131
                }
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   132
            }
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   133
        }
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   134
    }
d3804d2eaf2d add trace for read and edit
ymh <ymh.work@gmail.com>
parents: 74
diff changeset
   135
78
8e1440b83f0c put task under celery for better perf management
ymh <ymh.work@gmail.com>
parents: 77
diff changeset
   136
    send_tracking_data.delay(msg)
77
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   137
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   138
def _send_operation_renkan(action, renkan, current_user, content=None):
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   139
    if not content:
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   140
        content = json.loads(renkan.content)
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   141
        title = renkan.title
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   142
        renkan_guid = renkan.renkan_guid
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   143
    else:
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   144
        content = json.loads(content)
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   145
        title = content.get('title', '')
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   146
        renkan_guid = content.get('id', content.get('_id', ''))
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   147
    msg = get_base_message(action, renkan_guid, current_user)
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   148
    msg['object'] = {
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   149
        **(msg.get('object',{})),
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   150
        **{
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   151
            "definition": {
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   152
                "name": {
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   153
                    'fr-FR': title
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   154
                },
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   155
                "type": "http://www.w3.org/ns/activitystreams#Renkan",
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   156
                "extensions": {
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   157
                    'http://www.w3.org/ns/activitystreams#Data': content,
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   158
                }
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   159
            }
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   160
        }
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   161
    }
78
8e1440b83f0c put task under celery for better perf management
ymh <ymh.work@gmail.com>
parents: 77
diff changeset
   162
    send_tracking_data.delay(msg)
77
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   163
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   164
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   165
send_delete_renkan = functools.partial(_send_operation_renkan, 'delete')
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   166
send_update_renkan = functools.partial(_send_operation_renkan, 'update')
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   167
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   168
def send_create_renkan(renkan, current_user):
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   169
    msg = get_base_message('create', renkan.renkan_guid, current_user)
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   170
    msg['object'] = {
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   171
        **(msg.get('object', {})),
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   172
        **{
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   173
            "definition": {
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   174
                "name": {
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   175
                    'fr-FR': renkan.title
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   176
                },
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   177
                "type": "http://www.w3.org/ns/activitystreams#Renkan",
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   178
                "extensions": {
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   179
                    'http://www.w3.org/ns/activitystreams#Data': json.loads(renkan.content),
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   180
                }
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   181
            }
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   182
        }
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   183
    }
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   184
    if renkan.source_revision:
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   185
        msg['context']['extensions'] = {
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   186
            **msg.get('context', {}).get('extensions', {}),
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   187
            **{
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   188
                'http://liris.renkantracking.org/fromCreate': {'renkan': renkan.source_revision.parent_renkan.renkan_guid, 'revision': renkan.source_revision.revision_guid}
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   189
            }
06f627e804b6 add tracking of renkan create, delete and update
ymh <ymh.work@gmail.com>
parents: 76
diff changeset
   190
        }
78
8e1440b83f0c put task under celery for better perf management
ymh <ymh.work@gmail.com>
parents: 77
diff changeset
   191
    send_tracking_data.delay(msg)