Add translations

This commit is contained in:
Lorenz Padberg 2023-07-11 11:02:39 +02:00
parent 6b8541f9c5
commit b06fc4bcbf
12 changed files with 42 additions and 32 deletions

View File

@ -10,7 +10,6 @@ const props = defineProps<{
<template>
<span>
<it-icon-calendar-light class="it-icon h-5 w-5" />
// TODO: Termin nicht definiert anzeigen wenn undefined
{{ getDateString(props.singleDate) }}, {{ getTimeString(props.singleDate) }}
</span>
</template>

View File

@ -2,19 +2,19 @@
<div>
<ul v-if="true">
<li
v-for="dueDate in dueDatesDiplayed"
v-for="dueDate in dueDatesDisplayed"
:key="dueDate.id"
class="border-t last:border-b"
:class="{ 'first:border-t': props.showTopBoarder, 'border-b': true }"
>
<DueDateSingle :due-date="dueDate"></DueDateSingle>
</li>
</ul>
<div v-if="allDueDates.length > props.maxCount" class="flex items-center pt-6">
<a href="">Alle Termine anschauen</a>
<a href="">{{ $t("duedates.showAllDueDates") }}</a>
<it-icon-arrow-right />
</div>
<div v-else>Keine Termine Vorhanden</div>
<div v-if="allDueDates.length === 0">{{ $t("duedates.noDueDatesAvailable") }}</div>
</div>
</template>
@ -26,13 +26,14 @@ import { computed } from "vue";
const props = defineProps<{
maxCount: number;
dueDates: DueDate[];
showTopBoarder: boolean;
}>();
const allDueDates = computed(() => {
return props.dueDates;
});
const dueDatesDiplayed = computed(() => {
const dueDatesDisplayed = computed(() => {
return props.dueDates.slice(0, props.maxCount);
});
</script>

View File

@ -1,6 +1,10 @@
<template>
<div>
<DueDatesList :due-dates="allDueDates" :max-count="props.maxCount"></DueDatesList>
<DueDatesList
:due-dates="allDueDates"
:max-count="props.maxCount"
:show-top-boarder="props.showTopBoarder"
></DueDatesList>
</div>
</template>
@ -10,6 +14,7 @@ import { useCurrentCourseSession } from "@/composables";
const props = defineProps<{
maxCount: number;
showTopBoarder: boolean;
}>();
const courseSession = useCurrentCourseSession();

View File

@ -11,9 +11,9 @@
"assignmentSubmitted": "Du hast deine Ergebnisse erfolgreich abgegeben.",
"confirmSubmitPerson": "Hiermit bestätige ich, dass die folgende Person meine Ergebnisse bewerten soll.",
"confirmSubmitResults": "Hiermit bestätige ich, dass ich die Zusammenfassung meiner Ergebnisse überprüft habe und so abgeben will.",
"dueDateIntroduction": "Reiche deine Ergebnisse pünktlich ein bis am {{date}} um {{time}} Uhr ein.",
"dueDateIntroduction": "Reiche deine Ergebnisse pünktlich ein bis am: ",
"dueDateNotSet": "Keine Abgabedaten wurden erfasst für diese Durchführung",
"dueDateSubmission": "Einreichungstermin: {{date}}",
"dueDateSubmission": "Einreichungstermin:",
"dueDateTitle": "Abgabetermin",
"edit": "Bearbeiten",
"effortTitle": "Zeitaufwand",
@ -85,12 +85,17 @@
},
"dashboard": {
"courses": "Lehrgang",
"dueDatesTitle": "Termine",
"nocourses": "Du wurdest noch keinem Lehrgang zugewiesen.",
"welcome": "Willkommen, {{name}}"
},
"dueDates": {
"nextDueDates": "Nächste Termine"
},
"duedates": {
"noDueDatesAvailable": "Keine Termine vorhanden",
"showAllDueDates": "Alle Termine anzeigen"
},
"feedback": {
"answers": "Antworten",
"areYouSatisfied": "Wie zufrieden bist du?",
@ -185,6 +190,7 @@
"learningPathPage": {
"currentCircle": "Aktueller Circle",
"listView": "Listenansicht",
"nextDueDates": "Nächste Termine",
"nextStep": "Nächster Schritt",
"pathView": "Pfadansicht",
"progressText": "Du hast {{ inProgressCount }} von {{ allCount }} Circles bearbeitet",
@ -240,4 +246,4 @@
"settings": {
"emailNotifications": "Email Benachrichtigungen"
}
}
}

View File

@ -11,9 +11,9 @@
"assignmentSubmitted": "Tes résultats ont bien été transmis.",
"confirmSubmitPerson": "Par la présente, je confirme que la personne suivante doit évaluer mes résultats.",
"confirmSubmitResults": "Par la présente, je confirme que jai vérifié la synthèse de mes résultats et que je souhaite la remettre telle quelle.",
"dueDateIntroduction": "Envoie tes résultats dans les délais avant le {{date}} à {{time}} heures.",
"dueDateIntroduction": "Envoie tes résultats dans les délais avant le:",
"dueDateNotSet": "Aucune date de remise na été spécifiée pour cette opération.",
"dueDateSubmission": "Date de clôture : {{date}}",
"dueDateSubmission": "Date de clôture: ",
"dueDateTitle": "Date de remise",
"edit": "Traiter",
"effortTitle": "Temps nécessaire",
@ -247,4 +247,4 @@
"settings": {
"emailNotifications": "Notifications par e-mail"
}
}
}

View File

@ -11,9 +11,9 @@
"assignmentSubmitted": "I tuoi risultati sono stati consegnati con successo.",
"confirmSubmitPerson": "Confermo che i miei risultati dovranno essere valutati dalla seguente persona.",
"confirmSubmitResults": "Confermo di aver controllato il riepilogo dei miei risultati e di volerli consegnare.",
"dueDateIntroduction": "Presenta i tuoi risultati entro il {{date}} alle {{time}}.",
"dueDateIntroduction": "Presenta i tuoi risultati entro il:",
"dueDateNotSet": "Non sono stati registrati dati di consegna per questo svolgimento",
"dueDateSubmission": "Termine di presentazione: {{date}}",
"dueDateSubmission": "Termine di presentazione: ",
"dueDateTitle": "Termine di consegna",
"edit": "Modificare",
"effortTitle": "Tempo richiesto",
@ -247,4 +247,4 @@
"settings": {
"emailNotifications": "Notifiche e-mail"
}
}
}

View File

@ -76,11 +76,12 @@ const getNextStepLink = (courseSession: CourseSession) => {
<p>{{ $t("dashboard.nocourses") }}</p>
</div>
<div>
<h3 class="mb-6">Termine</h3>
<h3 class="mb-6">{{ $t("dashboard.dueDatesTitle") }}</h3>
<DueDatesList
class="bg-white p-6"
:due-dates="allDueDates"
:max-count="10"
:show-top-boarder="false"
></DueDatesList>
</div>
</div>

View File

@ -92,9 +92,10 @@ const changeViewType = (viewType: ViewType) => {
<!-- Right -->
<div v-if="!useMobileLayout" class="flex-grow">
<div class="text-bold pb-3">Nächste Termine</div>
<DueDatesShortList :max-count="2"></DueDatesShortList>
<div class="text-bold pb-3">
{{ $t("learningPathPage.nextDueDates") }}
</div>
<DueDatesShortList :max-count="2" :show-top-boarder="true"></DueDatesShortList>
</div>
</div>

Binary file not shown.

View File

@ -42,10 +42,7 @@ from vbv_lernwelt.course_session.models import (
CourseSessionAttendanceCourse,
)
from vbv_lernwelt.learnpath.models import (
Circle,
LearningContentAssignment,
LearningContentAttendanceCourse,
)
Circle, LearningContentAssignment, LearningContentAttendanceCourse, )
from vbv_lernwelt.learnpath.tests.learning_path_factories import (
CircleFactory,
LearningContentAssignmentFactory,
@ -129,11 +126,11 @@ def create_test_course(include_uk=True, include_vv=True, with_sessions=False):
course_session=cs_zurich,
user=student2,
)
for cs in CourseSession.objects.all():
for assignment in LearningContentAssignment.objects.all():
course = Course.objects.get(id=COURSE_TEST_ID)
for cs in CourseSession.objects.filter(course_id=COURSE_TEST_ID):
for assignment in LearningContentAssignment.objects.descendant_of(course.coursepage):
create_course_session_assignment(cs, assignment)
for attendance_course in LearningContentAttendanceCourse.objects.all():
for (attendance_course) in LearningContentAttendanceCourse.objects.descendant_of(course.coursepage):
create_course_session_attendance_course(cs, attendance_course)
return course

View File

@ -15,7 +15,7 @@ class CourseSessionAttendanceCourseAdmin(admin.ModelAdmin):
"learning_content",
"trainer",
]
list_filter = ["course_session__course"]
list_filter = ["course_session__course", "course_session"]
@admin.register(CourseSessionAssignment)

View File

@ -103,8 +103,8 @@ class CourseSessionAssignment(models.Model):
)
if assignment_type in {
AssignmentType.CASEWORK,
AssignmentType.PREP_ASSIGNMENT,
AssignmentType.CASEWORK.value,
AssignmentType.PREP_ASSIGNMENT.value,
}: # Reflexion
self.submission_deadline = DueDate.objects.create(
url=url,
@ -115,7 +115,7 @@ class CourseSessionAssignment(models.Model):
page=page,
)
if assignment_type == AssignmentType.CASEWORK:
if assignment_type == AssignmentType.CASEWORK.value:
self.evaluation_deadline = DueDate.objects.create(
url=url,
title=f"{title}",