aboutsummaryrefslogtreecommitdiff
path: root/app/controllers
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/course/details.php51
-rw-r--r--app/controllers/lvgruppen/lvgruppen.php4
-rw-r--r--app/controllers/search/module.php11
-rw-r--r--app/controllers/search/studiengaenge.php10
-rw-r--r--app/controllers/studiengaenge/shared_version.php3
-rw-r--r--app/controllers/studiengaenge/versionen.php1
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',