From 863168b3fdfbad0419972d62b2d2613ada91958c Mon Sep 17 00:00:00 2001 From: adevezin Date: Mon, 7 Aug 2023 13:48:12 -0400 Subject: [PATCH] Show solution on submit --- swiftplugin/swiftplugin/static/js/src/swiftplugin.js | 7 +++++-- swiftplugin/swiftplugin/swiftplugin.py | 4 +++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/swiftplugin/swiftplugin/static/js/src/swiftplugin.js b/swiftplugin/swiftplugin/static/js/src/swiftplugin.js index b320655..34974ac 100644 --- a/swiftplugin/swiftplugin/static/js/src/swiftplugin.js +++ b/swiftplugin/swiftplugin/static/js/src/swiftplugin.js @@ -104,7 +104,7 @@ function SwiftPluginXBlock(runtime, element) { myCodeMirror = CodeMirror.fromTextArea(myTextArea, codemirror_config); myCodeMirror.setSize('100%'); if (response.user_code) { - myCodeMirror.setValue(response.user_code) + myCodeMirror.setValue(response.user_code) } else if (response.starter_code) { myCodeMirror.setValue(response.starter_code) } @@ -114,7 +114,6 @@ function SwiftPluginXBlock(runtime, element) { solutionCodeMirror = CodeMirror.fromTextArea(solutionTextArea, solutionmirror_config); solutionCodeMirror.setSize('100%'); if (response.has_solution_defined) { - solution_btn.hidden = false updateProblemSolution(response) } else { solution_btn.hidden = true @@ -147,6 +146,9 @@ function SwiftPluginXBlock(runtime, element) { } else { setOutput(response) } + if (response.problem_solution) { + updateProblemSolution(response) + } } function setError(error) { @@ -228,6 +230,7 @@ function SwiftPluginXBlock(runtime, element) { console.log('No problem solution') return } + solution_btn.hidden = false solutionCodeMirror.setValue(response.problem_solution) } diff --git a/swiftplugin/swiftplugin/swiftplugin.py b/swiftplugin/swiftplugin/swiftplugin.py index 1de0220..1dbf783 100644 --- a/swiftplugin/swiftplugin/swiftplugin.py +++ b/swiftplugin/swiftplugin/swiftplugin.py @@ -85,7 +85,6 @@ def student_view(self, context=None): frag.initialize_js('SwiftPluginXBlock') return frag - @XBlock.json_handler def get_button_handler(self, data, suffix=''): """ @@ -124,6 +123,9 @@ def get_button_handler(self, data, suffix=''): response['response'] = assignment_response is_final_attempt = assignment_response['finalAttempt'] success = assignment_response['success'] + grade_points = assignment_response['gradePoints'] + if 'solutionCode' in assignment_response: + response['problem_solution'] = assignment_response['solutionCode'] if success: self.runtime.publish(self, "grade", {'value': grade_points,