From ba27489569ab66269eb3fbc79faef9727fb9e019 Mon Sep 17 00:00:00 2001 From: Jake Dallimore Date: Fri, 9 Aug 2024 13:55:43 +0800 Subject: [PATCH] MDL-75947 ltiservice_gradebookservices: score->timestamp as dategraded If this is not passed in to grade_update(), then it's not passed on to update_raw_grade(), resulting in time() being used instead, which isn't correct. The grade timemodified value should be set to the timestamp provided by the tool in the score post JSON, not the time of the score post itself. Co-authored-by: Jayce Birrell --- lib/grade/grade_grade.php | 6 ++++++ .../classes/local/service/gradebookservices.php | 1 + 2 files changed, 7 insertions(+) diff --git a/lib/grade/grade_grade.php b/lib/grade/grade_grade.php index bd021092b00..41fbd24df19 100644 --- a/lib/grade/grade_grade.php +++ b/lib/grade/grade_grade.php @@ -221,6 +221,12 @@ class grade_grade extends grade_object { /** @var float $deductedmark mark deducted from final grade */ public float $deductedmark = 0; + /** + * Date when this grade was last graded. + * @var int $dategraded + */ + public $dategraded = null; + /** * Returns array of grades for given grade_item+users * diff --git a/mod/lti/service/gradebookservices/classes/local/service/gradebookservices.php b/mod/lti/service/gradebookservices/classes/local/service/gradebookservices.php index 47383c42dc4..d020a198708 100644 --- a/mod/lti/service/gradebookservices/classes/local/service/gradebookservices.php +++ b/mod/lti/service/gradebookservices/classes/local/service/gradebookservices.php @@ -541,6 +541,7 @@ class gradebookservices extends service_base { $grade->feedbackformat = $feedbackformat; $grade->feedback = $feedback; $grade->rawgrade = $finalgrade; + $grade->dategraded = $timemodified; $status = grade_update($source, $gradeitem->courseid, $gradeitem->itemtype, $gradeitem->itemmodule, $gradeitem->iteminstance, $gradeitem->itemnumber, $grade);