aboutsummaryrefslogtreecommitdiff
path: root/resources/vue/components/courseware/tasks/TaskGroup.vue
blob: 9b74eb348298445fc6dfeee3ffb931d5ea2c50ea (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
<template>
    <div>
        <section v-if="tasks.length > 0">
            <table class="default">
                <caption>
                    {{
                        $gettext('Verteilte Aufgaben')
                    }}
                </caption>
                <thead>
                    <tr>
                        <th>{{ $gettext('Status') }}</th>
                        <th>{{ $gettext('Teilnehmende/Gruppen') }}</th>
                        <th class="responsive-hidden">{{ $gettext('Seite') }}</th>
                        <th>{{ $gettext('bearbeitet') }}</th>
                        <th>{{ $gettext('Abgabefrist') }}</th>
                        <th>{{ $gettext('Abgabe') }}</th>
                        <th class="responsive-hidden renewal">{{ $gettext('Verlängerungsanfrage') }}</th>
                        <th class="responsive-hidden feedback">{{ $gettext('Feedback') }}</th>
                    </tr>
                </thead>
                <tbody>
                    <TaskItem
                        v-for="task in tasks"
                        :task="task"
                        :taskGroup="taskGroup"
                        :key="task.id"
                        @add-feedback="(task) => $emit('add-feedback', task)"
                        @edit-feedback="(feedback) => $emit('edit-feedback', feedback)"
                        @solve-renewal="(task) => $emit('solve-renewal', task)"
                    />
                </tbody>
            </table>

            <PeerReviewProcesses
                :taskGroup="taskGroup"
                @add-peer-review-process="$emit('add-peer-review-process', taskGroup)"
                class="cw-task-group-peer-review-processes"
            />
        </section>
        <div v-else>
            <CompanionBox mood="pointing" :msgCompanion="$gettext('Diese Aufgabe wurde an niemanden verteilt.')" />
        </div>
    </div>
</template>

<script>
import { mapGetters } from 'vuex';
import CompanionBox from '../layouts/CoursewareCompanionBox.vue';
import PeerReviewProcesses from './TaskGroupPeerReviewProcesses.vue';
import TaskItem from './TaskGroupTaskItem.vue';

export default {
    components: { CompanionBox, PeerReviewProcesses, TaskItem },
    emits: ['add-feedback', 'edit-feedback', 'solve-renewal'],
    props: ['taskGroup', 'tasks'],
    computed: {
        ...mapGetters({
            coursewareContext: 'context',
        }),
        actionMenuContext() {
            return this.$gettext(
                'Courseware-Aufgabe "%{ taskGroup }"',
                { taskGroup: this.taskGroup.attributes.title }
            );
        },
    },
};
</script>