diff options
| author | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2024-04-05 07:32:39 +0000 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2024-04-05 07:32:39 +0000 |
| commit | ce29a764567cfdd792e1fe7b5e0bfb06d2f278e3 (patch) | |
| tree | e91c5c198b31753d70a53dd56354f9ee6ecba437 /lib/models/Course.class.php | |
| parent | 6e4031571ca4ce1ed59bc1d936fa4c473375b8d1 (diff) | |
fixes #3946
Closes #3946
Merge request studip/studip!2811
Diffstat (limited to 'lib/models/Course.class.php')
| -rw-r--r-- | lib/models/Course.class.php | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/lib/models/Course.class.php b/lib/models/Course.class.php index 59f9b82..bfea7a0 100644 --- a/lib/models/Course.class.php +++ b/lib/models/Course.class.php @@ -306,19 +306,27 @@ class Course extends SimpleORMap implements Range, PrivacyObject, StudipItem, Fe /** * Returns the associated mvv modules for a given course id. * - * @param string $course_id + * @param string $course_id + * @param array|null $statusses Limit the results by a given module status * @return Modul[] */ - public static function getMVVModulesForCourseId(string $course_id): array + public static function getMVVModulesForCourseId(string $course_id, ?array $statusses = null): array { $query = "SELECT mvv_modul.* FROM mvv_lvgruppe_seminar - JOIN `mvv_lvgruppe` on(`mvv_lvgruppe_seminar`.`lvgruppe_id` = `mvv_lvgruppe`.`lvgruppe_id`) - JOIN `mvv_lvgruppe_modulteil` on(`mvv_lvgruppe_seminar`.`lvgruppe_id` = `mvv_lvgruppe_modulteil`.`lvgruppe_id`) - JOIN `mvv_modulteil` on(`mvv_lvgruppe_modulteil`.`modulteil_id` = `mvv_modulteil`.`modulteil_id`) - JOIN `mvv_modul` on(`mvv_modulteil`.`modul_id` = `mvv_modul`.`modul_id`) + JOIN `mvv_lvgruppe` ON (`mvv_lvgruppe_seminar`.`lvgruppe_id` = `mvv_lvgruppe`.`lvgruppe_id`) + JOIN `mvv_lvgruppe_modulteil` ON (`mvv_lvgruppe_seminar`.`lvgruppe_id` = `mvv_lvgruppe_modulteil`.`lvgruppe_id`) + JOIN `mvv_modulteil` ON (`mvv_lvgruppe_modulteil`.`modulteil_id` = `mvv_modulteil`.`modulteil_id`) + JOIN `mvv_modul` ON (`mvv_modulteil`.`modul_id` = `mvv_modul`.`modul_id`) WHERE seminar_id = ?"; - return DBManager::get()->fetchAll($query, [$course_id], function ($row) { + $parameters = [$course_id]; + + if ($statusses !== null) { + $query .= ' AND `mvv_modul`.`stat` IN (?)'; + $parameters[] = $statusses; + } + + return DBManager::get()->fetchAll($query, $parameters, function ($row) { return Modul::buildExisting($row); }); } |
