Skip to content
Snippets Groups Projects
Commit e45e4fed authored by André Noack's avatar André Noack
Browse files

Resolve #2822 "Fragebogen: Sortierung nach Spaltenüberschriften"

Closes #2822

Merge request studip/studip!1901
parent b690ffea
No related branches found
No related tags found
No related merge requests found
...@@ -34,7 +34,7 @@ class QuestionnaireController extends AuthenticatedController ...@@ -34,7 +34,7 @@ class QuestionnaireController extends AuthenticatedController
if (!$GLOBALS['perm']->have_perm('autor')) { if (!$GLOBALS['perm']->have_perm('autor')) {
throw new AccessDeniedException('Only for logged in users.'); throw new AccessDeniedException('Only for logged in users.');
} }
$this->questionnaires = Questionnaire::findBySQL("user_id = ? ORDER BY mkdate DESC", [$GLOBALS['user']->id]); $this->questionnaires = Questionnaire::findBySQL("user_id = ? ORDER BY title ASC", [$GLOBALS['user']->id]);
foreach ($this->questionnaires as $questionnaire) { foreach ($this->questionnaires as $questionnaire) {
if (!$questionnaire['visible'] && $questionnaire->isRunning()) { if (!$questionnaire['visible'] && $questionnaire->isRunning()) {
$questionnaire->start(); $questionnaire->start();
...@@ -55,7 +55,7 @@ class QuestionnaireController extends AuthenticatedController ...@@ -55,7 +55,7 @@ class QuestionnaireController extends AuthenticatedController
Navigation::activateItem("/course/admin/questionnaires"); Navigation::activateItem("/course/admin/questionnaires");
$this->statusgruppen = Statusgruppen::findByRange_id($this->range_id); $this->statusgruppen = Statusgruppen::findByRange_id($this->range_id);
$this->questionnaires = Questionnaire::findBySQL( $this->questionnaires = Questionnaire::findBySQL(
"INNER JOIN questionnaire_assignments USING (questionnaire_id) WHERE (questionnaire_assignments.range_id = ? AND questionnaire_assignments.range_type = ?) OR (questionnaire_assignments.range_id IN (?) AND questionnaire_assignments.range_type = 'statusgruppe') ORDER BY questionnaires.mkdate DESC", "INNER JOIN questionnaire_assignments USING (questionnaire_id) WHERE (questionnaire_assignments.range_id = ? AND questionnaire_assignments.range_type = ?) OR (questionnaire_assignments.range_id IN (?) AND questionnaire_assignments.range_type = 'statusgruppe') ORDER BY questionnaires.title ASC",
[$this->range_id, $this->range_type, array_map(function ($g) { return $g->getId(); }, $this->statusgruppen)] [$this->range_id, $this->range_type, array_map(function ($g) { return $g->getId(); }, $this->statusgruppen)]
); );
foreach ($this->questionnaires as $questionnaire) { foreach ($this->questionnaires as $questionnaire) {
......
...@@ -8,14 +8,14 @@ ...@@ -8,14 +8,14 @@
<?= htmlReady($questionnaire['title']) ?> <?= htmlReady($questionnaire['title']) ?>
</a> </a>
</td> </td>
<td> <td data-text="<?= (int) $questionnaire['startdate'] ?>">
<? if ($questionnaire['startdate']): ?> <? if ($questionnaire['startdate']): ?>
<?= date('d.m.Y H:i', $questionnaire['startdate']) ?> <?= date('d.m.Y H:i', $questionnaire['startdate']) ?>
<? else: ?> <? else: ?>
<?= _('händisch') ?> <?= _('händisch') ?>
<? endif; ?> <? endif; ?>
</td> </td>
<td> <td data-text="<?= (int) $questionnaire['stopdate'] ?>">
<? if ($questionnaire['stopdate']): ?> <? if ($questionnaire['stopdate']): ?>
<?= date('d.m.Y H:i', $questionnaire['stopdate']) ?> <?= date('d.m.Y H:i', $questionnaire['stopdate']) ?>
<? else: ?> <? else: ?>
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
<? endif ?> <? endif ?>
</td> </td>
<td> <td>
<?= htmlReady($countedAnswers) ?> <?= htmlReady($countedAnswers ?: '0') ?>
</td> </td>
<td class="actions"> <td class="actions">
<? if ($questionnaire->isRunning() && $countedAnswers) : ?> <? if ($questionnaire->isRunning() && $countedAnswers) : ?>
......
<form action="<?= $controller->link_for("questionnaire/bulkdelete", compact('range_type', 'range_id')) ?>" <form action="<?= $controller->link_for("questionnaire/bulkdelete", compact('range_type', 'range_id')) ?>"
method="post"> method="post">
<?= CSRFProtection::tokenTag() ?> <?= CSRFProtection::tokenTag() ?>
<table class="default" id="questionnaire_overview"> <table class="default sortable-table" data-sortlist="[[1, 0]]" id="questionnaire_overview">
<thead> <thead>
<tr> <tr>
<th width="20"><input type="checkbox" data-proxyfor="#questionnaire_overview > tbody input[type=checkbox]"></th> <th width="20"><input type="checkbox" data-proxyfor="#questionnaire_overview > tbody input[type=checkbox]"></th>
<th><?= _('Fragebogen') ?></th> <th data-sort="text"><?= _('Fragebogen') ?></th>
<th><?= _('Startet') ?></th> <th data-sort="digit"><?= _('Startet') ?></th>
<th><?= _('Endet') ?></th> <th data-sort="digit"><?= _('Endet') ?></th>
<th><?= _('Eingebunden') ?></th> <th data-sort="text"><?= _('Eingebunden') ?></th>
<th><?= _('Teilnehmende') ?></th> <th data-sort="digit"><?= _('Teilnehmende') ?></th>
<th class="actions"><?= _('Aktionen') ?></th> <th class="actions"><?= _('Aktionen') ?></th>
</tr> </tr>
</thead> </thead>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment