aboutsummaryrefslogtreecommitdiff
path: root/app/controllers/course/grouping.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/course/grouping.php')
-rw-r--r--app/controllers/course/grouping.php51
1 files changed, 49 insertions, 2 deletions
diff --git a/app/controllers/course/grouping.php b/app/controllers/course/grouping.php
index 198932e..d7e0867 100644
--- a/app/controllers/course/grouping.php
+++ b/app/controllers/course/grouping.php
@@ -190,7 +190,28 @@ class Course_GroupingController extends AuthenticatedController
// Export all participants.
if (Config::get()->EXPORT_ENABLE) {
$widget = new ExportWidget();
+ $widget->addLink(
+ _('Teilnehmendenliste als Excel-Datei exportieren'),
+ URLHelper::getURL('dispatch.php/course/grouping/export', [
+ 'course_id' => $this->course_id,
+ 'format' => 'xlsx',
+ 'type' => 'grouping'
+ ]),
+ Icon::create('export')
+ );
+ $widget->addLink(
+ _('Teilnehmendenliste als CSV-Datei exportieren'),
+ URLHelper::getURL('dispatch.php/course/grouping/export', [
+ 'course_id' => $this->course_id,
+ 'format' => 'csv',
+ 'type' => 'grouping'
+ ]),
+ Icon::create('export')
+ );
+ $sidebar->addWidget($widget);
+
+ /*
// create csv-export link
$csvExport = export_link(
$this->course->id,
@@ -229,8 +250,7 @@ class Course_GroupingController extends AuthenticatedController
$rtfExport,
Icon::create('file-text', 'clickable')
);
-
- $sidebar->addWidget($widget);
+ */
}
}
@@ -585,6 +605,33 @@ class Course_GroupingController extends AuthenticatedController
}
/**
+ *
+ */
+ public function export_action()
+ {
+ $export_format = Request::get('format');
+ $export_type = Request::get('type');
+
+ if ($export_format !== 'csv' && $export_format !== 'xlsx') {
+ throw new Exception('Wrong format');
+ }
+
+ $header = [_('Status'), _('Anrede'), _('Titel'), _('Vorname'), _('Nachname'), _('Titel nachgestellt'),
+ _('Benutzername'), _('Adresse'), _('Telefonnr.'), _('E-Mail'), _('Anmeldedatum'), _('Matrikelnummer'),
+ _('Studiengänge')];
+ $members = CourseMember::getMemberDataByCourse($this->course_id);
+
+ foreach ($members as &$member) {
+ $member['Anmeldedatum'] = $member['Anmeldedatum'] ? date("d.m.Y", $member['Anmeldedatum']) : _("unbekannt");
+ unset($member['user_id']);
+ }
+
+ $filename = _('Teilnehmendenexport') . ' ' . $this->course_title . '.' . $export_format;
+
+ $this->render_spreadsheet($header, $members, $export_format, $filename);
+ }
+
+ /**
* Sychronizes members between parent and child course.
* @param string $parent_id parent course ID
* @param string $child_id child course ID