From 1397f8e79c7ae1f0914acc46c713cc69381351db Mon Sep 17 00:00:00 2001 From: Frederick Yin Date: Mon, 11 Oct 2021 20:50:43 +0800 Subject: Output canvas-style feedback Even the typo ("Genral") is preserved. --- leningrade.py | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) (limited to 'leningrade.py') diff --git a/leningrade.py b/leningrade.py index 0644abe..7eda9a8 100644 --- a/leningrade.py +++ b/leningrade.py @@ -1,5 +1,5 @@ import argparse -from worker import GitWorker, GiteaWorker, JOJWorker +from worker import GitWorker, GiteaWorker, JOJWorker, CanvasWorker from problem_info import problem_info from config import * @@ -52,18 +52,40 @@ JOJ_INFO = { "problemInfo": problem_info(JOJ_HOMEWORK_ID), } +indvScores = {} +groupScores = {} +jojScores = {} + # individual if not cli_args.no_individual: indvScores = gitWorker.checkIndv() - print(indvScores) # group if not cli_args.no_group: groupScores = gitWorker.checkGroup() tmpScores = giteaWorker.checkReview() for key in groupScores.keys(): groupScores[key] = {**groupScores.get(key, {}), **tmpScores.get(key, {})} - print(groupScores) # JOJ (This will consume a lot of time when the code is in MATLAB) if not cli_args.no_joj: jojScores = jojWorker.checkGroupJOJ(JOJ_INFO) - print(jojScores) + +# initialize a CanvasWorker instance so that we can output grades +# the way they do it on Canvas +member_names = [member[1] for member in HGROUP_MEMBERS] +canvasWorker = CanvasWorker( + args, + RUBRIC, + None, + None, + member_names, + indvScores, + groupScores, + jojScores, +) +scoreInfo = canvasWorker.scores +for member in member_names: + print(f"===== {member} =====") + data = canvasWorker.generateHomeworkData(scoreInfo[member]) + print("Grade: " + str(data["submission"]["posted_grade"])) + print(data["comment"]["text_comment"]) + print("\n") -- cgit v1.2.3