Commit 16a4dfee by dragonfi

Publish item picked-up event

parent 21e0ed0c
...@@ -206,6 +206,18 @@ class DragAndDropBlock(XBlock): ...@@ -206,6 +206,18 @@ class DragAndDropBlock(XBlock):
'feedback': item['feedback']['correct'] if is_correct else item['feedback']['incorrect'] 'feedback': item['feedback']['correct'] if is_correct else item['feedback']['incorrect']
} }
@XBlock.json_handler
def publish_event(self, data, suffix=''):
try:
event_type = data.pop('event_type')
except KeyError as e:
return {'result': 'error', 'message': 'Missing event_type in JSON data'}
data['component_id'] = self.scope_ids.usage_id
data['user_id'] = self.runtime.user_id
self.runtime.publish(self, event_type, data)
return {'result':'success'}
@staticmethod @staticmethod
def workbench_scenarios(): def workbench_scenarios():
......
...@@ -90,7 +90,19 @@ function DragAndDropBlock(runtime, element) { ...@@ -90,7 +90,19 @@ function DragAndDropBlock(runtime, element) {
}, },
drag: { drag: {
start: function(event, ui) { start: function(event, ui) {
$(event.currentTarget).removeClass('within-dropzone fade'); target = $(event.currentTarget);
target.removeClass('within-dropzone fade');
function publish_event(data) {
$.ajax({
type: "POST",
url: runtime.handlerUrl(element, 'publish_event'),
data: JSON.stringify(data)
});
}
var item_id = target.data("value");
publish_event({event_type:'drag-and-drop-v2.item.picked-up', item_id:item_id});
}, },
stop: function(event, ui) { stop: function(event, ui) {
......
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