From 484f7233527212effe345a5c8ffcc14c418fc9c1 Mon Sep 17 00:00:00 2001
From: moodler <moodler>
Date: Thu, 5 Feb 2004 05:10:39 +0000
Subject: [PATCH] Upgrade logs for assignments

---
 mod/assignment/db/mysql.php     | 14 ++++++++++++++
 mod/assignment/db/postgres7.php | 14 ++++++++++++++
 mod/assignment/submissions.php  |  4 ++--
 mod/assignment/upload.php       |  6 +++++-
 mod/assignment/version.php      |  2 +-
 5 files changed, 36 insertions(+), 4 deletions(-)

diff --git a/mod/assignment/db/mysql.php b/mod/assignment/db/mysql.php
index 62267350f2..f579beed47 100644
--- a/mod/assignment/db/mysql.php
+++ b/mod/assignment/db/mysql.php
@@ -92,6 +92,20 @@ function assignment_upgrade($oldversion) {
         execute_sql("ALTER TABLE `assignment_submissions` CHANGE `user` `userid` INT(10) UNSIGNED DEFAULT '0' NOT NULL ");
     }
 
+    if ($oldversion < 2004020500) {
+        if ($assignments = get_records("assignment")) {
+            foreach ($assignments as $assignment) {
+                if ($cm = get_coursemodule_from_instance("assignment", $assignment->id, $assignment->course)) {
+                    execute_sql("UPDATE {$CFG->prefix}log SET cmid = '$cm->id' 
+                                 WHERE module = 'assignment' AND url = 'submissions.php?id=$assignment->id'");
+
+                    execute_sql("UPDATE {$CFG->prefix}log SET cmid = '$cm->id' 
+                                 WHERE module = 'assignment' AND url = 'view.php?a=$assignment->id'");
+                }
+            }
+        }
+    }
+
     return true;
 }
 
diff --git a/mod/assignment/db/postgres7.php b/mod/assignment/db/postgres7.php
index 7fe658374d..122ff021f7 100644
--- a/mod/assignment/db/postgres7.php
+++ b/mod/assignment/db/postgres7.php
@@ -88,6 +88,20 @@ function assignment_upgrade($oldversion) {
         table_column("assignment", "", "resubmit", "integer", "2", "unsigned", "0", "", "format");
     }
 
+    if ($oldversion < 2004020500) {
+        if ($assignments = get_records("assignment")) {
+            foreach ($assignments as $assignment) {
+                if ($cm = get_coursemodule_from_instance("assignment", $assignment->id, $assignment->course)) {
+                    execute_sql("UPDATE {$CFG->prefix}log SET cmid = '$cm->id' 
+                                 WHERE module = 'assignment' AND url = 'submissions.php?id=$assignment->id'");
+
+                    execute_sql("UPDATE {$CFG->prefix}log SET cmid = '$cm->id' 
+                                 WHERE module = 'assignment' AND url = 'view.php?a=$assignment->id'");
+                }
+            }
+        }
+    }
+
     return true;
 }
 
diff --git a/mod/assignment/submissions.php b/mod/assignment/submissions.php
index 40db547fba..b7267248d0 100644
--- a/mod/assignment/submissions.php
+++ b/mod/assignment/submissions.php
@@ -121,10 +121,10 @@
             }
         }
         $submissions = assignment_get_all_submissions($assignment,$sort, $dir);
-        add_to_log($course->id, "assignment", "update grades", "submissions.php?id=$assignment->id", "$count users");
+        add_to_log($course->id, "assignment", "update grades", "submissions.php?id=$assignment->id", "$count users", $cm->id);
         notify(get_string("feedbackupdated", "assignment", $count));
     } else {
-        add_to_log($course->id, "assignment", "view submissions", "submissions.php?id=$assignment->id", "$assignment->id");
+        add_to_log($course->id, "assignment", "view submissions", "submissions.php?id=$assignment->id", "$assignment->id", $cm->id);
     }
 
     // Submission sorting
diff --git a/mod/assignment/upload.php b/mod/assignment/upload.php
index fa0276f442..83d61b8393 100644
--- a/mod/assignment/upload.php
+++ b/mod/assignment/upload.php
@@ -17,9 +17,13 @@
         error("Course is misconfigured");
     }
 
+    if (! $cm = get_coursemodule_from_instance("assignment", $assignment->id, $course->id)) {
+        error("Course Module ID was incorrect");
+    }
+
     require_login($course->id);
 
-    add_to_log($course->id, "assignment", "upload", "view.php?a=$assignment->id", "$assignment->id");
+    add_to_log($course->id, "assignment", "upload", "view.php?a=$assignment->id", "$assignment->id", $cm->id);
 
     if ($course->category) {
         $navigation = "<A HREF=\"../../course/view.php?id=$course->id\">$course->shortname</A> ->";
diff --git a/mod/assignment/version.php b/mod/assignment/version.php
index 660a96ab37..b36114e597 100644
--- a/mod/assignment/version.php
+++ b/mod/assignment/version.php
@@ -5,7 +5,7 @@
 //  This fragment is called by /admin/index.php
 ////////////////////////////////////////////////////////////////////////////////
 
-$module->version  = 2004013101;
+$module->version  = 2004020500;
 $module->requires = 2004013101;  // Requires this Moodle version
 $module->cron     = 60;
 
-- 
2.39.5