diff options
| author | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2023-06-09 08:00:50 +0000 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2023-06-09 08:00:50 +0000 |
| commit | ec43f9bf751f22d391fb3a5014905667ba00e158 (patch) | |
| tree | ca8fd49823c2d209c7c44e1409dad3efd4aedf7b /lib/models/Course.class.php | |
| parent | 7e01741c2c83c50ffa828535b7f4cfb24ef39a24 (diff) | |
allow grouping by mvv module, fixes #1498
Closes #1498
Merge request studip/studip!950
Diffstat (limited to 'lib/models/Course.class.php')
| -rw-r--r-- | lib/models/Course.class.php | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/lib/models/Course.class.php b/lib/models/Course.class.php index 2d48549..86e9a47 100644 --- a/lib/models/Course.class.php +++ b/lib/models/Course.class.php @@ -288,6 +288,27 @@ class Course extends SimpleORMap implements Range, PrivacyObject, StudipItem, Fe return null; } + + /** + * Returns the associated mvv modules for a given course id. + * + * @param string $course_id + * @return Modul[] + */ + public static function getMVVModulesForCourseId(string $course_id): 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`) + WHERE seminar_id = ?"; + return DBManager::get()->fetchAll($query, [$course_id], function ($row) { + return Modul::buildExisting($row); + }); + } + public function getEnd_Time() { return $this->duration_time == -1 ? -1 : $this->start_time + $this->duration_time; @@ -1030,7 +1051,6 @@ class Course extends SimpleORMap implements Range, PrivacyObject, StudipItem, Fe return array_filter($this->tools->getStudipModule()); } - /** * @see Range::__toString() */ |
