Skip to content
Snippets Groups Projects
Commit 2c884f33 authored by Elmar Ludwig's avatar Elmar Ludwig
Browse files

allow exam reset from assignment pool, fixes #253

parent 6c7a2543
No related branches found
No related tags found
No related merge requests found
......@@ -169,7 +169,7 @@ class PoolController extends StudipController
}
// set up the sql query for the quicksearch
$sql = "SELECT vips_test.id, vips_test.title FROM vips_test
$sql = "SELECT vips_assignment.id, vips_test.title FROM vips_test
JOIN vips_assignment ON vips_test.id = vips_assignment.test_id
WHERE vips_assignment.course_id IN ('" . implode("','", $course_ids) . "')
AND (vips_test.title LIKE :input OR vips_test.description LIKE :input)
......@@ -260,15 +260,11 @@ class PoolController extends StudipController
$search_string = $search_filter['search_string'];
$assignment_type = $search_filter['assignment_type'];
$sql = "SELECT vips_test.*,
$sql = "SELECT vips_assignment.*,
vips_test.title AS test_title,
vips_test.created,
auth_user_md5.Nachname,
auth_user_md5.Vorname,
vips_assignment.type,
vips_assignment.start,
vips_assignment.end,
vips_assignment.id AS assignment_id,
vips_assignment.course_id,
vips_assignment.context,
seminare.Name,
semester_data.name AS sem_name
FROM vips_test
......
......@@ -983,7 +983,7 @@ class SheetsController extends StudipController
PageLayout::postSuccess(_vips('Die Klausur wurde zurückgesetzt und alle abgegebenen Lösungen archiviert.'));
}
$this->redirect('sheets');
$this->redirect(Context::getId() ? 'sheets' : 'pool/assignments');
}
......
......@@ -237,17 +237,6 @@ function vips_contents_nav_path()
}
}
/**
* Get a (clickable) icon for a test with the given type.
*/
function vips_test_icon($type, $role = 'clickable')
{
$assignment_types = VipsAssignment::getAssignmentTypes();
return Icon::create($assignment_types[$type]['icon'], $role,
['title' => $assignment_types[$type]['name']]);
}
/**
* UTF-8 compatible version of standard PHP levenshtein function.
*/
......
......@@ -58,16 +58,17 @@
<tbody>
<? foreach ($assignments as $assignment): ?>
<? $assignment_obj = VipsAssignment::buildExisting($assignment) ?>
<? $course_id = $assignment['context'] === 'course' ? $assignment['course_id'] : null ?>
<tr>
<td>
<input class="batch_select" type="checkbox" name="assignment_ids[]" value="<?= $assignment['assignment_id'] ?>" aria-label="<?= _vips('Zeile auswählen') ?>">
<input class="batch_select" type="checkbox" name="assignment_ids[]" value="<?= $assignment['id'] ?>" aria-label="<?= _vips('Zeile auswählen') ?>">
</td>
<td>
<a href="<?= $controller->link_for('sheets/edit_assignment', ['cid' => $course_id, 'assignment_id' => $assignment['assignment_id']]) ?>">
<?= vips_test_icon($assignment['type']) ?>
<?= htmlReady($assignment['title']) ?>
<a href="<?= $controller->link_for('sheets/edit_assignment', ['cid' => $course_id, 'assignment_id' => $assignment['id']]) ?>">
<?= $assignment_obj->getTypeIcon() ?>
<?= htmlReady($assignment['test_title']) ?>
</a>
</td>
......@@ -97,22 +98,29 @@
<td class="actions">
<? $menu = ActionMenu::get(); ?>
<? $menu->addLink($controller->url_for('sheets/show_assignment', ['cid' => $course_id, 'assignment_id' => $assignment['assignment_id']]),
<? $menu->addLink($controller->url_for('sheets/show_assignment', ['cid' => $course_id, 'assignment_id' => $assignment['id']]),
_vips('Studierendensicht anzeigen'), Icon::create('community')
) ?>
<? $menu->addLink($controller->url_for('sheets/print_assignments', ['assignment_id' => $assignment['assignment_id']]),
<? $menu->addLink($controller->url_for('sheets/print_assignments', ['assignment_id' => $assignment['id']]),
_vips('Aufgabenblatt drucken'), Icon::create('print'), ['target' => '_blank']
) ?>
<? $menu->addLink($controller->url_for('sheets/copy_assignments_dialog', ['assignment_ids[]' => $assignment['assignment_id']]),
<? $menu->addLink($controller->url_for('sheets/copy_assignments_dialog', ['assignment_ids[]' => $assignment['id']]),
_vips('Aufgabenblatt kopieren'), Icon::create(vips_image_url('copy.svg')), ['data-dialog' => 'size=auto']
) ?>
<? if ($assignment_obj->isLocked()): ?>
<? $menu->addButton('reset', _vips('Alle Lösungen zurücksetzen'), Icon::create('refresh'), [
'formaction' => $controller->url_for('sheets/reset_assignment', ['assignment_id' => $assignment['id']]),
'data-confirm' => _vips('Achtung: Wenn Sie die Lösungen zurücksetzen, werden die Lösungen aller Teilnehmer archiviert!')
]) ?>
<? else: ?>
<? $menu->addButton('delete', _vips('Aufgabenblatt löschen'), Icon::create('trash'), [
'formaction' => $controller->url_for('sheets/delete_assignments', ['assignment_ids[]' => $assignment['assignment_id']]),
'data-confirm' => sprintf(_vips('Wollen Sie wirklich das Aufgabenblatt "%s" löschen?'), $assignment['title'])
'formaction' => $controller->url_for('sheets/delete_assignments', ['assignment_ids[]' => $assignment['id']]),
'data-confirm' => sprintf(_vips('Wollen Sie wirklich das Aufgabenblatt "%s" löschen?'), $assignment['test_title'])
]) ?>
<? endif ?>
<?= $menu->render() ?>
</td>
</tr>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment