From 382cfd5bbe19abd89805ab48287e0c8d425ac080 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arne=20Schr=C3=B6der=2C=20M=2E=20A=2E?= Date: Fri, 4 Jul 2025 11:32:39 +0000 Subject: Resolve "Erweiterung und Optimierung der von der ILIAS-Schnittstelle angelegten Strukturkategorien" Closes #4270 Merge request studip/studip!4215 --- app/controllers/admin/ilias_interface.php | 2 + app/controllers/course/ilias_interface.php | 6 +- app/views/admin/ilias_interface/edit_content.php | 4 + db/migrations/6.1.7_step_4270.php | 43 +++++++++ lib/ilias_interface/ConnectedIlias.php | 110 +++++++++++++++++++---- lib/ilias_interface/IliasModule.php | 2 +- lib/ilias_interface/IliasObjectConnections.php | 53 ++++++++--- 7 files changed, 187 insertions(+), 33 deletions(-) create mode 100644 db/migrations/6.1.7_step_4270.php diff --git a/app/controllers/admin/ilias_interface.php b/app/controllers/admin/ilias_interface.php index 5abd6b9..860fd99 100644 --- a/app/controllers/admin/ilias_interface.php +++ b/app/controllers/admin/ilias_interface.php @@ -152,6 +152,7 @@ class Admin_IliasInterfaceController extends AuthenticatedController 'category_create_on_add_module' => false, 'category_to_desktop' => false, 'cat_semester' => '', + 'cat_faculty' => '', 'course_semester' => '', 'course_veranstaltungsnummer' => false, 'workgroup_category_name' => '', @@ -365,6 +366,7 @@ class Admin_IliasInterfaceController extends AuthenticatedController if (Request::getInstance()->offsetExists('ilias_cat_semester')) { $this->ilias_configs[$index]['cat_semester'] = Request::get('ilias_cat_semester'); } + $this->ilias_configs[$index]['cat_faculty'] = Request::get('ilias_cat_faculty'); if (Request::getInstance()->offsetExists('ilias_course_semester')) { $this->ilias_configs[$index]['course_semester'] = Request::get('ilias_course_semester'); } diff --git a/app/controllers/course/ilias_interface.php b/app/controllers/course/ilias_interface.php index 13307bf..64d6f6c 100644 --- a/app/controllers/course/ilias_interface.php +++ b/app/controllers/course/ilias_interface.php @@ -364,7 +364,7 @@ class Course_IliasInterfaceController extends AuthenticatedController if (Request::get('cmd') === 'assign_course') { $crs_id = IliasObjectConnections::getConnectionModuleId($this->seminar_id, 'crs', $this->ilias_index); if (Request::get('ilias_course_id') && !$crs_id) { - IliasObjectConnections::setConnection($this->seminar_id, Request::get('ilias_course_id'), 'crs', $this->ilias_index); + IliasObjectConnections::setConnection($this->seminar_id, Request::get('ilias_course_id'), 'crs', $this->ilias_index, 'course_twin', '', 'course'); PageLayout::postInfo(_('Kurs wurde zugeordnet.')); } $this->redirect('course/ilias_interface'); @@ -383,7 +383,7 @@ class Course_IliasInterfaceController extends AuthenticatedController if (Request::get('cmd') === 'assign_course') { $crs_id = IliasObjectConnections::getConnectionModuleId($this->seminar_id, 'crs', $this->ilias_index); if (Request::get('ilias_course_id') && !$crs_id) { - IliasObjectConnections::setConnection($this->seminar_id, Request::get('ilias_course_id'), 'crs', $this->ilias_index); + IliasObjectConnections::setConnection($this->seminar_id, Request::get('ilias_course_id'), 'crs', $this->ilias_index, 'course_twin', '', 'course'); PageLayout::postInfo(_('Kurs wurde zugeordnet.')); } $this->redirect('course/ilias_interface'); @@ -483,7 +483,7 @@ class Course_IliasInterfaceController extends AuthenticatedController )); } elseif ($group_id = $this->ilias->soap_client->addGroup($group_data, $course_id)) { // create new group - IliasObjectConnections::setConnection($group->getId(), $group_id, 'group', $this->ilias_index); + IliasObjectConnections::setConnection($group->getId(), $group_id, 'group', $this->ilias_index, 'statusgroup', $this->seminar_id, 'course'); // add members $member_count = 0; foreach ($group->members as $member) { diff --git a/app/views/admin/ilias_interface/edit_content.php b/app/views/admin/ilias_interface/edit_content.php index 48eaad4..5cd2b89 100644 --- a/app/views/admin/ilias_interface/edit_content.php +++ b/app/views/admin/ilias_interface/edit_content.php @@ -92,6 +92,10 @@ +