From 6a50c2e14a423647ec04e2f8877d17014ea33bf1 Mon Sep 17 00:00:00 2001
From: Marcus Eibrink-Lunzenauer <lunzenauer@elan-ev.de>
Date: Tue, 14 Nov 2023 12:40:04 +0100
Subject: [PATCH] Hide not yet active task groups for solvers.

---
 lib/classes/JsonApi/Routes/Courseware/TasksIndex.php | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/classes/JsonApi/Routes/Courseware/TasksIndex.php b/lib/classes/JsonApi/Routes/Courseware/TasksIndex.php
index f0b2ce9a53a..26a021c9682 100644
--- a/lib/classes/JsonApi/Routes/Courseware/TasksIndex.php
+++ b/lib/classes/JsonApi/Routes/Courseware/TasksIndex.php
@@ -77,9 +77,10 @@ class TasksIndex extends JsonApiController
         }
     }
 
-    private function findTasksByCourse(\Course $course): \SimpleCollection
+    private function findTasksByCourse(\Course $course, bool $showNotYetActive = true): \SimpleCollection
     {
-        $taskGroups = TaskGroup::findBySQL('seminar_id = ?', [$course->getId()]);
+        $whereClause = $showNotYetActive ? 'seminar_id = ?' : 'start_date <= UNIX_TIMESTAMP() AND seminar_id = ?';
+        $taskGroups = TaskGroup::findBySQL($whereClause, [$course->getId()]);
 
         $tasks = [];
         foreach ($taskGroups as $taskGroup) {
@@ -98,7 +99,7 @@ class TasksIndex extends JsonApiController
             })
             ->pluck('id');
 
-        return $this->findTasksByCourse($course)->filter(function ($task) use ($user, $groupIds) {
+        return $this->findTasksByCourse($course, false)->filter(function ($task) use ($user, $groupIds) {
             return ('autor' === $task['solver_type'] && $task['solver_id'] === $user->getId()) ||
                 ('group' === $task['solver_type'] && in_array($task['solver_id'], $groupIds));
         });
-- 
GitLab