feat(vocab): implement user vocab lesson progress reset functionality
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:
Torsten Schulz (local)
2026-04-02 08:25:56 +02:00
parent 13534498fa
commit c3b2c60362
22 changed files with 517 additions and 24 deletions

View File

@@ -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.",

View File

@@ -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",