def set_grade(self, new_grade: float, user: User) -> None:
"""Set the grade to the new grade.
.. note:: This also passes back the grade to LTI if this is necessary
(see :py:func:`passback_grade`).
:param new_grade: The new grade to set
:param user: The user setting the new grade.
:returns: Nothing
"""
self._grade = new_grade
passback = self.assignment.should_passback
grade = self.grade
history = GradeHistory(
is_rubric=self._grade is None and grade is not None,
grade=-1 if grade is None else grade,
passed_back=False,
work=self,
user=user
)
db.session.add(history)
db.session.flush()
if passback:
psef.tasks.passback_grades([self.id])
评论列表
文章目录