aboutsummaryrefslogtreecommitdiff
path: root/lib/modules
diff options
context:
space:
mode:
authorRasmus Fuhse <fuhse@data-quest.de>2025-01-10 12:13:24 +0000
committerRasmus Fuhse <fuhse@data-quest.de>2025-01-10 12:13:24 +0000
commit39745c9aa8bb099e8bda1f4d775ed229dbe97be4 (patch)
treea2a96deecf48e62d995507c5c8b39eea9ae9293d /lib/modules
parent03e8e1d8f9100cf9bfcb111b63ac4077f510a026 (diff)
Resolve "Studiengruppen erweitern" - Hauptbronch
Closes #3616 Merge request studip/studip!2509
Diffstat (limited to 'lib/modules')
-rw-r--r--lib/modules/CoreAdmin.php5
-rw-r--r--lib/modules/CoreStudygroupAdmin.php1
-rw-r--r--lib/modules/MyStudygroupsWidget.php38
-rw-r--r--lib/modules/StudygroupWidget.php39
4 files changed, 83 insertions, 0 deletions
diff --git a/lib/modules/CoreAdmin.php b/lib/modules/CoreAdmin.php
index 4c0cc3c..aded3ae 100644
--- a/lib/modules/CoreAdmin.php
+++ b/lib/modules/CoreAdmin.php
@@ -93,6 +93,11 @@ class CoreAdmin extends CorePlugin implements StudipModule
$item->setDescription(_('Vorlagen zur Erhebung weiterer Angaben von Teilnehmenden auswählen.'));
$navigation->addSubNavigation('additional_data', $item);
+ $item = new Navigation(_('Verknüpfte Studiengruppen'), 'dispatch.php/course/connectedstudygroups');
+ $item->setImage(Icon::create('studygroup'));
+ $item->setDescription(_('Studiengruppen verknüpfen bzw. verwalten'));
+ $navigation->addSubNavigation('connectedstudygroups', $item);
+
} // endif modules only seminars
if (Config::get()->VOTE_ENABLE) {
diff --git a/lib/modules/CoreStudygroupAdmin.php b/lib/modules/CoreStudygroupAdmin.php
index acf5973..5c74996 100644
--- a/lib/modules/CoreStudygroupAdmin.php
+++ b/lib/modules/CoreStudygroupAdmin.php
@@ -39,6 +39,7 @@ class CoreStudygroupAdmin extends CorePlugin implements StudipModule
$navigation->addSubNavigation('contentmodules', new Navigation(_('Werkzeuge'), "dispatch.php/course/contentmodules?cid={$course_id}"));
$navigation->addSubNavigation('main', new Navigation(_('Verwaltung'), "dispatch.php/course/studygroup/edit/?cid={$course_id}"));
$navigation->addSubNavigation('avatar', new Navigation(_(' Studiengruppenbild'), "dispatch.php/course/studygroup/avatar?cid={$course_id}"));
+ $navigation->addSubNavigation('connectedcourses', new Navigation(_('Verknüpfte Veranstaltungen'), "dispatch.php/course/connectedcourses?cid={$course_id}"));
if (!$GLOBALS['perm']->have_perm('admin') && Config::get()->VOTE_ENABLE) {
$item = new Navigation(_('Fragebögen'), 'dispatch.php/questionnaire/courseoverview');
diff --git a/lib/modules/MyStudygroupsWidget.php b/lib/modules/MyStudygroupsWidget.php
new file mode 100644
index 0000000..1709419
--- /dev/null
+++ b/lib/modules/MyStudygroupsWidget.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * My Study group widget. Displays a list of own study groups
+ *
+ * @author
+ * @license GPL2 or any later version
+ * @since Stud.IP 6.0
+ */
+class MyStudygroupsWidget extends CorePlugin implements PortalPlugin
+{
+ public function getPluginName()
+ {
+ return _('Meine Studiengruppen');
+ }
+
+ public function getMetadata()
+ {
+ return [
+ 'description' => _('Dieses Widget zeigt eine Liste Ihrer Studiengruppen an.')
+ ];
+ }
+
+ public function getPortalTemplate()
+ {
+ $template = $GLOBALS['template_factory']->open('start/my_studygroups');
+
+ $controller = app(\Trails\Dispatcher::class)->load_controller('my_studygroups');
+ $response = $controller->relayWithRedirect('my_studygroups/index/true');
+ $template->content = $response->body;
+
+ $navigation = new Navigation('', 'dispatch.php/course/wizard?studygroup=1');
+ $navigation->setImage(Icon::create('add', Icon::ROLE_CLICKABLE, ['title' => _('Neue Studiengruppe anlegen')]));
+ $navigation->setLinkAttributes(['data-dialog' => 'reload-on-close']);
+ $template->icons = [$navigation];
+
+ return $template;
+ }
+}
diff --git a/lib/modules/StudygroupWidget.php b/lib/modules/StudygroupWidget.php
new file mode 100644
index 0000000..beddd4f
--- /dev/null
+++ b/lib/modules/StudygroupWidget.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Study group widget. Displays a list of possibly interesting study groups
+ *
+ * @author
+ * @license GPL2 or any later version
+ * @since Stud.IP 6.0
+ */
+
+class StudygroupWidget extends CorePlugin implements PortalPlugin
+{
+ public function getPluginName()
+ {
+ return _('Für dich vorgeschlagene Studiengruppen');
+ }
+
+ public function getMetadata()
+ {
+ return [
+ 'description' => _('Dieses Widget zeigt eine Liste von Vorschlägen interessanter Studiengruppen an.')
+ ];
+ }
+
+ public function getPortalTemplate()
+ {
+ $template = $GLOBALS['template_factory']->open('start/studygroups');
+
+ $controller = app(\Trails\Dispatcher::class)->load_controller('my_studygroups');
+ $response = $controller->relayWithRedirect('my_studygroups/proposals');
+ $template->proposals = $response->body;
+
+ $navigation = new Navigation('', 'dispatch.php/course/wizard?studygroup=1');
+ $navigation->setImage(Icon::create('add', Icon::ROLE_CLICKABLE, ['title' => _('Neue Studiengruppe anlegen')]));
+ $navigation->setLinkAttributes(['data-dialog' => 'reload-on-close']);
+ $template->icons = [$navigation];
+
+ return $template;
+ }
+}