Skip to content
Snippets Groups Projects
Commit ce29a764 authored by Jan-Hendrik Willms's avatar Jan-Hendrik Willms
Browse files

fixes #3946

Closes #3946

Merge request studip/studip!2811
parent 6e403157
No related branches found
No related tags found
No related merge requests found
......@@ -190,7 +190,7 @@ class MyCoursesController extends AuthenticatedController
LEFT JOIN `mvv_lvgruppe` AS ml ON (mls.`lvgruppe_id` = ml.`lvgruppe_id`)
LEFT JOIN `mvv_lvgruppe_modulteil` AS mlm on(mls.`lvgruppe_id` = mlm.`lvgruppe_id`)
LEFT JOIN `mvv_modulteil` AS mmt ON (mlm.`modulteil_id` = mmt.`modulteil_id`)
LEFT JOIN `mvv_modul` AS mm ON (mmt.`modul_id` = mm.`modul_id`)";
LEFT JOIN `mvv_modul` AS mm ON (mmt.`modul_id` = mm.`modul_id` AND mm.`stat` = 'genehmigt')";
}
......
......@@ -788,7 +788,7 @@ class MyRealmModel
foreach ($sem_courses as $sem_key => $collection) {
$_tmp_courses[$sem_key] = [];
foreach ($collection as $course) {
$modules = Course::getMVVModulesForCourseId($course['seminar_id']);
$modules = Course::getMVVModulesForCourseId($course['seminar_id'], ['genehmigt']);
if ($modules) {
$modules = array_map(function (Modul $module) {
return $module->getDisplayName();
......
......@@ -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);
});
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment