diff options
| author | Peter Thienel <thienel@data-quest.de> | 2026-03-13 14:22:33 +0000 |
|---|---|---|
| committer | Jan-Hendrik Willms <tleilax+studip@gmail.com> | 2026-03-13 15:22:33 +0100 |
| commit | 5239fe23a8b6b3e266dc09fd25d8c805f60d78a3 (patch) | |
| tree | 8648e1e05775791bce7d165d6fff5703c4e1ab59 /lib | |
| parent | 7c500597a37db933c9188d67bf8a9d4dbd13e0b7 (diff) | |
Resolve "MVV: Modul-Kurzdarstellung im VVZ"
Closes #6252
Merge request studip/studip!4745
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/classes/coursewizardsteps/LVGroupsWizardStep.php | 4 | ||||
| -rw-r--r-- | lib/models/DatafieldEntryModel.php | 7 | ||||
| -rw-r--r-- | lib/models/ModuleManagementModelTreeItem.php | 24 | ||||
| -rw-r--r-- | lib/models/Modulteil.php | 8 | ||||
| -rw-r--r-- | lib/models/StgteilabschnittModul.php | 3 |
5 files changed, 26 insertions, 20 deletions
diff --git a/lib/classes/coursewizardsteps/LVGroupsWizardStep.php b/lib/classes/coursewizardsteps/LVGroupsWizardStep.php index 99e5084..f5fca4d 100644 --- a/lib/classes/coursewizardsteps/LVGroupsWizardStep.php +++ b/lib/classes/coursewizardsteps/LVGroupsWizardStep.php @@ -261,8 +261,8 @@ class LVGroupsWizardStep implements CourseWizardStep if (!in_array($modul->stat, $status_modul)) { return false; } - $modul_start = Semester::find($modul->start)->beginn ?: 0; - $modul_end = Semester::find($modul->end)->ende ?: PHP_INT_MAX; + $modul_start = Semester::find($modul->start)->beginn ?? 0; + $modul_end = Semester::find($modul->end)->ende ?? PHP_INT_MAX; return ($modul_start <= $course_end && $modul_end >= $course_start); }); diff --git a/lib/models/DatafieldEntryModel.php b/lib/models/DatafieldEntryModel.php index c19d9f9..c2ad800 100644 --- a/lib/models/DatafieldEntryModel.php +++ b/lib/models/DatafieldEntryModel.php @@ -90,15 +90,12 @@ class DatafieldEntryModel extends SimpleORMap implements PrivacyObject $range_id = $model->user_id; $sec_range_id = $model->institut_id; } elseif ($model instanceof ModulDeskriptor) { - $params[':institution_ids'] = ''; - if (!empty($model->modul->responsible_institute->institut_id)) { - $params[':institution_ids'] = [$model->modul->responsible_institute->institut_id]; - } + $params[':institution_ids'] = [$model->modul->responsible_institute->institut_id ?? null]; $object_class = $model->getVariant(); $object_type = 'moduldeskriptor'; $range_id = $model->deskriptor_id; } elseif ($model instanceof ModulteilDeskriptor) { - $params[':institution_ids'] = [$model->modulteil->modul->responsible_institute->institut_id]; + $params[':institution_ids'] = [$model->modulteil->modul->responsible_institute->institut_id ?? null]; $object_class = $model->getVariant(); $object_type = 'modulteildeskriptor'; $range_id = $model->deskriptor_id; diff --git a/lib/models/ModuleManagementModelTreeItem.php b/lib/models/ModuleManagementModelTreeItem.php index 48c3b1b..8e18108 100644 --- a/lib/models/ModuleManagementModelTreeItem.php +++ b/lib/models/ModuleManagementModelTreeItem.php @@ -136,19 +136,27 @@ abstract class ModuleManagementModelTreeItem extends ModuleManagementModel imple * @param string $delimiter A string used as the "glue". * @param int $display_options Display options set by constants defined * in class ModuleManagementModel. - * @return type + * @return array */ public static function getPathes($trails, $delimiter = ' ยท ') { - $pathes = []; + $paths = []; foreach ($trails as $trail) { - $pathes[] = join($delimiter, array_map( - function($a) { - return $a->getDisplayName(); - }, $trail)); + $abschnitt = null; + $names = []; + foreach ($trail as $a) { + if ($a instanceof StgteilAbschnitt) { + $abschnitt = $a; + } + if ($abschnitt && ($a instanceof Modul || $a instanceof Modulteil)) { + $a->setReplaceDfAbschnitt($abschnitt); + } + $names[] = $a->getDisplayName(); + } + $paths[] = implode($delimiter, $names); } - sort($pathes, SORT_LOCALE_STRING); - return $pathes; + sort($paths, SORT_LOCALE_STRING); + return $paths; } /** diff --git a/lib/models/Modulteil.php b/lib/models/Modulteil.php index 07ba2cc..6a0fa86 100644 --- a/lib/models/Modulteil.php +++ b/lib/models/Modulteil.php @@ -183,7 +183,7 @@ class Modulteil extends ModuleManagementModelTreeItem $replacements = [ $this->nummer, $GLOBALS['MVV_MODULTEIL']['NUM_BEZEICHNUNG']['values'][$this->num_bezeichnung]['name'] ?? '', - trim($deskriptor->bezeichnung), + trim($deskriptor->getReplacedValue('bezeichnung')), $GLOBALS['MVV_MODULTEIL']['LERNLEHRFORM']['values'][$this->lernlehrform]['name'] ?? '' ]; return self::formatDisplayName($template, $placeholders, $replacements); @@ -197,9 +197,9 @@ class Modulteil extends ModuleManagementModelTreeItem $name .= $this->nummer . ': '; } $name .= $GLOBALS['MVV_MODULTEIL']['LERNLEHRFORM']['values'][$this->lernlehrform]['name'] ?? ''; - if (strlen(trim($deskriptor->bezeichnung))) { - $name .= $name == '' ? $deskriptor->bezeichnung - : ' (' . $deskriptor->bezeichnung . ')'; + if (strlen(trim($deskriptor->getReplacedValue('bezeichnung')))) { + $name .= $name == '' ? $deskriptor->getReplacedValue('bezeichnung') + : ' (' . $deskriptor->getReplacedValue('bezeichnung') . ')'; } return trim($name); } diff --git a/lib/models/StgteilabschnittModul.php b/lib/models/StgteilabschnittModul.php index aa0eba7..ae8a5a4 100644 --- a/lib/models/StgteilabschnittModul.php +++ b/lib/models/StgteilabschnittModul.php @@ -94,9 +94,10 @@ class StgteilabschnittModul extends ModuleManagementModelTreeItem 'module_name', 'semester_validity' ]; + $this->modul->setReplaceDfAbschnitt($this->abschnitt); $replacements = [ trim($this->modulcode) ?: trim($this->modul->code), - trim($this->bezeichnung) ?: trim($this->modul->getDeskriptor()->bezeichnung), + trim($this->bezeichnung) ?: trim($this->modul->getDeskriptor()->bezeichnung), $this->modul->getDisplaySemesterValidity() ]; return self::formatDisplayName($template, $placeholders, $replacements); |
