Skip to content
This repository was archived by the owner on Jun 7, 2023. It is now read-only.

Commit 805966b

Browse files
committed
Clean up logging of non-graded events in timedExam
1 parent 0664c3c commit 805966b

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

bookserver/routers/rslogging.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ async def log_book_event(
129129
idx = await create_useinfo_entry(useinfo_entry)
130130
response_dict = dict(timestamp=entry.timestamp)
131131
if entry.event in EVENT2TABLE:
132+
create_answer_table = True
132133
rcd = runestone_component_dict[EVENT2TABLE[entry.event]]
133134
if entry.event == "unittest":
134135
# info we need looks like: "act":"percent:100.0:passed:2:failed:0"
@@ -144,23 +145,22 @@ async def log_book_event(
144145
entry.correct = ppf[1] == "100.0"
145146
entry.percent = float(ppf[1])
146147
elif entry.event == "timedExam":
147-
if entry.act == "start":
148-
entry.correct = 0
149-
entry.incorrect = 0
150-
entry.skipped = 0
151-
entry.time_taken = 0
148+
if entry.act in ["start", "pause", "resume"]:
149+
# We don't need these in the answer table but want the event to be timedExam.
150+
create_answer_table = False
152151
elif entry.event == "webwork" or entry.event == "hparsonsAnswer":
153152
entry.answer = json.loads(useinfo_dict["answer"])
154153

155-
valid_table = rcd.validator.from_orm(entry) # type: ignore
156-
# Do server-side grading if needed.
157-
if feedback := await is_server_feedback(entry.div_id, user.course_name):
158-
# The grader should also be defined if there's feedback.
159-
assert rcd.grader
160-
response_dict.update(await rcd.grader(valid_table, feedback))
154+
if create_answer_table:
155+
valid_table = rcd.validator.from_orm(entry) # type: ignore
156+
# Do server-side grading if needed.
157+
if feedback := await is_server_feedback(entry.div_id, user.course_name):
158+
# The grader should also be defined if there's feedback.
159+
assert rcd.grader
160+
response_dict.update(await rcd.grader(valid_table, feedback))
161161

162-
ans_idx = await create_answer_table_entry(valid_table, entry.event)
163-
rslogger.debug(ans_idx)
162+
ans_idx = await create_answer_table_entry(valid_table, entry.event)
163+
rslogger.debug(ans_idx)
164164

165165
if idx:
166166
return make_json_response(status=status.HTTP_201_CREATED, detail=response_dict)

0 commit comments

Comments
 (0)