Skip to content
Snippets Groups Projects
Commit 2defd2ad authored by Moritz Strohm's avatar Moritz Strohm
Browse files

fixed errors related to the removal of start_time and duration_time in courses, fixes #4769

Closes #4769

Merge request studip/studip!3557
parent f7e119d1
No related branches found
No related tags found
No related merge requests found
......@@ -42,7 +42,7 @@ class NewsRangesSearch extends SearchType
LEFT JOIN `semester_data` USING (`semester_id`)
WHERE s.`name` LIKE :input
GROUP BY s.`Seminar_id`
ORDER BY s.`start_time` DESC
ORDER BY `semester_data`.`beginn` DESC
) AS course_select";
} elseif ($GLOBALS['perm']->have_perm('admin')) {
$sem_inst = Config::get()->ALLOW_ADMIN_RELATED_INST ? 'si' : 's';
......@@ -58,7 +58,7 @@ class NewsRangesSearch extends SearchType
WHERE {$sem_inst}.`institut_id` IN (:institutes)
AND s.`name` LIKE :input
GROUP BY s.`Seminar_id`
ORDER BY s.`start_time` DESC
ORDER BY `semester_data`.`beginn` DESC
) AS course_select";
$parameters[':institutes'] = $this->getAdminInstitutes($user);
......@@ -68,14 +68,14 @@ class NewsRangesSearch extends SearchType
SELECT CONCAT(s.`Seminar_id`, '__seminar') AS `range_id`,
TRIM(CONCAT({$number_sql} s.`name`, {$semester_sql})) AS `name`
FROM `seminare` AS s
JOIN `seminar_user` AS su USING (`Seminar_id`)
JOIN `seminar_user` AS su USING (`Seminar_id`)
LEFT JOIN `semester_courses` AS sc ON s.`Seminar_id` = sc.`course_id`
LEFT JOIN `semester_data` USING (`semester_id`)
WHERE s.`name` LIKE :input
AND su.`user_id` = :user_id
AND su.`status` IN ('tutor', 'dozent')
GROUP BY s.`Seminar_id`
ORDER BY s.`start_time` DESC
ORDER BY `semester_data`.`start_time` DESC
) AS course_select ";
$parameters[':user_id'] = $user->id;
}
......@@ -209,8 +209,8 @@ class NewsRangesSearch extends SearchType
{
$query = "SELECT DISTINCT i.`Institut_id`
FROM `user_inst` AS ui
JOIN `Institute` AS i
ON ui.`Institut_id` IN (i.`Institut_id`, i.`fakultaets_id`)
JOIN `Institute` AS i
ON ui.`Institut_id` IN (i.`Institut_id`, i.`fakultaets_id`)
WHERE ui.`user_id` = :user_id
AND ui.`inst_perms` = 'admin'";
return DBManager::get()->fetchFirst($query, [
......
......@@ -74,9 +74,9 @@ class SeminarSearch extends SearchType
WHERE s.Seminar_id IN (?)
GROUP BY s.Seminar_id";
if (Config::get()->IMPORTANT_SEMNUMBER) {
$query .= " ORDER BY IFNULL(MAX(sem1.beginn), s.start_time) DESC, s.VeranstaltungsNummer, s.Name";
$query .= " ORDER BY sem1.`beginn` DESC, s.`VeranstaltungsNummer`, s.`Name`";
} else {
$query .= " ORDER BY IFNULL(MAX(sem1.beginn), s.start_time) DESC, s.Name";
$query .= " ORDER BY sem1.`beginn` DESC, s.`Name`";
}
$statement = DBManager::get()->prepare($query);
$statement->execute([
......
......@@ -432,25 +432,19 @@ class Lvgruppe extends ModuleManagementModelTreeItem
. 'LEFT JOIN mvv_lvgruppe_seminar mls USING(seminar_id) '
. 'LEFT JOIN semester_courses ON (semester_courses.course_id = sem.Seminar_id) '
. 'WHERE mls.lvgruppe_id = :id '
. 'AND ((sem.start_time <= :semester_beginn '
. 'AND semester_courses.semester_id = :semester_id) '
. 'OR (sem.start_time BETWEEN :semester_beginn AND :semester_ende) '
. 'OR (sem.start_time <= :semester_beginn AND semester_courses.semester_id IS NULL)) ';
. 'AND (semester_courses.semester_id = :semester_id '
. 'OR semester_courses.semester_id IS NULL) ';
if ($only_visible === false) {
$stmt = DBManager::get()->prepare($sql);
$stmt->execute([
':id' => $this->getId(),
':semester_id' => $semester->semester_id,
':semester_beginn' => $semester->beginn,
':semester_ende' => $semester->ende
':semester_id' => $semester->semester_id
]);
} else if ($only_visible === true) {
$stmt = DBManager::get()->prepare($sql . ' AND sem.visible = 1 ');
$stmt->execute([
':id' => $this->getId(),
':semester_id' => $semester->semester_id,
':semester_beginn' => $semester->beginn,
':semester_ende' => $semester->ende
':semester_id' => $semester->semester_id
]);
} else {
$user_perm = $GLOBALS['perm']->get_perm($only_visible);
......@@ -458,9 +452,7 @@ class Lvgruppe extends ModuleManagementModelTreeItem
$stmt = DBManager::get()->prepare($sql);
$stmt->execute([
':id' => $this->getId(),
':semester_id' => $semester->semester_id,
':semester_beginn' => $semester->beginn,
':semester_ende' => $semester->ende
':semester_id' => $semester->semester_id
]);
} else if ($user_perm == 'admin') {
$perm_institute_ids = [];
......@@ -473,8 +465,6 @@ class Lvgruppe extends ModuleManagementModelTreeItem
$stmt->execute([
':id' => $this->getId(),
':semester_id' => $semester->semester_id,
':semester_beginn' => $semester->beginn,
':semester_ende' => $semester->ende,
':perm_institutes' => $perm_institute_ids
]);
} else {
......@@ -485,16 +475,12 @@ class Lvgruppe extends ModuleManagementModelTreeItem
. 'LEFT JOIN semester_courses ON (semester_courses.course_id = sem.Seminar_id) '
. 'INNER JOIN seminar_user USING(seminar_id) '
. 'WHERE mls.lvgruppe_id = :id '
. 'AND ((sem.start_time <= :semester_beginn '
. 'AND semester_courses.semester_id = :semester_id) '
. 'OR (sem.start_time BETWEEN :semester_beginn AND :semester_ende) '
. 'OR (sem.start_time <= :semester_beginn AND semester_courses.semester_id IS NULL)) '
. 'AND (semester_courses.semester_id = :semester_id '
. 'OR semester_courses.semester_id IS NULL) '
. 'AND (sem.visible = 1 OR (sem.visible = 0 AND seminar_user.user_id = :user_id))');
$stmt->execute([
':id' => $this->getId(),
':semester_id' => $semester->semester_id,
':semester_beginn' => $semester->beginn,
':semester_ende' => $semester->ende,
':user_id' => $only_visible
]);
}
......
......@@ -25,8 +25,6 @@
* @property string|null $sonstiges database column
* @property int $lesezugriff database column
* @property int $schreibzugriff database column
* @property int|null $start_time database column
* @property int|null $duration_time database column
* @property string|null $art database column
* @property string|null $teilnehmer database column
* @property string|null $vorrausetzungen database column
......
......@@ -168,7 +168,6 @@ class MvvOverlappingSelection extends SimpleORMap
AND ((`start_sem`.`beginn` < :sem_end OR ISNULL(`start_sem`.`beginn`))
AND (`end_sem`.`ende` > :sem_start OR ISNULL(`end_sem`.`ende`)))
AND `seminare`.`status` IN (:typ)
AND `seminare`.`start_time` <= :sem_end
AND (`semester_courses`.`semester_id` IS NULL OR `semester_courses`.`semester_id` = :semester_id)
) AS `sembase` ON (`sembase`.`seminar_id` = `cbase`.`seminar_id`)
INNER JOIN `seminar_cycle_dates` AS `ccomp`
......@@ -194,7 +193,8 @@ class MvvOverlappingSelection extends SimpleORMap
FROM `mvv_stgteilabschnitt`
INNER JOIN `mvv_stgteilabschnitt_modul` USING (`abschnitt_id`)
INNER JOIN `mvv_modul` USING (`modul_id`)
INNER JOIN `mvv_modulteil` USING (`modul_id`)
INNER JOIN `mv" .
"v_modulteil` USING (`modul_id`)
INNER JOIN `mvv_lvgruppe_modulteil` USING (`modulteil_id`)
INNER JOIN `mvv_lvgruppe_seminar` USING (`lvgruppe_id`)
INNER JOIN `seminare` USING (`seminar_id`)
......@@ -213,7 +213,6 @@ class MvvOverlappingSelection extends SimpleORMap
AND ((`start_sem`.`beginn` < :sem_end OR ISNULL(`start_sem`.`beginn`))
AND (`end_sem`.`ende` > :sem_start OR ISNULL(`end_sem`.`ende`)))
AND `seminare`.`status` IN (:typ)
AND `seminare`.`start_time` <= :sem_end
AND (`semester_courses`.`semester_id` IS NULL OR `semester_courses`.`semester_id` = :semester_id)
) AS `semcomp` ON (`semcomp`.`seminar_id` = `ccomp`.`seminar_id`)
INNER JOIN `mvv_modulteil_stgteilabschnitt` AS `mms1`
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment