aboutsummaryrefslogtreecommitdiff
path: root/app/views/vips/sheets/list_assignments_stud.php
blob: 647755701ceeacd7b07b706a956222c132432b2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?php
/**
 * @var VipsBlock[] $blocks
 * @var Vips_SheetsController $controller
 * @var string $sort
 * @var bool $desc
 * @var string $user_id
 */
?>

<? if (count($blocks) == 0): ?>
    <?= MessageBox::info(_('Es gibt aktuell keine laufenden Aufgabenblätter.')) ?>
<? endif ?>

<? foreach ($blocks as $block_id => $block): ?>
    <table class="default">
        <caption>
            <? if (count($blocks) > 1 || $block_id): ?>
                <?= htmlReady($block['title']) ?>
            <? else: ?>
                <?= _('Laufende Aufgabenblätter') ?>
            <? endif ?>
        </caption>

        <thead>
            <tr class="sortable">
                <th style="width: 40%;" class="<?= $controller->sort_class($sort === 'title', $desc) ?>">
                    <a href="<?= $controller->link_for('vips/sheets', ['sort' => 'title', 'desc' => $sort === 'title' && !$desc]) ?>">
                        <?= _('Titel') ?>
                    </a>
                </th>
                <th style="width: 15%;" class="<?= $controller->sort_class($sort === 'start', $desc) ?>">
                    <a href="<?= $controller->link_for('vips/sheets', ['sort' => 'start', 'desc' => $sort === 'start' && !$desc]) ?>">
                        <?= _('Start') ?>
                    </a>
                </th>
                <th style="width: 15%;" class="<?= $controller->sort_class($sort === 'end', $desc) ?>">
                    <a href="<?= $controller->link_for('vips/sheets', ['sort' => 'end', 'desc' => $sort === 'end' && !$desc]) ?>">
                        <?= _('Ende') ?>
                    </a>
                </th>
                <th style="width: 10%;" class="<?= $controller->sort_class($sort === 'type', $desc) ?>">
                    <a href="<?= $controller->link_for('vips/sheets', ['sort' => 'type', 'desc' => $sort === 'type' && !$desc]) ?>">
                        <?= _('Modus') ?>
                    </a>
                </th>
                <th style="width: 15%;">
                    <?= _('Status') ?>
                </th>
                <th class="actions">
                    <?= _('Aktion') ?>
                </th>
            </tr>
        </thead>

        <tbody>
            <? foreach ($block['assignments'] as $assignment) : ?>
                <tr>
                    <td>
                        <a href="<?= $controller->link_for('vips/sheets/show_assignment', ['assignment_id' => $assignment->id]) ?>">
                            <?= $assignment->getTypeIcon() ?>
                            <?= htmlReady($assignment->test->title) ?>
                        </a>
                        <? if (!$assignment->active): ?>
                            <span style="color: red;">
                                (<?= _('unterbrochen') ?>)
                            </span>
                        <? endif ?>
                    </td>
                    <td>
                        <?= date('d.m.Y, H:i', $assignment->start) ?>
                    </td>
                    <td>
                        <? if (!$assignment->isUnlimited()) : ?>
                            <?= date('d.m.Y, H:i', $assignment->end) ?>
                        <? endif ?>
                    </td>
                    <td>
                        <?= htmlReady($assignment->getTypeName()) ?>
                    </td>
                    <td>
                        <? if ($assignment->type === 'exam'): ?>
                            <? $assignment_attempt = $assignment->getAssignmentAttempt($user_id) ?>
                            <? if ($assignment_attempt === null): ?>
                                &ndash;
                            <? elseif ($assignment_attempt->end < time()): ?>
                                <?= _('beendet') ?>
                            <? else: ?>
                                <?= _('angefangen') ?>
                            <? endif ?>
                        <? elseif ($assignment->isFinished($user_id)): ?>
                            <?= _('beendet') ?>
                        <? else: ?>
                            <? $num_solutions = $assignment->countSolutions($user_id) ?>
                            <? if ($num_solutions == 0): ?>
                                &ndash;
                            <? elseif ($num_solutions == count($assignment->test->exercise_refs)): ?>
                                <?= _('bearbeitet') ?>
                            <? else: ?>
                                <?= _('angefangen') ?>
                            <? endif ?>
                        <? endif ?>
                    </td>
                    <td class="actions">
                        <? if ($assignment->active && $assignment->type !== 'exam'): ?>
                            <? $menu = ActionMenu::get() ?>
                            <? $menu->addLink($controller->url_for('vips/sheets/print_assignments', ['assignment_id' => $assignment->id]),
                                   _('Aufgabenblatt drucken'), Icon::create('print'), ['target' => '_blank']
                               ) ?>
                            <?= $menu->render() ?>
                        <? endif ?>
                    </td>
                </tr>
            <? endforeach ?>
        </tbody>
    </table>
<? endforeach ?>