aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/course/grouping.php51
-rw-r--r--app/controllers/course/members.php45
2 files changed, 89 insertions, 7 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
diff --git a/app/controllers/course/members.php b/app/controllers/course/members.php
index 5ead0ea..0b6ac77 100644
--- a/app/controllers/course/members.php
+++ b/app/controllers/course/members.php
@@ -1661,6 +1661,7 @@ class Course_MembersController extends AuthenticatedController
URLHelper::getURL('dispatch.php/course/members/export', [
'course_id' => $this->course_id,
'format' => 'xlsx',
+ 'type' => 'members'
]),
Icon::create('export')
);
@@ -1670,11 +1671,34 @@ class Course_MembersController extends AuthenticatedController
URLHelper::getURL('dispatch.php/course/members/export', [
'course_id' => $this->course_id,
'format' => 'csv',
+ 'type' => 'members'
]),
Icon::create('export')
);
- if (count($this->awaiting) > 0) {
+ // TODO
+ //if (count($this->awaiting) > 0) {
+
+ $widget->addLink(
+ _('Warteliste als Excel-Datei exportieren'),
+ URLHelper::getURL('dispatch.php/course/members/export', [
+ 'course_id' => $this->course_id,
+ 'format' => 'xlsx',
+ 'type' => 'waiting'
+ ]),
+ Icon::create('export')
+ );
+
+ $widget->addLink(
+ _('Warteliste als CSV-Datei exportieren'),
+ URLHelper::getURL('dispatch.php/course/members/export', [
+ 'course_id' => $this->course_id,
+ 'format' => 'csv',
+ 'type' => 'waiting'
+ ]),
+ Icon::create('export')
+ );
+ /*
$awaiting_rtf = export_link(
$this->course_id,
'person',
@@ -1704,7 +1728,8 @@ class Course_MembersController extends AuthenticatedController
$awaiting_csv,
Icon::create('export')
);
- }
+ */
+ //}
}
$options = new OptionsWidget();
@@ -1752,14 +1777,24 @@ class Course_MembersController extends AuthenticatedController
public function export_action()
{
- $export_format = Request::get('format');
+ $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')];
+ if ($export_type == 'members') {
+
+ } else if ($export_type == 'waiting') {
+
+ } else {
+ throw new Exception('Wrong export type');
+ }
+
+ $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) {