diff --git a/lms/djangoapps/ora_staff_grader/serializers.py b/lms/djangoapps/ora_staff_grader/serializers.py index 76ca408f9d4e..643a4725e1a0 100644 --- a/lms/djangoapps/ora_staff_grader/serializers.py +++ b/lms/djangoapps/ora_staff_grader/serializers.py @@ -305,7 +305,8 @@ class StaffAssessSerializer(serializers.Serializer): def get_options_selected(self, instance): options_selected = {} for criterion in instance.get("criteria"): - options_selected[criterion["name"]] = criterion["selectedOption"] + if criterion["selectedOption"]: + options_selected[criterion["name"]] = criterion["selectedOption"] return options_selected diff --git a/lms/djangoapps/ora_staff_grader/tests/test_serializers.py b/lms/djangoapps/ora_staff_grader/tests/test_serializers.py index 13107926f2f4..19939c0f9b85 100644 --- a/lms/djangoapps/ora_staff_grader/tests/test_serializers.py +++ b/lms/djangoapps/ora_staff_grader/tests/test_serializers.py @@ -718,6 +718,13 @@ class TestStaffAssessSerializer(TestCase): ], } + grade_data_no_selected_option = { + "overallFeedback": "was pretty good", + "criteria": [ + {"name": "firstCriterion", "selectedOption": None}, + ], + } + submission_uuid = "foo" def test_staff_assess_serializer(self): @@ -757,3 +764,18 @@ def test_staff_assess_no_feedback(self): } assert serializer.data == expected_value + + def test_staff_assess_no_selected_option(self): + """When selected option is None, it should be ignored""" + context = {"submission_uuid": self.submission_uuid} + serializer = StaffAssessSerializer(self.grade_data_no_selected_option, context=context) + + expected_value = { + "options_selected": {}, + "criterion_feedback": {}, + "overall_feedback": "was pretty good", + "submission_uuid": self.submission_uuid, + "assess_type": "full-grade", + } + + assert serializer.data == expected_value