Browse Source

Delete content from track_e_complete when deleting LP item BT#15020

Julio 6 years ago
parent
commit
7496ea7654
2 changed files with 26 additions and 6 deletions
  1. 24 4
      main/inc/lib/events.lib.php
  2. 2 2
      main/inc/lib/tracking.lib.php

+ 24 - 4
main/inc/lib/events.lib.php

@@ -1144,6 +1144,9 @@ class Event
      * @param int   $lp_id
      * @param array $course
      * @param int   $session_id
+     *
+     * @return bool
+     *
      */
     public static function delete_student_lp_events(
         $user_id,
@@ -1156,7 +1159,14 @@ class Event
         $lpInteraction = Database::get_course_table(TABLE_LP_IV_INTERACTION);
         $lpObjective = Database::get_course_table(TABLE_LP_IV_OBJECTIVE);
 
+        if (empty($course)) {
+            return false;
+        }
+
         $course_id = $course['real_id'];
+        $user_id = (int) $user_id;
+        $lp_id = (int) $lp_id;
+        $session_id = (int) $session_id;
 
         if (empty($course_id)) {
             $course_id = api_get_course_int_id();
@@ -1172,10 +1182,6 @@ class Event
             TABLE_STATISTIC_TRACK_E_ATTEMPT_RECORDING
         );
 
-        $user_id = (int) $user_id;
-        $lp_id = (int) $lp_id;
-        $session_id = (int) $session_id;
-
         //Make sure we have the exact lp_view_id
         $sql = "SELECT id FROM $lp_view_table
                 WHERE
@@ -1202,6 +1208,18 @@ class Event
             Database::query($sql);
         }
 
+        if (api_get_configuration_value('lp_minimum_time')) {
+            $sql = "DELETE FROM track_e_access_complete
+                    WHERE 
+                        tool = 'learnpath' AND 
+                        c_id = $course_id AND 
+                        tool_id = $lp_id AND
+                        user_id = $user_id AND
+                        session_id = $session_id
+                    ";
+            Database::query($sql);
+        }
+
         $sql = "DELETE FROM $lp_view_table
                 WHERE
                     c_id = $course_id AND
@@ -1247,6 +1265,8 @@ class Event
             $course_id,
             $session_id
         );
+
+        return true;
     }
 
     /**

+ 2 - 2
main/inc/lib/tracking.lib.php

@@ -6841,7 +6841,7 @@ class Tracking
                     c_id = $courseId AND
                     login_as = 0
                 ORDER BY date_reg ASC
-                LIMIT 0,1";
+                LIMIT 1";
         $rs = Database::query($sql);
 
         $firstConnection = '';
@@ -6861,7 +6861,7 @@ class Tracking
                     c_id = $courseId AND
                     login_as = 0
                 ORDER BY date_reg DESC
-                LIMIT 0,1";
+                LIMIT 1";
         $rs = Database::query($sql);
         $lastConnection = '';
         if (Database::num_rows($rs) > 0) {