From dae4b35080cdc86eb88c5e98929aface28320066 Mon Sep 17 00:00:00 2001 From: Nathan Sprenkle Date: Thu, 4 Jan 2024 14:02:47 -0500 Subject: [PATCH] fix: bff handle feedback only criteria (#2154) * fix: allow feedback only criteria in assessment * chore: bump ORA to 6.0.22 --- openassessment/__init__.py | 2 +- .../xblock/ui_mixins/mfe/assessment_serializers.py | 13 +++++++++---- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/openassessment/__init__.py b/openassessment/__init__.py index 3babfb3093..d041041e42 100644 --- a/openassessment/__init__.py +++ b/openassessment/__init__.py @@ -2,4 +2,4 @@ Initialization Information for Open Assessment Module """ -__version__ = '6.0.21' +__version__ = '6.0.22' diff --git a/openassessment/xblock/ui_mixins/mfe/assessment_serializers.py b/openassessment/xblock/ui_mixins/mfe/assessment_serializers.py index e37bc07e84..35e46b7a78 100644 --- a/openassessment/xblock/ui_mixins/mfe/assessment_serializers.py +++ b/openassessment/xblock/ui_mixins/mfe/assessment_serializers.py @@ -37,7 +37,7 @@ class AssessmentCriterionSerializer(Serializer): feedback: (String) Feedback for the selected option } """ - selectedOption = IntegerField(source="option.order_num") + selectedOption = IntegerField(source="option.order_num", allow_null=True) feedback = CharField() @@ -190,7 +190,7 @@ class MfeAssessmentCriterionSerializer(Serializer): feedback: (String / Empty) Feedback for the selected option } """ - selectedOption = IntegerField() + selectedOption = IntegerField(allow_null=True) feedback = CharField(allow_blank=True, allow_null=True) @@ -241,8 +241,13 @@ def to_legacy_format(self, xblock): # Look up the name and value for each given rubric selection criterion_name = xblock.rubric_criteria[i]['name'] - selected_value = xblock.rubric_criteria[i]['options'][criterion_data['selectedOption']]['name'] - options_selected[criterion_name] = selected_value + + # For feedback-only criteria, there are no options + if len(xblock.rubric_criteria[i]['options']) > 0: + + # Otherwise, get the value of the selected option + selected_value = xblock.rubric_criteria[i]['options'][criterion_data['selectedOption']]['name'] + options_selected[criterion_name] = selected_value # Attach feedback for the criterion criterion_feedback[criterion_name] = criterion_data['feedback'] diff --git a/package-lock.json b/package-lock.json index 129f63c29e..b4a099b9f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "edx-ora2", - "version": "6.0.21", + "version": "6.0.22", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "edx-ora2", - "version": "6.0.21", + "version": "6.0.22", "dependencies": { "@edx/frontend-build": "8.0.6", "@openedx/paragon": "^21.5.7", diff --git a/package.json b/package.json index 350991da3b..1e0e575013 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "edx-ora2", - "version": "6.0.21", + "version": "6.0.22", "repository": "https://github.com/openedx/edx-ora2.git", "dependencies": { "@edx/frontend-build": "8.0.6",