summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederick Yin <fred.yin@sjtu.edu.cn>2021-10-11 20:50:43 +0800
committerFrederick Yin <fred.yin@sjtu.edu.cn>2021-10-11 20:51:25 +0800
commit1397f8e79c7ae1f0914acc46c713cc69381351db (patch)
treecd76ca3e438bad2a8a6ac2ba2664c9facfddf4c9
parent519b486f53032e8e41fe32ef550cd4ea94f2d7d8 (diff)
Output canvas-style feedback
Even the typo ("Genral") is preserved.
-rw-r--r--leningrade.py30
-rw-r--r--worker/CanvasWorker.py11
2 files changed, 33 insertions, 8 deletions
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")
diff --git a/worker/CanvasWorker.py b/worker/CanvasWorker.py
index 3ff60e3..0f785ca 100644
--- a/worker/CanvasWorker.py
+++ b/worker/CanvasWorker.py
@@ -1,6 +1,6 @@
-from canvasapi import Canvas
+# from canvasapi import Canvas
from util import first, Logger
-import json
+# import json
class CanvasWorker():
@@ -17,10 +17,12 @@ class CanvasWorker():
logger=Logger()):
self.args = args
self.rubric = rubric
+ """
self.canvas = Canvas("https://umjicanvas.com/", canvasToken)
self.course = self.canvas.get_course(courseID)
self.users = self.course.get_users()
self.assignments = self.course.get_assignments()
+ """
self.logger = logger
self.scores = {}
if totalScores is None:
@@ -59,7 +61,7 @@ class CanvasWorker():
'text_comment': '\n'.join(comment)
},
}
-
+ """
def grade2Canvas(self):
hwNum = self.args.hw
assignment = first(self.assignments,
@@ -80,4 +82,5 @@ class CanvasWorker():
open(fileName, "w"),
ensure_ascii=False,
indent=4)
- self.logger.debug(f"score dump to {fileName} succeed") \ No newline at end of file
+ self.logger.debug(f"score dump to {fileName} succeed")
+ """ \ No newline at end of file