diff options
Diffstat (limited to 'app/controllers')
| -rw-r--r-- | app/controllers/course/details.php | 51 | ||||
| -rw-r--r-- | app/controllers/lvgruppen/lvgruppen.php | 4 | ||||
| -rw-r--r-- | app/controllers/search/module.php | 11 | ||||
| -rw-r--r-- | app/controllers/search/studiengaenge.php | 10 | ||||
| -rw-r--r-- | app/controllers/studiengaenge/shared_version.php | 3 | ||||
| -rw-r--r-- | app/controllers/studiengaenge/versionen.php | 1 |
6 files changed, 43 insertions, 37 deletions
diff --git a/app/controllers/course/details.php b/app/controllers/course/details.php index 969c34d..2d90e27 100644 --- a/app/controllers/course/details.php +++ b/app/controllers/course/details.php @@ -107,8 +107,8 @@ class Course_DetailsController extends AuthenticatedController if (!$GLOBALS['MVV_MODUL']['STATUS']['values'][$modul->stat]['public']) { return false; } - $modul_start = Semester::find($modul->start)->beginn ?: 0; - $modul_end = $modul->end ? Semester::find($modul->end)->ende : PHP_INT_MAX; + $modul_start = $modul->start_semester->beginn ?? 0; + $modul_end = $modul->end_semester->ende ?? PHP_INT_MAX; return ($modul_start <= $course_end && $modul_end >= $course_start); }); @@ -118,49 +118,56 @@ class Course_DetailsController extends AuthenticatedController }); $trail_classes = ['Modulteil', 'StgteilabschnittModul', 'StgteilAbschnitt', 'StgteilVersion']; - $mvv_object_pathes = MvvCourse::get($this->course->getId())->getTrails($trail_classes); - if ($mvv_object_pathes) { + $mvv_object_paths = MvvCourse::get($this->course->getId())->getTrails($trail_classes); + if ($mvv_object_paths) { if (Config::get()->COURSE_SEM_TREE_DISPLAY) { $this->mvv_tree = []; - foreach ($mvv_object_pathes as $mvv_object_path) { - // show only complete pathes - if (count($mvv_object_path) == 4) { - // flatten the pathes to a linked list - $stg = reset($mvv_object_path); + foreach ($mvv_object_paths as $mvv_object_path) { + // show only complete paths + if (count($mvv_object_path) === 4) { + $mvv_object_path['StgteilabschnittModul']->modul->setReplaceDfAbschnitt($mvv_object_path['StgteilAbschnitt']); + $mvv_object_path['Modulteil']->setReplaceDfAbschnitt($mvv_object_path['StgteilAbschnitt']); + // flatten the paths to a linked list $parent_id = 'root'; foreach ($mvv_object_path as $mvv_object) { + $tree_id = $mvv_object->id; $mvv_object_id = $mvv_object instanceof StgteilabschnittModul ? $mvv_object->modul_id : $mvv_object->id; - $this->mvv_tree[$parent_id][$mvv_object_id] = - ['id' => $mvv_object_id, - 'name' => $mvv_object->getDisplayName(), - 'class' => get_class($mvv_object)]; - $parent_id = $mvv_object_id; + $this->mvv_tree[$parent_id][$tree_id] = + [ + 'id' => $mvv_object_id, + 'name' => $mvv_object->getDisplayName(), + 'class' => get_class($mvv_object), + 'tree_id' => $tree_id, + ]; + $parent_id = $tree_id; } } } if (count($this->mvv_tree)) { // add the root node $this->mvv_tree['start'][] = [ - 'id' => 'root', - 'name' => Config::get()->UNI_NAME_CLEAN, - 'class' => '' + 'id' => 'root', + 'name' => Config::get()->UNI_NAME_CLEAN, + 'class' => '', + 'tree_id' => 'root' ]; } } else { - foreach ($mvv_object_pathes as $mvv_object_path) { - // show only complete pathes - if (count($mvv_object_path) == 4) { + foreach ($mvv_object_paths as $mvv_object_path) { + // show only complete paths + if (count($mvv_object_path) === 4) { $mvv_object_names = []; - $modul_id = ''; + $mvv_object_path['StgteilabschnittModul']->modul->setReplaceDfAbschnitt($mvv_object_path['StgteilAbschnitt']); + $mvv_object_path['Modulteil']->setReplaceDfAbschnitt($mvv_object_path['StgteilAbschnitt']); foreach ($mvv_object_path as $mvv_object) { if ($mvv_object instanceof StgteilabschnittModul) { $modul_id = $mvv_object->modul_id; } $mvv_object_names[] = $mvv_object->getDisplayName(); } - $this->mvv_pathes[] = [$modul_id => $mvv_object_names]; + $this->mvv_paths[] = [$modul_id => $mvv_object_names]; } } } diff --git a/app/controllers/lvgruppen/lvgruppen.php b/app/controllers/lvgruppen/lvgruppen.php index ae12161..95fc6c0 100644 --- a/app/controllers/lvgruppen/lvgruppen.php +++ b/app/controllers/lvgruppen/lvgruppen.php @@ -176,7 +176,7 @@ class Lvgruppen_LvgruppenController extends MVVController $this->trail_classes = [ 'Modulteil', - 'Modul', + 'StgteilabschnittModul', 'StgteilAbschnitt', 'StgteilVersion', 'Studiengang', @@ -269,7 +269,7 @@ class Lvgruppen_LvgruppenController extends MVVController $search_result = $this->getSearchResult('Lvgruppe'); - if (count($this->filter['mvv_modul_inst.institut_id'])) { + if (!empty($this->filter['mvv_modul_inst.institut_id'])) { $filter = array_merge( [ 'mvv_lvgruppe.lvgruppe_id' => $search_result, diff --git a/app/controllers/search/module.php b/app/controllers/search/module.php index b624f72..d8b6b54 100644 --- a/app/controllers/search/module.php +++ b/app/controllers/search/module.php @@ -115,14 +115,11 @@ class Search_ModuleController extends MVVController foreach ($this->search_result['Modul'] as $i => $mod_id) { $modul = Modul::find($mod_id); - $start_sem = Semester::find($modul->start); - $end_sem = Semester::find($modul->end); + $start_sem_begin = $modul->start_semester->beginn ?? 0; + $end_sem_end = $modul->end_semester->end ?? PHP_INT_MAX; if ( - $start_sem->beginn > $this->selected_semester->beginn - || ( - isset($end_sem) - && $this->selected_semester->ende > $end_sem->ende - ) + $start_sem_begin > $this->selected_semester->beginn + || $this->selected_semester->ende > $end_sem_end ) { unset($this->search_result['Modul'][$i]); } diff --git a/app/controllers/search/studiengaenge.php b/app/controllers/search/studiengaenge.php index 6882f6f..d2e07a7 100644 --- a/app/controllers/search/studiengaenge.php +++ b/app/controllers/search/studiengaenge.php @@ -268,12 +268,12 @@ class Search_StudiengaengeController extends MVVController if (!$abschnitt_modul->modul || !$abschnitt_modul->modul->hasPublicStatus()) { continue; } - - $start_sem = Semester::find($abschnitt_modul->modul->start); - $end_sem = Semester::find($abschnitt_modul->modul->end); + $abschnitt_modul->modul->setReplaceDfAbschnitt($abschnitt); + $start_sem_begin = $abschnitt_modul->modul->start_semester->beginn ?? 0; + $end_sem_end = $abschnitt_modul->modul->end_semester->ende ?? PHP_INT_MAX; if ( - ($start_sem && $start_sem->beginn > $this->active_sem->beginn) - || ($end_sem && $this->active_sem->ende > $end_sem->ende)) { + ($start_sem_begin > $this->active_sem->beginn) + || ($this->active_sem->ende > $end_sem_end)) { continue; } diff --git a/app/controllers/studiengaenge/shared_version.php b/app/controllers/studiengaenge/shared_version.php index abede2f..7dc3d40 100644 --- a/app/controllers/studiengaenge/shared_version.php +++ b/app/controllers/studiengaenge/shared_version.php @@ -557,6 +557,7 @@ abstract class SharedVersionController extends MVVController { $this->assignment = StgteilabschnittModul::find($abschnitt_modul_id); $this->modul = $this->assignment->modul; + $this->modul->setReplaceDfAbschnitt($this->assignment->abschnitt); $this->abschnitt_id = $this->assignment->abschnitt_id; if ($this->assignment) { if (Request::isXhr()) { @@ -598,7 +599,7 @@ abstract class SharedVersionController extends MVVController foreach ($this->assignment->datafields as $data_field) { $tdf = $data_field->getTypedDatafield(); $tdf->setValueFromSubmit($data_field_values[$data_field->datafield_id]); - if ($tdf->isValid() && $tdf->store()) { + if ($tdf->isValid() && $tdf->store() !== false) { $data_fields_updated = true; } else { $invalid_data_fields[] = $tdf->getName(); diff --git a/app/controllers/studiengaenge/versionen.php b/app/controllers/studiengaenge/versionen.php index 807ab81..f759651 100644 --- a/app/controllers/studiengaenge/versionen.php +++ b/app/controllers/studiengaenge/versionen.php @@ -18,6 +18,7 @@ class Studiengaenge_VersionenController extends SharedVersionController Navigation::activateItem($this->me . '/studiengaenge/versionen'); $this->filter = $this->sessGet('filter', []); $this->action = $action; + $this->version_id = null; $this->chooser_filter = $this->sessGet( 'chooser_filter', |
