From a96e00212451c7a04520a76a867ce82eaf1af9c8 Mon Sep 17 00:00:00 2001
From: Alex Yeung <aydevworks@gmail.com>
Date: Tue, 21 Jan 2025 14:24:59 +0000
Subject: [PATCH] Fix extension not applied for hidden courses

---
 classes/extension/aws_queue_processor.php  | 2 +-
 classes/extension/extension.php            | 4 ++--
 classes/extension/sora_queue_processor.php | 1 +
 classes/manager.php                        | 4 +++-
 4 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/classes/extension/aws_queue_processor.php b/classes/extension/aws_queue_processor.php
index 43d1caf..e9341c5 100644
--- a/classes/extension/aws_queue_processor.php
+++ b/classes/extension/aws_queue_processor.php
@@ -186,7 +186,7 @@ public function execute(): void {
                         }
                         $this->process_message($data);
                         $this->save_message_record($message, $this->get_queue_name());
-                        $this->delete_message($message['ReceiptHandle']);
+//                        $this->delete_message($message['ReceiptHandle']);
                         $processedcount++;
                     } catch (\Exception $e) {
                         logger::log($e->getMessage(), null, static::class . ' Processing Error');
diff --git a/classes/extension/extension.php b/classes/extension/extension.php
index 7323dba..1b753f2 100644
--- a/classes/extension/extension.php
+++ b/classes/extension/extension.php
@@ -132,8 +132,8 @@ public function get_mappings_by_userid(int $userid): array {
         global $DB;
 
         // Find all enrolled courses for the student.
-        $courses = enrol_get_users_courses($userid, true);
-
+        $courses = enrol_get_users_courses($userid);
+        mtrace('courses: ' . var_export($courses, true));
         // Get courses that are in the current academic year.
         $courses = array_filter($courses, function($course) {
             return manager::get_manager()->is_current_academic_year_activity($course->id);
diff --git a/classes/extension/sora_queue_processor.php b/classes/extension/sora_queue_processor.php
index 727c75d..caedd4f 100644
--- a/classes/extension/sora_queue_processor.php
+++ b/classes/extension/sora_queue_processor.php
@@ -55,6 +55,7 @@ protected function process_message(array $messagebody): void {
 
         // Get all mappings for the student.
         $mappings = $sora->get_mappings_by_userid($sora->get_userid());
+        mtrace('Mappings: ' . var_export($mappings, true));
         $sora->process_extension($mappings);
     }
 
diff --git a/classes/manager.php b/classes/manager.php
index e83918b..d20b6e0 100644
--- a/classes/manager.php
+++ b/classes/manager.php
@@ -634,12 +634,14 @@ public function get_students_from_sits(\stdClass $componentgrade, bool $refresh
 
         $key = implode('_', [cachemanager::CACHE_AREA_STUDENTSPR, $componentgrade->mapcode, $componentgrade->mabseq]);
         if ($refresh) {
+            mtrace('cache clear');
             // Clear cache.
             cachemanager::purge_cache(cachemanager::CACHE_AREA_STUDENTSPR, $key);
         } else {
             // Try to get cache first.
             $students = cachemanager::get_cache(cachemanager::CACHE_AREA_STUDENTSPR, $key);
             if (!empty($students)) {
+                mtrace('cache hit');
                 return $students;
             }
         }
@@ -662,7 +664,7 @@ public function get_students_from_sits(\stdClass $componentgrade, bool $refresh
                 DAYSECS * 30
             );
         }
-
+        mtrace('cache miss');
         return $result;
     }