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 ?>