]> git.mjollnir.org Git - moodle.git/commitdiff
fixed handling of grade items when deleting assignment
authorskodak <skodak>
Fri, 1 Jun 2007 15:13:36 +0000 (15:13 +0000)
committerskodak <skodak>
Fri, 1 Jun 2007 15:13:36 +0000 (15:13 +0000)
mod/assignment/lib.php

index 5fd12ed542b070a4811e02ac9a0fa83f049e391e..696f9732ea4a676cd4b0d7b358cf7eb8b2b3eae0 100644 (file)
@@ -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!