diff --git a/controllers/config.php b/controllers/config.php index 034db6869744107cc2b7096f29579e7866a31f4c..833f72a2285135c06a37b2fd9b73704a92af2340 100644 --- a/controllers/config.php +++ b/controllers/config.php @@ -96,7 +96,9 @@ class ConfigController extends StudipController public function pending_assignments_action() { $this->assignments = VipsAssignment::findBySQL( - "type = 'exam' AND start BETWEEN NOW() - INTERVAL 1 DAY AND NOW() + INTERVAL 14 DAY AND end > NOW() ORDER BY start" + "context = 'course' AND type = 'exam' AND + start BETWEEN NOW() - INTERVAL 1 DAY AND NOW() + INTERVAL 14 DAY AND end > NOW() + ORDER BY start" ); } } diff --git a/controllers/pool.php b/controllers/pool.php index 8caa2696c5bab7e2012d12beefc347f091b362b2..2bb5b1ac2ee1849dca38d65710a5428570536d02 100644 --- a/controllers/pool.php +++ b/controllers/pool.php @@ -190,24 +190,6 @@ class PoolController extends StudipController } - /** - * Anfangs leitet diese Funktion nur die Anfragen an die schon vorhandenen Funktionen weiter, - * welche aber nur innerhalb einer Veranstaltung erlaubt sind. Da später die Aufgaben von den - * Veranstaltungen losgelöst werden sollen, ist der Umweg später nicht mehr nötig. - */ - public function placeholder_action() - { - $exercise_id = Request::int('exercise_id'); - $assignment_id = Request::int('assignment_id'); - $action = Request::option('action'); - - $assignment = VipsAssignment::find($assignment_id); - - $this->redirect($this->url_for('sheets/' . $action, - ['cid' => $assignment->course_id, 'assignment_id' => $assignment_id, 'exercise_id' => $exercise_id])); - } - - /** * Get all matching exercises from a list of courses in given order. * If $search_filter is not empty, search filters are applied. @@ -229,7 +211,7 @@ class PoolController extends StudipController $sql = "SELECT vips_exercise.*, auth_user_md5.Nachname, auth_user_md5.Vorname, vips_assignment.id AS assignment_id, vips_assignment.course_id, - vips_test.title AS test_title + vips_assignment.context, vips_test.title AS test_title FROM vips_exercise LEFT JOIN auth_user_md5 USING(user_id) JOIN vips_exercise_ref ON vips_exercise.id = vips_exercise_ref.exercise_id JOIN vips_test ON vips_test.id = vips_exercise_ref.test_id @@ -272,7 +254,7 @@ class PoolController extends StudipController $sql = "SELECT vips_test.*, 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, - seminare.Name, semester_data.name AS sem_name + vips_assignment.context, seminare.Name, semester_data.name AS sem_name FROM vips_test LEFT JOIN auth_user_md5 USING(user_id) JOIN vips_assignment ON vips_test.id = vips_assignment.test_id LEFT JOIN seminare ON vips_assignment.course_id = seminare.Seminar_id diff --git a/controllers/sheets.php b/controllers/sheets.php index b348ae1d8faea30bdd13da89570d9ff80f530bf4..e178fd2d3cc7bf4f51b9ec549cc8f7f03d5958e5 100644 --- a/controllers/sheets.php +++ b/controllers/sheets.php @@ -1586,6 +1586,7 @@ class SheetsController extends StudipController $sql = "SELECT vips_exercise.*, vips_assignment.id AS assignment_id, vips_assignment.course_id, + vips_assignment.context, vips_test.title AS test_title, seminare.name AS course_name, seminare.start_time diff --git a/views/pool/list_assignments.php b/views/pool/list_assignments.php index 9465b69cf1534aa7c843ddb83666b25e18065716..874c1ce08a3cd5b65dee5865bd5f73f6def61fbb 100644 --- a/views/pool/list_assignments.php +++ b/views/pool/list_assignments.php @@ -58,13 +58,14 @@ <tbody> <? foreach ($assignments as $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') ?>"> </td> <td> - <a href="<?= $controller->link_for('pool/placeholder', ['action' => 'edit_assignment', 'assignment_id' => $assignment['assignment_id']]) ?>"> + <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> @@ -81,22 +82,26 @@ </td> <td> - <a href="<?= URLHelper::getLink('seminar_main.php', ['cid' => $assignment['course_id']]) ?>"> - <?= htmlReady($assignment['Name']) ?> - </a> + <? if ($course_id): ?> + <a href="<?= URLHelper::getLink('seminar_main.php', ['cid' => $course_id]) ?>"> + <?= htmlReady($assignment['Name']) ?> + </a> + <? endif ?> </td> <td> - <?= htmlReady($assignment['sem_name']) ?> + <? if ($course_id): ?> + <?= htmlReady($assignment['sem_name']) ?> + <? endif ?> </td> <td class="actions"> <? $menu = ActionMenu::get(); ?> - <? $menu->addLink($controller->url_for('pool/placeholder', ['action' => 'show_assignment', 'assignment_id' => $assignment['assignment_id']]), + <? $menu->addLink($controller->url_for('sheets/show_assignment', ['cid' => $course_id, 'assignment_id' => $assignment['assignment_id']]), _vips('Studierendensicht anzeigen'), Icon::create('community') ) ?> - <? $menu->addLink($controller->url_for('pool/placeholder', ['action' => 'print_assignments', 'assignment_id' => $assignment['assignment_id']]), + <? $menu->addLink($controller->url_for('sheets/print_assignments', ['assignment_id' => $assignment['assignment_id']]), _vips('Aufgabenblatt drucken'), Icon::create('print'), ['target' => '_blank'] ) ?> diff --git a/views/pool/list_exercises.php b/views/pool/list_exercises.php index 9665df1b22ba8eb6b2bbaed8a050a0b649489b75..c2993fb45023b1a74066496cd154bd35b0f56364 100644 --- a/views/pool/list_exercises.php +++ b/views/pool/list_exercises.php @@ -58,13 +58,14 @@ <tbody> <? foreach ($exercises as $exercise): ?> + <? $course_id = $exercise['context'] === 'course' ? $exercise['course_id'] : null ?> <tr> <td> <input class="batch_select" type="checkbox" name="exercise_ids[<?= $exercise['id'] ?>]" value="<?= $exercise['assignment_id'] ?>" aria-label="<?= _vips('Zeile auswählen') ?>"> </td> <td> - <a href="<?= $controller->link_for('pool/placeholder', ['action' => 'edit_exercise', 'assignment_id' => $exercise['assignment_id'], 'exercise_id' => $exercise['id']]) ?>"> + <a href="<?= $controller->link_for('sheets/edit_exercise', ['cid' => $course_id, 'assignment_id' => $exercise['assignment_id'], 'exercise_id' => $exercise['id']]) ?>"> <?= htmlReady($exercise['title']) ?> </a> </td> @@ -84,14 +85,14 @@ </td> <td> - <a href="<?= $controller->link_for('pool/placeholder', ['action' => 'edit_assignment', 'assignment_id' => $exercise['assignment_id']]) ?>"> + <a href="<?= $controller->link_for('sheets/edit_assignment', ['cid' => $course_id, 'assignment_id' => $exercise['assignment_id']]) ?>"> <?= htmlReady($exercise['test_title']) ?> </a> </td> <td class="actions"> <? $menu = ActionMenu::get() ?> - <? $menu->addLink($controller->url_for('pool/placeholder', ['action' => 'show_exercise', 'assignment_id' => $exercise['assignment_id'], 'exercise_id' => $exercise['id']]), + <? $menu->addLink($controller->url_for('sheets/show_exercise', ['cid' => $course_id, 'assignment_id' => $exercise['assignment_id'], 'exercise_id' => $exercise['id']]), _vips('Studierendensicht anzeigen'), Icon::create('community') ) ?> diff --git a/views/sheets/copy_assignment_dialog.php b/views/sheets/copy_assignment_dialog.php index 4a4b68ee8226aba3937c3c761bea2e67931ebb2a..5798eddd2a51ccf5afbba901357ba94346626282 100644 --- a/views/sheets/copy_assignment_dialog.php +++ b/views/sheets/copy_assignment_dialog.php @@ -59,22 +59,27 @@ <tbody> <? foreach ($assignments as $assignment): ?> + <? $course_id = $assignment['context'] === 'course' ? $assignment['course_id'] : null ?> <tr> <td> <label class="undecorated"> <input class="batch_select" type="checkbox" name="assignment_ids[]" value="<?= $assignment['id'] ?>"> <?= htmlReady($assignment['test_title']) ?> - <a href="<?= $controller->link_for('sheets/show_assignment', ['cid' => $assignment['course_id'], 'assignment_id' => $assignment['id']]) ?>" target="_blank"> + <a href="<?= $controller->link_for('sheets/show_assignment', ['cid' => $course_id, 'assignment_id' => $assignment['id']]) ?>" target="_blank"> <?= Icon::create('link-intern', 'clickable', ['title' => _vips('Vorschau anzeigen')]) ?> </a> </label> </td> <td> - <?= htmlReady($assignment['course_name']) ?> + <? if ($course_id): ?> + <?= htmlReady($assignment['course_name']) ?> + <? endif ?> </td> <td> - <?= htmlReady(Semester::findByTimestamp($assignment['start_time'])->name) ?> + <? if ($course_id): ?> + <?= htmlReady(Semester::findByTimestamp($assignment['start_time'])->name) ?> + <? endif ?> </td> </tr> <? endforeach ?> diff --git a/views/sheets/copy_exercise_dialog.php b/views/sheets/copy_exercise_dialog.php index 0553d60971b68e03e13f919e1b49ddbfa3570fe6..4881a49aeeed6abf1c962230b1a7ab0dc8bec7ab 100644 --- a/views/sheets/copy_exercise_dialog.php +++ b/views/sheets/copy_exercise_dialog.php @@ -66,6 +66,7 @@ <tbody> <? foreach ($exercises as $exercise): ?> + <? $course_id = $exercise['context'] === 'course' ? $exercise['course_id'] : null ?> <tr> <td> <label class="undecorated"> @@ -79,15 +80,19 @@ </label> </td> <td> - <a href="<?= $controller->link_for('sheets/edit_assignment', ['cid' => $exercise['course_id'], 'assignment_id' => $exercise['assignment_id']]) ?>"> + <a href="<?= $controller->link_for('sheets/edit_assignment', ['cid' => $course_id, 'assignment_id' => $exercise['assignment_id']]) ?>"> <?= htmlReady($exercise['test_title']) ?> </a> </td> <td> - <?= htmlReady($exercise['course_name']) ?> + <? if ($course_id): ?> + <?= htmlReady($exercise['course_name']) ?> + <? endif ?> </td> <td> - <?= htmlReady(Semester::findByTimestamp($exercise['start_time'])->name) ?> + <? if ($course_id): ?> + <?= htmlReady(Semester::findByTimestamp($exercise['start_time'])->name) ?> + <? endif ?> </td> </tr> <? endforeach ?>