From fe9b1a0d805dd0a6dbdb88abe468e048a301efb4 Mon Sep 17 00:00:00 2001 From: wajeeha-khalid Date: Thu, 4 Feb 2016 11:34:05 +0500 Subject: [PATCH] add analytics event to thread/comment vote --- lms/djangoapps/discussion_api/api.py | 12 +++++++----- lms/djangoapps/discussion_api/tests/utils.py | 1 + 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lms/djangoapps/discussion_api/api.py b/lms/djangoapps/discussion_api/api.py index 05241a314d..227697ea69 100644 --- a/lms/djangoapps/discussion_api/api.py +++ b/lms/djangoapps/discussion_api/api.py @@ -9,6 +9,7 @@ from django.core.exceptions import ValidationError from django.core.urlresolvers import reverse from django.http import Http404 import itertools +from lms.djangoapps.django_comment_client.base.views import track_voted_event from rest_framework.exceptions import PermissionDenied @@ -496,7 +497,7 @@ def _check_editable_fields(cc_content, data, context): ) -def _do_extra_actions(api_content, cc_content, request_fields, actions_form, context): +def _do_extra_actions(api_content, cc_content, request_fields, actions_form, context, request): """ Perform any necessary additional actions related to content creation or update that require a separate comments service request. @@ -524,6 +525,7 @@ def _do_extra_actions(api_content, cc_content, request_fields, actions_form, con else: context["cc_requester"].unvote(cc_content) api_content["vote_count"] -= 1 + track_voted_event(request, context["course"], cc_content, "up", False if form_value else True) def create_thread(request, thread_data): @@ -568,7 +570,7 @@ def create_thread(request, thread_data): cc_thread = serializer.instance thread_created.send(sender=None, user=user, post=cc_thread) api_thread = serializer.data - _do_extra_actions(api_thread, cc_thread, thread_data.keys(), actions_form, context) + _do_extra_actions(api_thread, cc_thread, thread_data.keys(), actions_form, context, request) track_thread_created_event(request, course, cc_thread, actions_form.cleaned_data["following"]) @@ -609,7 +611,7 @@ def create_comment(request, comment_data): cc_comment = serializer.instance comment_created.send(sender=None, user=request.user, post=cc_comment) api_comment = serializer.data - _do_extra_actions(api_comment, cc_comment, comment_data.keys(), actions_form, context) + _do_extra_actions(api_comment, cc_comment, comment_data.keys(), actions_form, context, request) track_comment_created_event(request, context["course"], cc_comment, cc_thread["commentable_id"], followed=False) @@ -646,7 +648,7 @@ def update_thread(request, thread_id, update_data): # signal to update Teams when a user edits a thread thread_edited.send(sender=None, user=request.user, post=cc_thread) api_thread = serializer.data - _do_extra_actions(api_thread, cc_thread, update_data.keys(), actions_form, context) + _do_extra_actions(api_thread, cc_thread, update_data.keys(), actions_form, context, request) return api_thread @@ -690,7 +692,7 @@ def update_comment(request, comment_id, update_data): serializer.save() comment_edited.send(sender=None, user=request.user, post=cc_comment) api_comment = serializer.data - _do_extra_actions(api_comment, cc_comment, update_data.keys(), actions_form, context) + _do_extra_actions(api_comment, cc_comment, update_data.keys(), actions_form, context, request) return api_comment diff --git a/lms/djangoapps/discussion_api/tests/utils.py b/lms/djangoapps/discussion_api/tests/utils.py index e0613dc9d0..e341443a24 100644 --- a/lms/djangoapps/discussion_api/tests/utils.py +++ b/lms/djangoapps/discussion_api/tests/utils.py @@ -358,6 +358,7 @@ def make_minimal_cs_comment(overrides=None): ret = { "type": "comment", "id": "dummy", + "commentable_id": "dummy", "thread_id": "dummy", "parent_id": None, "user_id": "0",