Skip to content

Commit c017608

Browse files
committed
separate the parts of feedback messages about credit
In order to comply with the new feedback settings, it should be possible to show part feedback messages but not the student's current score. To do this, the part of the message about the credit (e.g. "you were awarded 1 mark") is now in a separate attribute, `credit_message`, which is only shown if `showActualMark` is true.
1 parent a6e0845 commit c017608

File tree

4 files changed

+31
-24
lines changed

4 files changed

+31
-24
lines changed

runtime/scripts/part.js

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1312,13 +1312,7 @@ if(res) { \
13121312
};
13131313

13141314
this.question && this.question.updateScore();
1315-
if(this.answered)
1316-
{
1317-
if(!(this.parentPart && this.parentPart.type=='gapfill') && this.settings.showFeedbackIcon && this.marks!=0) {
1318-
this.markingComment(
1319-
R('part.marking.total score',{count:this.score})
1320-
);
1321-
}
1315+
if(this.answered) {
13221316
if(this.display) {
13231317
this.display.showScore(this.answered);
13241318
}
@@ -1776,14 +1770,11 @@ if(res) { \
17761770
action.message = '';
17771771
}
17781772
if(change!=0) {
1779-
if(util.isNonemptyHTML(action.message)) {
1780-
action.message += '\n\n';
1781-
}
17821773
var marks = Math.abs(change);
17831774
if(change>0) {
1784-
action.message += R('feedback.you were awarded',{count:marks});
1775+
action.credit_message = R('feedback.you were awarded',{count:marks});
17851776
} else if(change<0) {
1786-
action.message += R('feedback.taken away',{count:marks});
1777+
action.credit_message = R('feedback.taken away',{count:marks});
17871778
}
17881779
}
17891780
}

themes/default/files/resources/exam.css

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1186,7 +1186,6 @@ select.multiplechoice {
11861186

11871187
.part .feedback-icon {
11881188
display: inline-block;
1189-
line-height: 1rem;
11901189
}
11911190

11921191
.part .feedbackMessage ~ .feedbackMessage {

themes/default/files/scripts/part-display.js

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -425,11 +425,19 @@ Numbas.queueScript('part-display',['display-util', 'display-base','util','jme'],
425425
*/
426426
this.shownFeedbackMessages = Knockout.computed(function() {
427427
var messages = this.feedbackMessages();
428-
if(this.showFeedbackMessages()) {
429-
return messages;
430-
} else {
431-
return messages.filter(function(m) { return m.credit_change == 'invalid'; });
428+
if(!this.showFeedbackMessages()) {
429+
messages = messages.filter(function(m) { return m.credit_change == 'invalid'; });
430+
}
431+
if(feedback_settings.showFeedbackIcon && this.marks()!=0 && this.scoreFeedback.showActualMark()) {
432+
messages.push({
433+
credit_change: 0,
434+
message: '',
435+
icon: undefined,
436+
credit_message: R('part.marking.total score',{count:p.score}),
437+
format: 'string'
438+
});
432439
}
440+
return messages;
433441
},this);
434442

435443
/**
@@ -699,7 +707,7 @@ Numbas.queueScript('part-display',['display-util', 'display-base','util','jme'],
699707
'neutral': '',
700708
'invalid': 'icon-exclamation-sign'
701709
}
702-
return {credit_change: action.credit_change, message: action.message, icon: icons[action.credit_change], format: action.format || 'string'};
710+
return {credit_change: action.credit_change, message: action.message, credit_message: action.credit_message, icon: icons[action.credit_change], format: action.format || 'string'};
703711
});
704712
this.feedbackMessages(messages);
705713
}

themes/default/templates/xslt/part.xslt

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,21 @@
6464
<p class="sr-only" data-bind="visible: isNotOnlyPart, text: feedback_title"></p>
6565
<ol data-bind="visible: shownFeedbackMessages().length, foreach: shownFeedbackMessages">
6666
<li class="feedbackMessage" data-bind="attr: {{'data-credit-change': credit_change}}">
67-
<xsl:comment>ko if: format=='html'</xsl:comment>
68-
<span class="message" data-bind="dom: message"></span>
69-
<xsl:comment>/ko</xsl:comment>
70-
<xsl:comment>ko if: format=='string'</xsl:comment>
71-
<span class="message" data-bind="latex: message"></span>
72-
<xsl:comment>/ko</xsl:comment>
67+
<span class="message">
68+
<xsl:comment>ko if: format=='html'</xsl:comment>
69+
<span data-bind="dom: message"></span>
70+
<xsl:comment>/ko</xsl:comment>
71+
72+
<xsl:comment>ko if: format=='string'</xsl:comment>
73+
<span data-bind="latex: message"></span>
74+
<xsl:comment>/ko</xsl:comment>
75+
76+
<xsl:comment>ko if: $parent.scoreFeedback.showActualMark() &amp;&amp; credit_message</xsl:comment>
77+
<xsl:text> </xsl:text>
78+
<span data-bind="dom: credit_message"></span>
79+
<xsl:comment>/ko</xsl:comment>
80+
</span>
81+
7382
<span data-bind="visible: $parent.showFeedbackIcon, css: 'feedback-icon '+icon" aria-hidden="true"></span>
7483
</li>
7584
</ol>

0 commit comments

Comments
 (0)