Răsfoiți Sursa

Improve Tool Work Part#2 ADD COLUMN user_id in table student publication and set old courses with new field

Carlos Vargas 15 ani în urmă
părinte
comite
ad90478a46

+ 1 - 0
main/inc/lib/add_course.lib.inc.php

@@ -850,6 +850,7 @@ function update_Db_course($courseDbName, $language = null)
 		qualificator_id INT UNSIGNED NOT NULL DEFAULT 0,
 		weight float(6,2) UNSIGNED NOT NULL default 0,
 		session_id INT UNSIGNED NOT NULL default 0,
+		user_id INTEGER  NOT NULL,
 		PRIMARY KEY (id)
 		)" . $charset_clause;
 	Database::query($sql);

+ 2 - 1
main/install/migrate-db-1.8.6.2-1.8.7-pre.sql

@@ -128,4 +128,5 @@ ALTER TABLE thematic_advance ADD INDEX (thematic_id);
 INSERT INTO course_setting (variable,value,category) VALUES ('display_info_advance_inside_homecourse',1,'thematic_advance');
 INSERT INTO tool(name, link, image, visibility, admin, address, added_tool, target, category) VALUES ('course_progress','course_progress/index.php','course_progress.gif',0,'0','squaregrey.gif',0,'_self','authoring');
 ALTER TABLE lp ADD prerequisite int unsigned NOT NULL DEFAULT 0;
-ALTER TABLE student_publication MODIFY COLUMN description TEXT DEFAULT NULL;
+ALTER TABLE student_publication MODIFY COLUMN description TEXT DEFAULT NULL;
+ALTER TABLE student_publication ADD COLUMN user_id INTEGER  NOT NULL AFTER session_id;

+ 22 - 1
main/install/update-db-1.8.6.2-1.8.7.inc.php

@@ -347,8 +347,29 @@ if (defined('SYSTEM_INSTALLATION')) {
                             error_log('Error in '.$query.': '.Database::error());
                         }
                     }
+                    $t_student_publication = $row_course['db_name'].".student_publication";
+                    $t_item_property = $row_course['db_name'].".item_property";
                     
-
+                    if ($singleDbForm) {
+                        $t_student_publication = "$prefix{$row_course['db_name']}_student_publication";
+                        $t_item_property = "$prefix{$row_course['db_name']}_item_property";
+                    }                   
+                    $sql_insert_user = "SELECT ref, insert_user_id FROM $t_item_property WHERE tool='work'";
+                    
+                    $rs_insert_user = Database::query($sql_insert_user);
+                    
+                    if ($rs_insert_user === false) {
+				    	error_log('Could not query insert_user_id table: '.Database::error());
+					} else {
+						if (Database::num_rows($rs_insert_user) > 0) {
+							while ($row_ids = Database::fetch_array($rs_insert_user)) {
+								$user_id = $row_ids['insert_user_id'];
+								$ref = $row_ids['ref'];
+								$sql_upd = "UPDATE $t_student_publication SET user_id='$user_id' WHERE id='$ref'";
+								Database::query($sql_upd);
+							}
+						}
+					}
                 }
             }
         }

+ 2 - 2
main/work/work.lib.php

@@ -1442,9 +1442,9 @@ function get_list_users_without_publication($task_id) {
 	}
 
 	if (!empty($session_id)){
-    	$sql_users = "SELECT cu.id_user, u.lastname, u.firstname, u.email FROM $session_course_rel_user AS cu, $table_user AS u WHERE cu.status!=1 and cu.course_code='".api_get_course_id()."' AND u.user_id=cu.id_user and cu.id_session='".$session_id."'";
+    	$sql_users = "SELECT cu.id_user, u.lastname, u.firstname, u.email FROM $session_course_rel_user AS cu, $table_user AS u WHERE u.status!=1 and cu.course_code='".api_get_course_id()."' AND u.user_id=cu.id_user and cu.id_session='".$session_id."'";
 	} else {
-		$sql_users = "SELECT cu.user_id, u.lastname, u.firstname, u.email FROM $table_course_user AS cu, $table_user AS u WHERE cu.status!=1 and cu.course_code='".api_get_course_id()."' AND u.user_id=cu.user_id";
+		$sql_users = "SELECT cu.user_id, u.lastname, u.firstname, u.email FROM $table_course_user AS cu, $table_user AS u WHERE u.status!=1 and cu.course_code='".api_get_course_id()."' AND u.user_id=cu.user_id";
 	}
 	
 	$result_users = Database::query($sql_users);

+ 2 - 1
main/work/work.php

@@ -558,7 +558,8 @@ if (!empty($_REQUEST['new_dir'])) {
 										   qualificator_id	= '',
 										   date_of_qualification	= '0000-00-00 00:00:00',
 										   weight   = '".Database::escape_string($_POST['weight'])."',
-										   session_id   = ".intval($id_session);
+										   session_id   = '".intval($id_session)."',
+										   user_id = '".$user_id."'";
 
 			Database::query($sql_add_publication);