diff --git a/runtime/scripts/part.js b/runtime/scripts/part.js index 857a62e4a..a70713ff9 100644 --- a/runtime/scripts/part.js +++ b/runtime/scripts/part.js @@ -1778,7 +1778,7 @@ if(res) { \ } } } - change_desc = credit_change>0 ? 'positive' : credit_change<0 ? 'negative' : 'neutral'; + change_desc = credit_change > 0 ? 'positive' : credit_change < 0 ? 'negative' : 'neutral'; switch(action.reason) { case 'correct': change_desc = 'positive'; diff --git a/themes/default/files/scripts/display-util.js b/themes/default/files/scripts/display-util.js index 3a26a6815..df53ba502 100644 --- a/themes/default/files/scripts/display-util.js +++ b/themes/default/files/scripts/display-util.js @@ -282,6 +282,7 @@ Numbas.queueScript('display-util', ['math'], function() { state: state, showActualMark: showActualMark, showTotalMark: showTotalMark, + showAnswerState: showAnswerState, answered: answered, answeredString: Knockout.computed(function() { if(obj.marks()==0 && !obj.doesMarking()) { diff --git a/themes/default/files/scripts/part-display.js b/themes/default/files/scripts/part-display.js index 1283a3bef..76c6cbb39 100644 --- a/themes/default/files/scripts/part-display.js +++ b/themes/default/files/scripts/part-display.js @@ -425,12 +425,23 @@ Numbas.queueScript('part-display',['display-util', 'display-base','util','jme'], */ this.shownFeedbackMessages = Knockout.computed(function() { var messages = this.feedbackMessages(); + + // If not showing part feedback messages, only show messages about invalid input. if(!this.showFeedbackMessages()) { messages = messages.filter(function(m) { return m.credit_change == 'invalid'; }); } + + // If not showing the answer correctness, don't show messages that give positive or negative feedback. + if(!this.scoreFeedback.showAnswerState()) { + messages = messages.filter(function(m) { + return !(m.credit_change == 'positive' || m.credit_change == 'negative'); + }); + } + + // If showing the current score and this part is marked, add a message giving the total score. if(feedback_settings.showFeedbackIcon && this.marks()!=0 && this.scoreFeedback.showActualMark()) { messages.push({ - credit_change: 0, + credit_change: '', message: '', icon: undefined, credit_message: R('part.marking.total score',{count:p.score}),