From ada917d50acaa4381c73af4eb85d84120f417e6d Mon Sep 17 00:00:00 2001 From: skodak Date: Fri, 1 Jun 2007 15:13:36 +0000 Subject: [PATCH] fixed handling of grade items when deleting assignment --- mod/assignment/lib.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mod/assignment/lib.php b/mod/assignment/lib.php index 5fd12ed542..696f9732ea 100644 --- a/mod/assignment/lib.php +++ b/mod/assignment/lib.php @@ -384,6 +384,8 @@ class assignment_base { function delete_instance($assignment) { global $CFG; + $assignment->courseid = $assignment->course; + $result = true; if (! delete_records('assignment_submissions', 'assignment', $assignment->id)) { @@ -412,6 +414,8 @@ class assignment_base { require_once($CFG->libdir.'/filelib.php'); fulldelete($CFG->dataroot.'/'.$assignment->course.'/'.$CFG->moddata.'/assignment/'.$assignment->id); + assignment_base::delete_grade_item($assignment); + return $result; } @@ -532,6 +536,18 @@ class assignment_base { return $itemid; } + /** + * Delete associated grade item. + * Static method - do not override! + */ + function delete_grade_item($assignment) { + if ($items = grade_get_items($assignment->courseid, 'mod', 'assignment', $assignment->id)) { + foreach($items as $item) { + $item->delete(); + } + } + } + /** * Returns grade item for assignment. * Final static method - do not override! -- 2.39.5