Merged in feature/update-importer (pull request #183)
Feature/update importer
This commit is contained in:
commit
5e9617c9b0
|
|
@ -152,7 +152,7 @@
|
|||
"imprintText": "Impressum"
|
||||
},
|
||||
"general": {
|
||||
"back": "capit",
|
||||
"back": "Zurück",
|
||||
"backCapitalized": "Zurück",
|
||||
"backToCircle": "zurück zum Circle",
|
||||
"backToLearningPath": "zurück zum Lernpfad",
|
||||
|
|
@ -211,7 +211,7 @@
|
|||
"login": {
|
||||
"demoLogin": "Demo Login",
|
||||
"guidelineFile": "Registrierung _myVBV.pptx",
|
||||
"guidelineText": "Erfahre wie du dich als üK-Lernende/r registrieren kannst",
|
||||
"guidelineText": "Erfahre wie du dich als Lernende/r registrieren kannst",
|
||||
"login": "Login",
|
||||
"ssoLogin": "SSO Login/Registration",
|
||||
"ssoText": "Klicke auf den Button, um dich über SSO anzumelden oder zu registrieren.",
|
||||
|
|
@ -269,7 +269,7 @@
|
|||
"dashboard": {
|
||||
"allClear": "Alles klar?",
|
||||
"nextSteps": "Als lernende Person wirst in den kommenden Tagen einem üK-Lehrgang zugewiesen. Dann\nerscheint hier Deine personalisierte Lehrgangs-Box mit den weiteren Informationen.",
|
||||
"welcome": "Es hat alles geklappt, du bist nun auf der digitalen Lernumgebung des Berufsbildungsverbands der\nVersicherungswirtschaft (VBV) registriert!"
|
||||
"welcome": "Es hat alles geklappt, du bist nun auf der digitalen Lernumgebung des Berufsbildungsverbands derVersicherungswirtschaft (VBV) registriert!"
|
||||
}
|
||||
},
|
||||
"x von y Bewertungen freigegeben": "{{x}} von {{y}} Bewertungen freigegeben",
|
||||
|
|
|
|||
|
|
@ -1,8 +1,20 @@
|
|||
{
|
||||
"Anwesenheit Präsenzkurse": "Présence aux cours",
|
||||
"Anwesenheit bestätigen": "Confirmer la présence",
|
||||
"Anwesenheit prüfen": "Vérifier la présence",
|
||||
"Anwesenheitskontrolle Präsenzkurse": "Contrôle de présence aux cours",
|
||||
"Benutzername": "Nom d’utilisateur",
|
||||
"Ergebnisse anschauen": "Consulter les résultats",
|
||||
"Feedback": "Feedback",
|
||||
"Feedback anschauen": "Consulter le feedback",
|
||||
"MS Teams öffnen": "Ouvrir MS Teams ",
|
||||
"Nächste Termine": "Prochaines dates",
|
||||
"Passwort": "Mot de passe",
|
||||
"Status anschauen": "Consulter le statut",
|
||||
"TODO: Nächste Termine": "TODO: prochaines dates",
|
||||
"Trainerunterlagen": "Documents du formateur / de la formatrice",
|
||||
"Vorbereitungsauftrag": "Mandat de préparation",
|
||||
"Wissens - und Verständnisfragen": "Questions de connaissance et de compréhension ",
|
||||
"Zur Zeit sind keine Termine vorhanden": "Aucune réunion n’est prévue pour le moment",
|
||||
"assignment": {
|
||||
"acceptConditionsDisclaimer": "Accepter les conditions et remettre les résultats",
|
||||
|
|
@ -85,11 +97,14 @@
|
|||
},
|
||||
"dashboard": {
|
||||
"courses": "Formation",
|
||||
"dueDatesTitle": "Dates",
|
||||
"nocourses": "Tu n’as été affecté(e) à aucune formation encore.",
|
||||
"welcome": "Bienvenue, {{name}}"
|
||||
},
|
||||
"dueDates": {
|
||||
"nextDueDates": "Prochaines réunions"
|
||||
"nextDueDates": "Prochaines réunions",
|
||||
"noDueDatesAvailable": "Pas de dates disponibles",
|
||||
"showAllDueDates": "Afficher tous les dates"
|
||||
},
|
||||
"feedback": {
|
||||
"answers": "Réponses",
|
||||
|
|
@ -138,7 +153,7 @@
|
|||
},
|
||||
"general": {
|
||||
"back": "Retour",
|
||||
"backCapitalized": "@.capitalize:general.back",
|
||||
"backCapitalized": "Retour",
|
||||
"backToCircle": "Revenir au cercle",
|
||||
"backToLearningPath": "Revenir au programme de formation",
|
||||
"certificate_many": "Certificats",
|
||||
|
|
@ -191,6 +206,7 @@
|
|||
"learningPathPage": {
|
||||
"currentCircle": "Cercle en cours",
|
||||
"listView": "Affichage sous forme de liste",
|
||||
"nextDueDates": "Prochaines dates",
|
||||
"nextStep": "Étape suivante",
|
||||
"pathView": "Affichage sous forme de parcours",
|
||||
"progressText": "Tu as traité {{ inProgressCount }} de {{ allCount }} cercles",
|
||||
|
|
@ -200,9 +216,13 @@
|
|||
},
|
||||
"login": {
|
||||
"demoLogin": "Connexion Demo",
|
||||
"guidelineFile": "Régistration _myAFA.pptx",
|
||||
"guidelineText": "Découvre comment t'inscrire en tant qu'apprenant-e",
|
||||
"login": "Login",
|
||||
"ssoLogin": "Connexion SSO / Inscription",
|
||||
"ssoText": "Clique sur le bouton pour te connecter via le SSO ou t’inscrire."
|
||||
"ssoText": "Clique sur le bouton pour te connecter via le SSO ou t’inscrire.",
|
||||
"welcomeText": "Bienvenue sur la page de login pour les cours interentreprises de la branche de formation et d'examens ommerciales \"Assurance privée\".",
|
||||
"welcomeUk": "Bienvenue"
|
||||
},
|
||||
"mainNavigation": {
|
||||
"logout": "Se déconnecter",
|
||||
|
|
@ -246,5 +266,21 @@
|
|||
},
|
||||
"settings": {
|
||||
"emailNotifications": "Notifications par e-mail"
|
||||
}
|
||||
},
|
||||
"uk": {
|
||||
"contact": {
|
||||
"address": "Laupenstrasse 10, 3008 Berne",
|
||||
"team": "Équipe Dévelopement de la relève",
|
||||
"title": "Association pour la formation professionnelle en assurance"
|
||||
},
|
||||
"dashboard": {
|
||||
"allClear": "Tout est clair ?",
|
||||
"nextSteps": "En tant que personne en formation, tu seras attribué(e) à un cours interentreprise dans les prochains jours. Puis tu verras apparaître ici ta boîte de formation personnalisée avec les informations complémentaires.",
|
||||
"welcome": "Tout s'est bien passé, tu es maintenant inscrit/e à l'environnement d'apprentissage numérique de l'Association pour la formation professionnelle en assurance (AFA) !"
|
||||
}
|
||||
},
|
||||
"x von y Bewertungen freigegeben": "{{x}} de {{y}} évaluations validée/s",
|
||||
"x von y Ergebnisse abgegeben": "{{x}} de {{y}} résultats remis",
|
||||
"x von y Feedbacks abgegeben": "{{x}} de {{y}} feedbacks remis",
|
||||
"x von y abgeschlossen": "{{x}} de {{y}} achevée/s"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,20 @@
|
|||
{
|
||||
"Anwesenheit Präsenzkurse": "Presenza ai corsi",
|
||||
"Anwesenheit bestätigen": "Confermare la presenza",
|
||||
"Anwesenheit prüfen": "Verificare la presenza",
|
||||
"Anwesenheitskontrolle Präsenzkurse": "Controllo di presenza ai corsi",
|
||||
"Benutzername": "Nome utente",
|
||||
"Ergebnisse anschauen": "Vedere i risultati",
|
||||
"Feedback": "Feedback",
|
||||
"Feedback anschauen": "Vedere il feedback",
|
||||
"MS Teams öffnen": "Aprire MS Teams",
|
||||
"Nächste Termine": "Prossime date",
|
||||
"Passwort": "Password",
|
||||
"Status anschauen": "Vedere lo stato",
|
||||
"TODO: Nächste Termine": "TODO: prossime date",
|
||||
"Trainerunterlagen": "Documenti del/della trainer",
|
||||
"Vorbereitungsauftrag": "Incarico di preparazione",
|
||||
"Wissens - und Verständnisfragen": "Domande di conoscenza e di comprensione",
|
||||
"Zur Zeit sind keine Termine vorhanden": "Al momento non ci sono scadenze",
|
||||
"assignment": {
|
||||
"acceptConditionsDisclaimer": "Accettare le condizioni e consegnare i risultati",
|
||||
|
|
@ -85,11 +97,14 @@
|
|||
},
|
||||
"dashboard": {
|
||||
"courses": "Corso",
|
||||
"dueDatesTitle": "Date",
|
||||
"nocourses": "Non sei ancora stato/a assegnato/a a nessun corso.",
|
||||
"welcome": "Ti diamo il benvenuto, {{name}}"
|
||||
},
|
||||
"dueDates": {
|
||||
"nextDueDates": "Prossime scadenze"
|
||||
"nextDueDates": "Prossime scadenze",
|
||||
"noDueDatesAvailable": "Nessuna data disponibile",
|
||||
"showAllDueDates": "Mostrare tutte le date"
|
||||
},
|
||||
"feedback": {
|
||||
"answers": "Risposte",
|
||||
|
|
@ -138,7 +153,7 @@
|
|||
},
|
||||
"general": {
|
||||
"back": "Indietro",
|
||||
"backCapitalized": "@.capitalize:general.back",
|
||||
"backCapitalized": "Indietro",
|
||||
"backToCircle": "Torna al Circle",
|
||||
"backToLearningPath": "Torna al percorso formativo",
|
||||
"certificate_many": "Certificati",
|
||||
|
|
@ -191,6 +206,7 @@
|
|||
"learningPathPage": {
|
||||
"currentCircle": "Circle attuale",
|
||||
"listView": "Vista elenco",
|
||||
"nextDueDates": "Prossime date",
|
||||
"nextStep": "Prossimo passo",
|
||||
"pathView": "Vista percorso",
|
||||
"progressText": "Hai svolto {{ inProgressCount }} Circle su {{ allCount }}",
|
||||
|
|
@ -200,9 +216,13 @@
|
|||
},
|
||||
"login": {
|
||||
"demoLogin": "Login Demo",
|
||||
"guidelineFile": "Registrazione _myAFA.pptx",
|
||||
"guidelineText": "Scopri come iscriverti come apprendista professionale",
|
||||
"login": "Login",
|
||||
"ssoLogin": "Login/Registrazione SSO",
|
||||
"ssoText": "Clicca sul pulsante per effettuare il login o registrarti tramite SSO."
|
||||
"ssoText": "Clicca sul pulsante per effettuare il login o registrarti tramite SSO.",
|
||||
"welcomeText": "Benvenuti nella pagina di login per i corsi interaziendali del ramo di formazione e degli esami commerciali \"Assicurazione privata\".",
|
||||
"welcomeUk": "Benvenuti"
|
||||
},
|
||||
"mainNavigation": {
|
||||
"logout": "Logout",
|
||||
|
|
@ -246,5 +266,21 @@
|
|||
},
|
||||
"settings": {
|
||||
"emailNotifications": "Notifiche e-mail"
|
||||
}
|
||||
},
|
||||
"uk": {
|
||||
"contact": {
|
||||
"address": "Laupenstrasse 10, 3008 Berna",
|
||||
"team": "Team Sviluppo delle giovani leve",
|
||||
"title": "Associazione per la formazione professionale nell'assicurzione"
|
||||
},
|
||||
"dashboard": {
|
||||
"allClear": "È tutto chiaro?",
|
||||
"nextSteps": "In qualità di apprendista, nei prossimi giorni sarai assegnata/o a un corso interaziendale. Poi il riquadro di formazione personalizzato del corso apparirà qui con ulteriori informazioni.",
|
||||
"welcome": "Tutto ha funzionato, ora sei registrata/o nell'ambiente di apprendimento digitale dell'Associazione per la formazione professionale nell'assicurazione (AFA)!"
|
||||
}
|
||||
},
|
||||
"x von y Bewertungen freigegeben": "{{x}} di {{y}} valutazioni approvate/a",
|
||||
"x von y Ergebnisse abgegeben": "{{x}} di {{y}} risultati consegnati/o",
|
||||
"x von y Feedbacks abgegeben": "{{x}} di {{y}} feedback consegnati/o",
|
||||
"x von y abgeschlossen": "{{x}} di {{y}} completate/a"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -204,9 +204,13 @@ onMounted(async () => {
|
|||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn-secondary mt-4 text-xl">
|
||||
<a
|
||||
v-if="courseSessionsStore.circleExperts.length > 0"
|
||||
:href="'mailto:' + courseSessionsStore.circleExperts[0].email"
|
||||
class="btn-secondary mt-4 text-xl"
|
||||
>
|
||||
{{ $t("circlePage.contactExpertButton") }}
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ export function learningContentTypeData(
|
|||
} else if (lc.assignment_type === "REFLECTION") {
|
||||
title = t("Reflexion");
|
||||
} else if (lc.assignment_type === "CONDITION_ACCEPTANCE") {
|
||||
title = t("Vorbedingung");
|
||||
title = t("Auftrag");
|
||||
}
|
||||
return {
|
||||
title: title,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
from django.contrib import admin
|
||||
|
||||
from vbv_lernwelt.feedback.models import FeedbackResponse
|
||||
|
||||
|
||||
@admin.register(FeedbackResponse)
|
||||
class FeedbackResponseModel(admin.ModelAdmin):
|
||||
list_display = [
|
||||
"course_session",
|
||||
"circle",
|
||||
"created_at",
|
||||
]
|
||||
list_filter = ["course_session", "circle"]
|
||||
|
|
@ -357,12 +357,26 @@ def create_or_update_course_session(
|
|||
csa.submission_deadline.end = timezone.make_aware(start)
|
||||
csa.submission_deadline.save()
|
||||
|
||||
elif (
|
||||
csa.learning_content.assignment_type
|
||||
== AssignmentType.CASEWORK.value
|
||||
and end
|
||||
):
|
||||
csa.submission_deadline.end = timezone.make_aware(
|
||||
start
|
||||
) + timezone.timedelta(days=30)
|
||||
csa.submission_deadline.save()
|
||||
|
||||
return cs
|
||||
|
||||
|
||||
def validate_row_data(data: Dict[str, any], required_headers: List[str]):
|
||||
logger.debug(
|
||||
"validate_row_data_missing_header",
|
||||
data={"data": data},
|
||||
label="import",
|
||||
)
|
||||
for header in required_headers:
|
||||
some = str(data.get(header, "")).strip()
|
||||
if str(data.get(header, "")).strip() in ["", "None"]:
|
||||
logger.debug(
|
||||
"validate_row_data_missing_header",
|
||||
|
|
|
|||
|
|
@ -3,11 +3,15 @@ import os
|
|||
from django.test import TestCase
|
||||
from openpyxl.reader.excel import load_workbook
|
||||
|
||||
from vbv_lernwelt.assignment.models import AssignmentType
|
||||
from vbv_lernwelt.core.create_default_users import create_default_users
|
||||
from vbv_lernwelt.core.models import User
|
||||
from vbv_lernwelt.course.creators.test_course import create_test_course
|
||||
from vbv_lernwelt.course.models import CourseSession, CourseSessionUser
|
||||
from vbv_lernwelt.course_session.models import CourseSessionAttendanceCourse
|
||||
from vbv_lernwelt.course_session.models import (
|
||||
CourseSessionAssignment,
|
||||
CourseSessionAttendanceCourse,
|
||||
)
|
||||
from vbv_lernwelt.duedate.models import DueDate
|
||||
from vbv_lernwelt.importer.services import (
|
||||
create_or_update_course_session,
|
||||
|
|
@ -87,6 +91,13 @@ class CreateOrUpdateCourseSessionTestCase(TestCase):
|
|||
self.assertEqual("", attendance_course.trainer)
|
||||
self.assertEqual(4, DueDate.objects.count())
|
||||
|
||||
casework = CourseSessionAssignment.objects.filter(
|
||||
learning_content__assignment_type=AssignmentType.CASEWORK.value
|
||||
).first()
|
||||
self.assertEqual(
|
||||
casework.submission_deadline.end.isoformat(), "2023-07-06T11:30:00+00:00"
|
||||
)
|
||||
|
||||
def test_update_course_session(self):
|
||||
row = [
|
||||
("ID", "AG 2023 A"),
|
||||
|
|
@ -164,6 +175,13 @@ class CreateOrUpdateCourseSessionTestCase(TestCase):
|
|||
)
|
||||
self.assertEqual(4, DueDate.objects.count())
|
||||
|
||||
casework = CourseSessionAssignment.objects.filter(
|
||||
learning_content__assignment_type=AssignmentType.CASEWORK.value
|
||||
).first()
|
||||
self.assertEqual(
|
||||
casework.submission_deadline.end.isoformat(), "2023-07-06T12:30:00+00:00"
|
||||
)
|
||||
|
||||
def test_import_course_session_twice(self):
|
||||
"""
|
||||
importing the course session twice should create the
|
||||
|
|
|
|||
Loading…
Reference in New Issue