From ffabce68ca9407a11d301497262e7ad2a149f73f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Philipp=20Sch=C3=BCttl=C3=B6ffel?=
 <schuettloeffel@zqs.uni-hannover.de>
Date: Tue, 26 Mar 2024 14:24:08 +0000
Subject: [PATCH] =?UTF-8?q?Resolve=20"Wiki:=20=C3=9Cbergeordnete=20Seite?=
 =?UTF-8?q?=20im=20Inhaltsverzeichnis=20geht=20bei=20Import=20verloren"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Closes #3900

Merge request studip/studip!2762
---
 app/controllers/course/wiki.php | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/app/controllers/course/wiki.php b/app/controllers/course/wiki.php
index 6393d1ca5cf..421617cc1aa 100644
--- a/app/controllers/course/wiki.php
+++ b/app/controllers/course/wiki.php
@@ -1062,6 +1062,7 @@ class Course_WikiController extends AuthenticatedController
             }
 
             $errors = [];
+            $new_ids = [];
             foreach ($selected_wiki_pages as $selected_page) {
                 if ($selected_page->isReadable()) {
                     $count = WikiPage::countBySql(
@@ -1074,6 +1075,7 @@ class Course_WikiController extends AuthenticatedController
                     if ($count === 0) {
                         $new_page = WikiPage::build([
                             'range_id' => $this->range->id,
+                            'parent_id'=> null,
                             'user_id'  => $selected_page->user_id,
                             'name'     => $selected_page->name,
                             'content'  => $selected_page->content,
@@ -1085,9 +1087,16 @@ class Course_WikiController extends AuthenticatedController
                                 htmlReady($new_page->name)
                             );
                         }
+                        $new_ids[$selected_page->id] = $new_page->id;
                     }
                 }
             }
+            foreach ($new_ids as $old_page_id => $new_page_id) {
+                $old_page = WikiPage::find($old_page_id);
+                $new_page = WikiPage::find($new_page_id);
+                $new_page->parent_id = $new_ids[$old_page->parent_id] ?? null;
+                $new_page->store();
+            }
             if ($errors) {
                 PageLayout::postError(
                     _('Die folgenden Fehler traten beim Import auf:'),
-- 
GitLab