Explorar o código

Fix session-course visibility and price configuration - refs #7370

Imanol Losada %!s(int64=10) %!d(string=hai) anos
pai
achega
62f33385a5

+ 4 - 4
plugin/buycourses/database.php

@@ -31,7 +31,7 @@ $tableSession = Database::get_main_table(TABLE_MAIN_SESSION);
 $sql = "SELECT id, name, date_start, date_end FROM $tableSession";
 $res = Database::query($sql);
 while ($row = Database::fetch_assoc($res)) {
-    $presql = "INSERT INTO $table (session_id, name, date_start, date_end, visible)
+    $presql = "INSERT INTO $table (id, name, date_start, date_end, visible)
     VALUES ('" . $row['id'] . "','" . $row['name'] . "','" . $row['date_start'] . "','" . $row['date_end'] . "','NO')";
     Database::query($presql);
 }
@@ -59,7 +59,7 @@ while ($row = Database::fetch_assoc($res)) {
 $table = Database::get_main_table(TABLE_BUY_SESSION_COURSE);
 $sql = "CREATE TABLE IF NOT EXISTS $table (
 	id INT unsigned NOT NULL auto_increment PRIMARY KEY,
-    id_session SMALLINT(5) unsigned DEFAULT '0',
+    session_id SMALLINT(5) unsigned DEFAULT '0',
     course_code VARCHAR(40),
     nbr_users SMALLINT(5) unsigned DEFAULT '0',
     sync int)";
@@ -69,8 +69,8 @@ $tableSessionCourse = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
 $sql = "SELECT * FROM $tableSessionCourse";
 $res = Database::query($sql);
 while ($row = Database::fetch_assoc($res)) {
-    $presql = "INSERT INTO $table (id_session, course_code, nbr_users)
-    VALUES ('" . $row['id_session'] . "','" . $row['course_code'] . "','" . $row['nbr_users'] . "')";
+    $presql = "INSERT INTO $table (session_id, c_id, nbr_users)
+    VALUES ('" . $row['session_id'] . "','" . $row['c_id'] . "','" . $row['nbr_users'] . "')";
     Database::query($presql);
 }
 

+ 10 - 9
plugin/buycourses/js/buycourses.js

@@ -32,17 +32,18 @@ $(document).ready(function () {
     });
 
     $(".save").click(function () {
-        var visible = $(this).parent().parent().prev().prev().children().attr("checked");
-        var price = $(this).parent().parent().prev().children().attr("value");
+        var currentRow = $(this).closest("tr");
+        var courseOrSessionObject ={
+            tab: "save_mod",
+            visible: currentRow.find("[name='visible']").is(':checked') ? 1 : 0,
+            price: currentRow.find("[name='price']").val()
+        };
+
         var course_id = $(this).attr('id');
-        var courseOrSession = $(this).parent().parent()[0].attributes[0].value;
-        if (courseOrSession.indexOf("session") > -1) {
-            courseOrSession = "session_id";
-        } else {
-            courseOrSession = "course_id";
-        }
-        var courseOrSessionObject = {tab: "save_mod", visible: visible, price: price};
+        var courseOrSession = ($(this).closest("td").attr('id')).indexOf("session") > -1 ? "session_id" : "course_id";
+
         courseOrSessionObject[courseOrSession] = course_id;
+
         $.post("function.php", courseOrSessionObject,
             function (data) {
                 if (data.status == "false") {

+ 5 - 5
plugin/buycourses/src/buy_course.lib.php

@@ -25,14 +25,14 @@ function sync()
     $sql = "SELECT session_id, c_id, nbr_users FROM $tableSessionRelCourse";
     $res = Database::query($sql);
     while ($row = Database::fetch_assoc($res)) {
-        $sql = "SELECT 1 FROM $tableBuySessionRelCourse WHERE id_session=" . $row['session_id'];
+        $sql = "SELECT 1 FROM $tableBuySessionRelCourse WHERE session_id=" . $row['session_id'];
         $result = Database::query($sql);
         if (Database::affected_rows($result) > 0) {
-            $sql = "UPDATE $tableBuySessionRelCourse SET sync = 1 WHERE id_session=" . $row['session_id'];
+            $sql = "UPDATE $tableBuySessionRelCourse SET sync = 1 WHERE session_id=" . $row['session_id'];
             Database::query($sql);
         } else {
             $courseCode = api_get_course_info_by_id($row['c_id'])['code'];
-            $sql = "INSERT INTO $tableBuySessionRelCourse (id_session, course_code, nbr_users, sync)
+            $sql = "INSERT INTO $tableBuySessionRelCourse (session_id, course_code, nbr_users, sync)
             VALUES (" . $row['session_id'] . ", '" . $courseCode . "', " . $row['nbr_users'] . ", 1);";
             Database::query($sql);
         }
@@ -49,9 +49,9 @@ function sync()
     $sql = "SELECT id, code, title FROM $tableCourse";
     $res = Database::query($sql);
     while ($row = Database::fetch_assoc($res)) {
-        $sql = "SELECT id_session FROM $tableBuySessionRelCourse
+        $sql = "SELECT session_id FROM $tableBuySessionRelCourse
         WHERE course_code = '" . $row['code'] . "' LIMIT 1";
-        $courseIdSession = Database::fetch_assoc(Database::query($sql))['id_session'];
+        $courseIdSession = Database::fetch_assoc(Database::query($sql))['session_id'];
         if (!is_numeric($courseIdSession)) {
             $courseIdSession = 0;
         }

+ 1 - 1
plugin/buycourses/src/function.php

@@ -442,7 +442,7 @@ if ($_REQUEST['tab'] == 'save_mod') {
         $tableField = 'session_id';
     }
 
-    $visible = (isset($_REQUEST['visible'])) ? 1 : 0;
+    $visible = intval($_REQUEST['visible']);
     $price = Database::escape_string($_REQUEST['price']);
 
     $sql = "UPDATE $tableBuy