diff --git a/openassessment/__init__.py b/openassessment/__init__.py index 6ae6ec99d7..6b3bf1c0ba 100644 --- a/openassessment/__init__.py +++ b/openassessment/__init__.py @@ -2,4 +2,4 @@ Initialization Information for Open Assessment Module """ -__version__ = '6.0.12' +__version__ = '6.0.13' diff --git a/openassessment/xblock/ui_mixins/mfe/assessment_serializers.py b/openassessment/xblock/ui_mixins/mfe/assessment_serializers.py index e7ed9aece0..e37bc07e84 100644 --- a/openassessment/xblock/ui_mixins/mfe/assessment_serializers.py +++ b/openassessment/xblock/ui_mixins/mfe/assessment_serializers.py @@ -169,9 +169,6 @@ def get_textResponses(self, instance): return [part["text"] for part in answer_text_parts] def get_uploadedFiles(self, instance): - if not instance["answer"].get("file_keys"): - return None - response = OraSubmissionAnswerFactory.parse_submission_raw_answer(instance['answer']) uploaded_files = [] diff --git a/openassessment/xblock/ui_mixins/mfe/ora_config_serializer.py b/openassessment/xblock/ui_mixins/mfe/ora_config_serializer.py index f68252b244..285b7eeda3 100644 --- a/openassessment/xblock/ui_mixins/mfe/ora_config_serializer.py +++ b/openassessment/xblock/ui_mixins/mfe/ora_config_serializer.py @@ -39,6 +39,7 @@ class FileResponseConfigSerializer(Serializer): allowedExtensions = CharListField(source="get_allowed_file_types_or_preset") blockedExtensions = CharListField(source="FILE_EXT_BLACK_LIST") fileTypeDescription = CharField(source="file_upload_type") + maxFileSize = IntegerField(default=524_288_000) # 500 MB. See AU-1602 def get_enabled(self, block): return block.file_upload_response is not None diff --git a/openassessment/xblock/ui_mixins/mfe/page_context_serializer.py b/openassessment/xblock/ui_mixins/mfe/page_context_serializer.py index 1c299b770e..b7eedb65f1 100644 --- a/openassessment/xblock/ui_mixins/mfe/page_context_serializer.py +++ b/openassessment/xblock/ui_mixins/mfe/page_context_serializer.py @@ -325,7 +325,7 @@ def get_response(self, instance): return None # Submission (draft OR completed) - elif requested_step == "submission": + if requested_step == "submission": learner_submission_data = instance.get_learner_submission_data() # Draft response @@ -336,25 +336,26 @@ def get_response(self, instance): return SubmissionSerializer(learner_submission_data).data # Student Training - return next example to practice or None - elif requested_step == "studentTraining": + if requested_step == "studentTraining": response = instance.student_training_data.example if response is None: return None + return AssessmentResponseSerializer(response).data # Peer - elif requested_step == "peer": + if requested_step == "peer": response = instance.peer_assessment_data().get_peer_submission() + return AssessmentResponseSerializer(response).data # Self / Done - Return your response to view / assess - elif requested_step in ("self", "done"): + if requested_step in ("self", "done"): learner_submission_data = instance.get_learner_submission_data() return SubmissionSerializer(learner_submission_data).data # Steps without a necessary response - elif requested_step in ("staff"): - response = None - - return AssessmentResponseSerializer(response).data + if requested_step in ("staff"): + return {} + return None def get_assessment(self, instance): """ diff --git a/openassessment/xblock/ui_mixins/mfe/test_assessment_serializers.py b/openassessment/xblock/ui_mixins/mfe/test_assessment_serializers.py index 81f1f14ee7..4e39240f5e 100644 --- a/openassessment/xblock/ui_mixins/mfe/test_assessment_serializers.py +++ b/openassessment/xblock/ui_mixins/mfe/test_assessment_serializers.py @@ -59,7 +59,7 @@ def test_response(self, xblock): # I get the appropriate response expected_response = { "textResponses": submission_text, - "uploadedFiles": None, + "uploadedFiles": [], "teamUploadedFiles": None, } self.assertDictEqual(expected_response, data) @@ -78,7 +78,7 @@ def test_files_empty(self, xblock): # I get the appropriate response expected_response = { "textResponses": submission_text, - "uploadedFiles": None, + "uploadedFiles": [], "teamUploadedFiles": None, } self.assertDictEqual(expected_response, data) diff --git a/openassessment/xblock/ui_mixins/mfe/test_page_context_serializer.py b/openassessment/xblock/ui_mixins/mfe/test_page_context_serializer.py index 931a44b6c6..daa71ded16 100644 --- a/openassessment/xblock/ui_mixins/mfe/test_page_context_serializer.py +++ b/openassessment/xblock/ui_mixins/mfe/test_page_context_serializer.py @@ -112,7 +112,7 @@ def test_student_training(self, xblock): # I get the appropriate response expected_response = { "textResponses": ["This is my answer."], - "uploadedFiles": None, + "uploadedFiles": [], "teamUploadedFiles": None, } self.assertDictEqual(expected_response, response_data) @@ -148,7 +148,7 @@ def test_peer_response(self, xblock, request_peer): # I get my current assessment, if I had one, and if I didn't, one is assigned to me expected_response = { "textResponses": other_text_responses, - "uploadedFiles": None, + "uploadedFiles": [], "teamUploadedFiles": None, } self.assertDictEqual(expected_response, response_data) @@ -240,7 +240,7 @@ def test_jump_to_peer_available(self, xblock): # Then I can continue to receive peer responses to grade expected_response = { "textResponses": other_text_responses, - "uploadedFiles": None, + "uploadedFiles": [], "teamUploadedFiles": None, } self.assertDictEqual(expected_response, response_data["response"]) diff --git a/openassessment/xblock/ui_mixins/mfe/test_serializers.py b/openassessment/xblock/ui_mixins/mfe/test_serializers.py index 163e370c08..2cebc9e63a 100644 --- a/openassessment/xblock/ui_mixins/mfe/test_serializers.py +++ b/openassessment/xblock/ui_mixins/mfe/test_serializers.py @@ -105,21 +105,15 @@ def test_file_response_config(self, xblock): file_response_config = submission_config["fileResponseConfig"] # Then I get the expected values - self.assertTrue(file_response_config["enabled"]) - self.assertEqual( - file_response_config["fileUploadLimit"], xblock.MAX_FILES_COUNT - ) - self.assertEqual( - file_response_config["fileTypeDescription"], - xblock.file_upload_type, - ) - self.assertEqual( - file_response_config["allowedExtensions"], - xblock.get_allowed_file_types_or_preset(), - ) - self.assertEqual( - file_response_config["blockedExtensions"], xblock.FILE_EXT_BLACK_LIST - ) + assert file_response_config == { + 'enabled': True, + 'required': False, + 'fileUploadLimit': xblock.MAX_FILES_COUNT, + 'fileTypeDescription': xblock.file_upload_type, + 'allowedExtensions': xblock.get_allowed_file_types_or_preset(), + 'blockedExtensions': xblock.FILE_EXT_BLACK_LIST, + 'maxFileSize': 524288000, + } @scenario("data/team_submission.xml") def test_team_ora_config(self, xblock): diff --git a/package.json b/package.json index 260dfe248d..31052c315a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "edx-ora2", - "version": "6.0.12", + "version": "6.0.13", "repository": "https://github.com/openedx/edx-ora2.git", "dependencies": { "@edx/frontend-build": "8.0.6",