From 625892fa1cb5cd226019a7353ab7b8e8635847e5 Mon Sep 17 00:00:00 2001
From: Rasmus Fuhse <rasmusfuhse@MBP-von-Rasmus.fritz.box>
Date: Thu, 20 Jan 2022 16:22:28 +0100
Subject: [PATCH] add copying of statusgroups

---
 controllers/copy.php | 14 +++++++++++++-
 plugin.manifest      |  4 ++--
 views/copy/info.php  | 42 ++++++++++++++++++++++++------------------
 3 files changed, 39 insertions(+), 21 deletions(-)

diff --git a/controllers/copy.php b/controllers/copy.php
index f60f238..b2b26e2 100755
--- a/controllers/copy.php
+++ b/controllers/copy.php
@@ -44,7 +44,7 @@ class CopyController extends PluginController
             $params = [
                 "semester_id", "dozent_id", "lock_copied_courses",
                 "invisible_copied_courses", "cycles", "resource_assignments",
-                "week_offset", "end_offset", "copy_tutors", "with_children",
+                "week_offset", "end_offset", "copy_tutors", "copy_statusgruppen", "with_children",
                 "contents_scm", "contents_documents"
             ];
             foreach ($params as $param) {
@@ -163,6 +163,18 @@ class CopyController extends PluginController
                             }
                         }
 
+                        //Statusgruppen
+                        if (Request::get("copy_statusgruppen")) {
+                            foreach ($oldcourse->statusgruppen as $statusgruppe) {
+                                $new_group = new Statusgruppen();
+                                $new_group->setData($statusgruppe->toArray());
+                                $new_group->setId($new_group->getNewId());
+                                $new_group['range_id'] = $newcourse->getId();
+                                $new_group['mkdate'] = time();
+                                $new_group->store();
+                            }
+                        }
+
                         //Studienbereiche
                         $statement = DBManager::get()->prepare("
                             INSERT IGNORE INTO seminar_sem_tree
diff --git a/plugin.manifest b/plugin.manifest
index ca8d2f2..c82045d 100755
--- a/plugin.manifest
+++ b/plugin.manifest
@@ -1,6 +1,6 @@
 pluginname=CourseCopy
 pluginclassname=CourseCopy
-version=1.8.4
+version=1.9
 origin=data-quest
 studipMinVersion=4.0
-studipMaxVersion=5.0.99
+studipMaxVersion=5.1.99
diff --git a/views/copy/info.php b/views/copy/info.php
index 178d660..6454943 100755
--- a/views/copy/info.php
+++ b/views/copy/info.php
@@ -34,30 +34,36 @@
                 echo $qs->render()
                 ?>
 
-            <label>
-                <? endif ?>
-                <input type="checkbox" name="copy_tutors" value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_COPY_TUTORS ? " checked" : "" ?>>
-                <?= _('Tutor/-innen mit übernehmen') ?>
             </label>
+        <? endif ?>
 
-            <label>
-                <input type="checkbox" name="lock_copied_courses" value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_LOCK_COPIED_COURSES ? " checked" : "" ?>>
-                <?= _('Kopierte Veranstaltungen sperren') ?>
-            </label>
+        <label>
+            <input type="checkbox" name="copy_tutors" value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_COPY_TUTORS ? " checked" : "" ?>>
+            <?= _('Tutor/-innen mit übernehmen') ?>
+        </label>
 
-            <label>
-                <input type="checkbox" name="invisible_copied_courses" value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_INVISIBLE_COPIED_COURSES ? " checked" : "" ?>>
-                <?= _('Kopierte Veranstaltungen unsichtbar schalten') ?>
-            </label>
+        <label>
+            <input type="checkbox" name="copy_statusgruppen" value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_COPY_STATUSGRUPPEN ? " checked" : "" ?>>
+            <?= _('Teilnehmergruppen mit übernehmen') ?>
+        </label>
+
+        <label>
+            <input type="checkbox" name="lock_copied_courses" value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_LOCK_COPIED_COURSES ? " checked" : "" ?>>
+            <?= _('Kopierte Veranstaltungen sperren') ?>
+        </label>
 
-            <? if ($have_coursegroups) : ?>
-                <label>
-                    <input type="checkbox" name="with_children" value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_WITH_CHILDREN ? " checked" : "" ?>>
-                    <?= _("Veranstaltungsgruppen inklusive Kindveranstaltungen kopieren") ?>
-                </label>
-            <? endif ?>
+        <label>
+            <input type="checkbox" name="invisible_copied_courses" value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_INVISIBLE_COPIED_COURSES ? " checked" : "" ?>>
+            <?= _('Kopierte Veranstaltungen unsichtbar schalten') ?>
         </label>
 
+        <? if ($have_coursegroups) : ?>
+            <label>
+                <input type="checkbox" name="with_children" value="1"<?= UserConfig::get($GLOBALS['user']->id)->COURSECOPY_SETTINGS_WITH_CHILDREN ? " checked" : "" ?>>
+                <?= _("Veranstaltungsgruppen inklusive Kindveranstaltungen kopieren") ?>
+            </label>
+        <? endif ?>
+
     </fieldset>
 
     <? if (is_object($single_course)) : ?>
-- 
GitLab