From ef4513e3bc2ca807d54e8e37038bc092d0411ddc Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Tue, 29 Sep 2020 13:18:22 +0200 Subject: [PATCH] Cron: Generate certificates per URL BT#17625 --- main/cron/add_gradebook_certificates.php | 80 ++++++++++++++---------- 1 file changed, 46 insertions(+), 34 deletions(-) diff --git a/main/cron/add_gradebook_certificates.php b/main/cron/add_gradebook_certificates.php index 25667c8cfa..190663a342 100644 --- a/main/cron/add_gradebook_certificates.php +++ b/main/cron/add_gradebook_certificates.php @@ -2,6 +2,8 @@ /* For licensing terms, see /license.txt */ +exit; + /** * Adds gradebook certificates to gradebook_certificate table from users * who have achieved the requirements but have not reviewed them yet. @@ -38,41 +40,51 @@ if ($categoriesAndUsers = getAllCategoriesAndUsers()) { } } -// Optional set the url id -// $_configuration['access_url'] = 7; - -$sql = "SELECT * FROM gradebook_category - WHERE generate_certificates = 1 AND parent_id = 0"; -$result = Database::query($sql); -$categories = Database::store_result($result); -$total = count($categories); -$counter = 1; -foreach ($categories as $category) { - $courseCode = $category['course_code']; - $sessionId = (int) $category['session_id']; - $filter = STUDENT; - if (!empty($sessionId)) { - $filter = 0; - } - $users = CourseManager::get_user_list_from_course_code( - $courseCode, - $sessionId, - null, - null, - $filter - ); +$urlList = [1]; +foreach ($urlList as $urlId) { + $_configuration['access_url'] = $urlId; + $sql = "SELECT gc.* + FROM gradebook_category gc + INNER JOIN course c + ON (c.code = gc.course_code) + INNER JOIN access_url_rel_course a + ON (a.c_id = c.id) + WHERE + generate_certificates = 1 AND + parent_id = 0 AND + access_url_id = $urlId + "; + $result = Database::query($sql); + $categories = Database::store_result($result); + $total = count($categories); + $counter = 1; + foreach ($categories as $category) { + $courseCode = $category['course_code']; + $sessionId = (int) $category['session_id']; + $filter = STUDENT; + if (!empty($sessionId)) { + $filter = 0; + } + $users = CourseManager::get_user_list_from_course_code( + $courseCode, + $sessionId, + null, + null, + $filter + ); - $_SESSION['id_session'] = $sessionId; + $_SESSION['id_session'] = $sessionId; - echo "Category: ".$category['id']." Course: ".$courseCode." Session: $sessionId - Processing: $counter/".$total.PHP_EOL; - foreach ($users as $user) { - echo "Generating certificate user #".$user['user_id'].PHP_EOL; - Category::generateUserCertificate( - $category['id'], - $user['user_id'], - false, - true - ); + echo "Category: ".$category['id']." Course: ".$courseCode." Session: $sessionId - Processing: $counter/".$total.PHP_EOL; + foreach ($users as $user) { + echo "Generating certificate user #".$user['user_id'].PHP_EOL; + Category::generateUserCertificate( + $category['id'], + $user['user_id'], + false, + true + ); + } + $counter++; } - $counter++; }