Commit 0684dd4e by Jonathan Piacenti

Address Analytics notes.

parent 7c14fb8f
......@@ -287,7 +287,7 @@ class DragAndDropBlock(XBlock, XBlockWithSettingsMixin, ThemableXBlockMixin):
# so we have to figure that we're running in Studio for now
pass
self.runtime.publish(self, 'xblock.drag-and-drop-v2.item.dropped', {
self.runtime.publish(self, 'edx.drag_and_drop_v2.item.dropped', {
'user_id': self.scope_ids.user_id,
'component_id': self._get_unique_id(),
'item_id': item['id'],
......
......@@ -19,6 +19,9 @@ function DragAndDropBlock(runtime, element, configuration) {
var TAB = 9;
var M = 77;
// Event string size limit.
var MAX_LENGTH = 255;
var placementMode = false;
var $selectedItem;
var $focusedElement;
......@@ -57,7 +60,7 @@ function DragAndDropBlock(runtime, element, configuration) {
$element.on('click', '.submit-input', submitInput);
// Indicate that exercise is done loading
publishEvent({event_type: 'xblock.drag-and-drop-v2.loaded'});
publishEvent({event_type: 'edx.drag_and_drop_v2.loaded'});
}).fail(function() {
$root.text(gettext("An error occurred. Unable to load drag and drop exercise."));
});
......@@ -84,6 +87,15 @@ function DragAndDropBlock(runtime, element, configuration) {
}
};
var truncateField = function(data, fieldName){
if (data[fieldName].length > MAX_LENGTH) {
data[fieldName] = data[fieldName].substring(0, MAX_LENGTH);
data['truncated'] = true;
} else {
data['truncated'] = false;
}
};
var focusModalButton = function() {
$root.find('.keyboard-help-dialog .modal-dismiss-button ').focus();
};
......@@ -162,19 +174,24 @@ function DragAndDropBlock(runtime, element, configuration) {
var applyState = function() {
// Has the feedback popup been closed?
if (state.closing) {
publishEvent({
event_type: 'xblock.drag-and-drop-v2.feedback.closed',
var data = {
event_type: 'edx.drag_and_drop_v2.feedback.closed',
content: previousFeedback || state.feedback,
manually: state.manually_closed,
});
};
truncateField(data, 'content');
publishEvent(data);
previousFeedback = undefined;
delete state.closing;
}
// Has feedback been set?
if (state.feedback) {
publishEvent({
event_type: 'xblock.drag-and-drop-v2.feedback.opened',
var data = {
event_type: 'edx.drag_and_drop_v2.feedback.opened',
content: state.feedback,
});
};
truncateField(data, 'content');
publishEvent(data);
}
updateDOM();
......@@ -329,7 +346,7 @@ function DragAndDropBlock(runtime, element, configuration) {
var $item = $(this);
grabItem($item);
publishEvent({
event_type: 'xblock.drag-and-drop-v2.item.picked-up',
event_type: 'edx.drag_and_drop_v2.item.picked_up',
item_id: $item.data('value'),
});
},
......
......@@ -381,7 +381,7 @@ class EventsFiredTest(DefaultDataTestMixin, InteractionTestBase, BaseIntegration
def test_loaded(self):
dummy, name, data = self.publish.call_args[0]
self.assertEqual(name, 'xblock.drag-and-drop-v2.loaded')
self.assertEqual(name, 'edx.drag_and_drop_v2.loaded')
self.assertEqual(
data, {
'component_id': u'drag-and-drop-v2.drag-and-drop-v2.d0.u0',
......@@ -392,7 +392,7 @@ class EventsFiredTest(DefaultDataTestMixin, InteractionTestBase, BaseIntegration
def test_picked_up(self):
self.parameterized_item_positive_feedback_on_good_move(self.items_map)
dummy, name, data = self.publish.call_args_list[1][0]
self.assertEqual(name, 'xblock.drag-and-drop-v2.item.picked-up')
self.assertEqual(name, 'edx.drag_and_drop_v2.item.picked_up')
self.assertEqual(
data, {
'component_id': u'drag-and-drop-v2.drag-and-drop-v2.d0.u0',
......@@ -405,7 +405,7 @@ class EventsFiredTest(DefaultDataTestMixin, InteractionTestBase, BaseIntegration
self.parameterized_item_positive_feedback_on_good_move(self.items_map)
# Skipping to 3, since 2 is grade event.
dummy, name, data = self.publish.call_args_list[3][0]
self.assertEqual(name, 'xblock.drag-and-drop-v2.item.dropped')
self.assertEqual(name, 'edx.drag_and_drop_v2.item.dropped')
self.assertEqual(
data, {
'component_id': u'drag-and-drop-v2.drag-and-drop-v2.d0.u0',
......@@ -421,25 +421,27 @@ class EventsFiredTest(DefaultDataTestMixin, InteractionTestBase, BaseIntegration
def test_feedback_opened(self):
self.parameterized_item_positive_feedback_on_good_move(self.items_map)
dummy, name, data = self.publish.call_args_list[4][0]
self.assertEqual(name, 'xblock.drag-and-drop-v2.feedback.opened')
self.assertEqual(name, 'edx.drag_and_drop_v2.feedback.opened')
self.assertEqual(
data, {
'component_id': u'drag-and-drop-v2.drag-and-drop-v2.d0.u0',
'content': u'Correct! This one belongs to The Top Zone.',
'user_id': 'student_1',
'truncated': False,
}
)
def test_feedback_closed(self):
self.parameterized_item_positive_feedback_on_good_move(self.items_map)
dummy, name, data = self.publish.call_args_list[5][0]
self.assertEqual(name, 'xblock.drag-and-drop-v2.feedback.closed')
self.assertEqual(name, 'edx.drag_and_drop_v2.feedback.closed')
self.assertEqual(
data, {
'component_id': u'drag-and-drop-v2.drag-and-drop-v2.d0.u0',
'user_id': 'student_1',
'manually': False,
'content': u'Correct! This one belongs to The Top Zone.',
'truncated': False,
}
)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment