feat(vocab): implement user vocab lesson progress reset functionality
All checks were successful
Deploy to production / deploy (push) Successful in 2m59s
All checks were successful
Deploy to production / deploy (push) Successful in 2m59s
- Added `resetUserVocabLessonProgress` method in `AdminController` to allow admins to reset a user's progress for a specific vocab lesson. - Introduced corresponding route in `adminRouter` for the new reset functionality. - Enhanced `VocabService` with methods to purge lesson progress for users, ensuring that only the specified lesson's progress is affected. - Updated UI components in `UsersView` to facilitate the selection of courses and lessons for resetting progress, including confirmation dialogs and loading states. - Added localization support for the new reset functionality across multiple languages. - Implemented reset functionality in `VocabLessonView` for users to reset their own lesson progress.
This commit is contained in:
@@ -21,6 +21,20 @@
|
||||
"actions": "Mga aksyon",
|
||||
"search": "Pangita"
|
||||
},
|
||||
"vocabLessonReset": {
|
||||
"title": "Kurso sa pinulongan: pag-uswag sa leksiyon",
|
||||
"intro": "Tangtanga ang pag-uswag, mga resulta sa ehersisyo ug natipig nga kahimtang sa usa ka leksiyon lamang (dili ang tibuok kurso). Makita ra ang mga kurso nga makita sa imong admin account (publiko o imoha).",
|
||||
"loadCourses": "Ikarga ang mga kurso",
|
||||
"selectCourse": "Kurso",
|
||||
"selectLesson": "Leksiyon",
|
||||
"reset": "I-reset ang leksiyon niining user",
|
||||
"confirm": "Tinuod nga tangtangon ang pag-uswag sa leksiyon nga «{lesson}» ni {username}?",
|
||||
"success": "Na-reset na ang pag-uswag sa leksiyon.",
|
||||
"error": "Dili ma-reset.",
|
||||
"pickUserFirst": "Una pagpili ug user.",
|
||||
"noCourses": "Walay nakarga nga kurso o walay makita nga kurso.",
|
||||
"loadingLessons": "Nagkarga sa mga leksiyon …"
|
||||
},
|
||||
"rights": {
|
||||
"add": "Idugang ang katungod",
|
||||
"select": "Palihog pagpili",
|
||||
|
||||
@@ -381,7 +381,11 @@
|
||||
"lessonReviewHintNextDue": "Sunod nga petsa: {due}.",
|
||||
"reviewTimeNow": "karon",
|
||||
"reviewTimeTomorrow": "ugma",
|
||||
"reviewTimeInDays": "sulod sa {count} ka adlaw"
|
||||
"reviewTimeInDays": "sulod sa {count} ka adlaw",
|
||||
"resetLessonProgress": "I-reset ang leksiyon",
|
||||
"resetLessonProgressConfirm": "I-reset ang pag-uswag niining leksiyona? Mawala ang natipig nga kahimtang, mga resulta sa ehersisyo ug sa trainer. Ang ubang leksiyon dili maapektuhan.",
|
||||
"resetLessonProgressSuccess": "Na-reset na ang pag-uswag sa leksiyon.",
|
||||
"resetLessonProgressError": "Dili ma-reset ang leksiyon."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,20 @@
|
||||
"actions": "Aktionen",
|
||||
"search": "Suchen"
|
||||
},
|
||||
"vocabLessonReset": {
|
||||
"title": "Sprachkurs: Lektionsfortschritt",
|
||||
"intro": "Fortschritt, Übungsergebnisse und gespeicherter Lektionszustand für eine einzelne Lektion löschen (nicht der ganze Kurs). Es werden nur Kurse gelistet, die du als Admin sehen kannst (öffentlich oder eigene).",
|
||||
"loadCourses": "Kurse laden",
|
||||
"selectCourse": "Kurs",
|
||||
"selectLesson": "Lektion",
|
||||
"reset": "Lektion für diesen Nutzer zurücksetzen",
|
||||
"confirm": "Fortschritt der Lektion „{lesson}“ für {username} wirklich löschen?",
|
||||
"success": "Lektionsfortschritt wurde zurückgesetzt.",
|
||||
"error": "Zurücksetzen fehlgeschlagen.",
|
||||
"pickUserFirst": "Zuerst einen Benutzer auswählen.",
|
||||
"noCourses": "Keine Kurse geladen oder keine sichtbaren Kurse.",
|
||||
"loadingLessons": "Lektionen werden geladen …"
|
||||
},
|
||||
"adultVerification": {
|
||||
"title": "[Admin] - Erotik-Freigaben",
|
||||
"intro": "Volljährige Nutzer können den Erotikbereich beantragen. Hier werden Anfragen geprüft und freigegeben oder abgelehnt.",
|
||||
|
||||
@@ -487,6 +487,10 @@
|
||||
"score": "Punktzahl",
|
||||
"review": "Wiederholen",
|
||||
"start": "Starten",
|
||||
"resetLessonProgress": "Lektion zurücksetzen",
|
||||
"resetLessonProgressConfirm": "Fortschritt dieser Lektion zurücksetzen? Gespeicherter Stand, Übungsergebnisse und Trainer-Zustand werden gelöscht. Andere Lektionen bleiben unverändert.",
|
||||
"resetLessonProgressSuccess": "Die Lektion wurde zurückgesetzt.",
|
||||
"resetLessonProgressError": "Die Lektion konnte nicht zurückgesetzt werden.",
|
||||
"noLessons": "Dieser Kurs hat noch keine Lektionen.",
|
||||
"lessonNumber": "Lektionsnummer",
|
||||
"chapter": "Kapitel",
|
||||
|
||||
@@ -30,6 +30,20 @@
|
||||
"actions": "Actions",
|
||||
"search": "Search"
|
||||
},
|
||||
"vocabLessonReset": {
|
||||
"title": "Language course: lesson progress",
|
||||
"intro": "Delete progress, exercise results and saved lesson state for a single lesson (not the whole course). Only courses you can see as this admin account are listed (public or your own).",
|
||||
"loadCourses": "Load courses",
|
||||
"selectCourse": "Course",
|
||||
"selectLesson": "Lesson",
|
||||
"reset": "Reset lesson for this user",
|
||||
"confirm": "Really delete progress for lesson “{lesson}” for {username}?",
|
||||
"success": "Lesson progress was reset.",
|
||||
"error": "Reset failed.",
|
||||
"pickUserFirst": "Select a user first.",
|
||||
"noCourses": "No courses loaded or no visible courses.",
|
||||
"loadingLessons": "Loading lessons…"
|
||||
},
|
||||
"adultVerification": {
|
||||
"title": "[Admin] - Erotic approvals",
|
||||
"intro": "Adult users can request access to the erotic area. Requests can be reviewed, approved or rejected here.",
|
||||
|
||||
@@ -487,6 +487,10 @@
|
||||
"score": "Score",
|
||||
"review": "Review",
|
||||
"start": "Start",
|
||||
"resetLessonProgress": "Reset lesson",
|
||||
"resetLessonProgressConfirm": "Reset progress for this lesson? Saved state, exercise results, and trainer progress will be cleared. Other lessons stay unchanged.",
|
||||
"resetLessonProgressSuccess": "Lesson progress was reset.",
|
||||
"resetLessonProgressError": "Could not reset the lesson.",
|
||||
"noLessons": "This course has no lessons yet.",
|
||||
"lessonNumber": "Lesson Number",
|
||||
"chapter": "Chapter",
|
||||
|
||||
@@ -30,6 +30,20 @@
|
||||
"actions": "Acciones",
|
||||
"search": "Buscar"
|
||||
},
|
||||
"vocabLessonReset": {
|
||||
"title": "Curso de idiomas: progreso de lección",
|
||||
"intro": "Elimina el progreso, los resultados de ejercicios y el estado guardado de una sola lección (no todo el curso). Solo se listan cursos visibles para tu cuenta de administración (públicos o propios).",
|
||||
"loadCourses": "Cargar cursos",
|
||||
"selectCourse": "Curso",
|
||||
"selectLesson": "Lección",
|
||||
"reset": "Restablecer lección para este usuario",
|
||||
"confirm": "¿Borrar de verdad el progreso de la lección «{lesson}» para {username}?",
|
||||
"success": "Se restableció el progreso de la lección.",
|
||||
"error": "No se pudo restablecer.",
|
||||
"pickUserFirst": "Primero elige un usuario.",
|
||||
"noCourses": "No hay cursos cargados o no hay cursos visibles.",
|
||||
"loadingLessons": "Cargando lecciones…"
|
||||
},
|
||||
"adultVerification": {
|
||||
"title": "[Admin] - Aprobaciones eróticas",
|
||||
"intro": "Los usuarios adultos pueden solicitar acceso al área erótica. Aquí se revisan, aprueban o rechazan las solicitudes.",
|
||||
|
||||
@@ -485,6 +485,10 @@
|
||||
"score": "Puntuación",
|
||||
"review": "Repasar",
|
||||
"start": "Empezar",
|
||||
"resetLessonProgress": "Restablecer lección",
|
||||
"resetLessonProgressConfirm": "¿Restablecer el progreso de esta lección? Se borrarán el estado guardado, los resultados de ejercicios y el progreso del entrenador. Las demás lecciones no cambian.",
|
||||
"resetLessonProgressSuccess": "Se restableció el progreso de la lección.",
|
||||
"resetLessonProgressError": "No se pudo restablecer la lección.",
|
||||
"noLessons": "Este curso aún no tiene lecciones.",
|
||||
"lessonNumber": "Número de lección",
|
||||
"chapter": "Capítulo",
|
||||
|
||||
Reference in New Issue
Block a user