Commit cb9bd01c by Filippo Valsorda

Correctly detect a finished state also when there is not feedback

parent c2ad71f8
......@@ -161,7 +161,10 @@ class DragAndDropBlock(XBlock):
if len(self.item_state) != tot_items:
del data['feedback']['finish']
data['state'] = self.item_state
data['state'] = {
'items': self.item_state,
'finished': len(self.item_state) == tot_items
}
return webob.response.Response(body=json.dumps(data))
......@@ -174,8 +177,10 @@ class DragAndDropBlock(XBlock):
self.item_state[item['id']] = (attempt['top'], attempt['left'])
if len(self.item_state) == tot_items:
finished = True
final_feedback = self.data['feedback']['finish']
else:
finished = False
final_feedback = None
try:
......@@ -190,12 +195,14 @@ class DragAndDropBlock(XBlock):
return {
'correct': True,
'finished': finished,
'final_feedback': final_feedback,
'feedback': item['feedback']['correct']
}
else:
return {
'correct': False,
'finished': finished,
'final_feedback': None,
'feedback': item['feedback']['incorrect']
}
......@@ -55,7 +55,7 @@ function DragAndDropBlock(runtime, element) {
_fn.items.init();
// Load welcome or final feedback
if (_fn.data.feedback.finish)
if (_fn.data.state.finished)
_fn.finish(_fn.data.feedback.finish);
else
_fn.feedback.set(_fn.data.feedback.start);
......@@ -70,7 +70,7 @@ function DragAndDropBlock(runtime, element) {
_fn.$items.draggable('disable');
// Show final feedback
_fn.feedback.set(final_feedback);
if (final_feedback) _fn.feedback.set(final_feedback);
},
clickHandlers: {
......@@ -109,7 +109,7 @@ function DragAndDropBlock(runtime, element) {
if (data.correct) {
$el.draggable('disable');
if (data.final_feedback) {
if (data.finished) {
_fn.finish(data.final_feedback);
}
} else {
......@@ -155,7 +155,7 @@ function DragAndDropBlock(runtime, element) {
init: function() {
_fn.$items.each(function (){
var $el = $(this),
saved_entry = _fn.data.state[$el.data('value')];
saved_entry = _fn.data.state.items[$el.data('value')];
if (saved_entry) {
_fn.clickHandlers.drag.set($el,
saved_entry[0], saved_entry[1]);
......
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