feat: Round 24 - Klassenlehrer management, vice principal, exam calendar, student portal exams
- Klassenlehrer management: Assign/change responsible teacher, privilege badges - Vice principal management: Assign/remove VP role, admins list - Calendar exam integration: Exam countdown, print calendar, exam filter - Student portal: Exams tab with countdown, AI study tips, virtual character - Dashboard: Klassenlehrer section with pending illness/communications - API: PUT /api/users/role for role management - API: Enhanced classes GET to include responsibleTeacher - 90+ new i18n keys
This commit is contained in:
1 parent
44ff170fca
commit
f2caf267c7
12 files changed
+1522
-14
No files matched your search
+180
@@ -4814,6 +4814,96 @@ const de: TranslationDict = {
|
||||
'communication.voice_recording_error': 'Mikrofonzugriff verweigert',
|
||||
'communication.play_voice': 'Sprachnachricht abspielen',
|
||||
'communication.pause_voice': 'Sprachnachricht pausieren',
|
||||
|
||||
// ── Responsible Teacher / Klassenlehrer ──
|
||||
'classes.responsible_teacher': 'Klassenlehrer',
|
||||
'classes.klassenlehrer': 'Klassenlehrer',
|
||||
'classes.assign_teacher': 'Klassenlehrer zuweisen',
|
||||
'classes.change_teacher': 'Klassenlehrer ändern',
|
||||
'classes.teacher_privileges': 'Lehrer-Berechtigungen',
|
||||
'classes.illness_access': 'Zugang zu Krankmeldungen',
|
||||
'classes.communication_access': 'Kommunikationsanfragen prüfen',
|
||||
'classes.counseling_access': 'Beratungstermine einsehen',
|
||||
'classes.disciplinary_access': 'Disziplinarische Vorfälle erhalten',
|
||||
'classes.no_responsible_teacher': 'Kein Klassenlehrer zugewiesen',
|
||||
'classes.teacher_assigned': 'Klassenlehrer zugewiesen',
|
||||
'classes.teacher_changed': 'Klassenlehrer geändert',
|
||||
'classes.select_teacher': 'Lehrer auswählen',
|
||||
'classes.class_statistics': 'Klassenstatistik',
|
||||
'classes.student_progress': 'Schülerfortschritt',
|
||||
'classes.class_color': 'Klassenfarbe',
|
||||
'classes.avg_mastery': 'Durchschnitt Kompetenzniveau',
|
||||
'classes.total_students': 'Gesamt Schüler',
|
||||
'classes.active_assessments': 'Aktive Prüfungen',
|
||||
'classes.teacher_badge': 'Klassenlehrer',
|
||||
'classes.privileges_info': 'Der Klassenlehrer hat besondere Rechte: Krankmeldungen, Kommunikationsanfragen, Beratungstermine und Disziplinarfälle für diese Klasse.',
|
||||
|
||||
// ── Vice Principal ──
|
||||
'settings.vice_principal': 'Stellvertretender Schulleiter',
|
||||
'settings.vice_principal_short': 'Stv. Schulleiter',
|
||||
'settings.assign_vice_principal': 'Zum Stellv. Schulleiter ernennen',
|
||||
'settings.remove_vice_principal': 'Stellv. Schulleiter-Rolle entfernen',
|
||||
'settings.current_admins': 'Aktuelle Administratoren',
|
||||
'settings.admin_list': 'Admin-Liste',
|
||||
'settings.role_changed': 'Rolle geändert',
|
||||
'settings.role_removed': 'Rolle entfernt',
|
||||
'settings.confirm_role_change': 'Rolle wirklich ändern?',
|
||||
'settings.confirm_role_remove': 'Stellv. Schulleiter-Rolle wirklich entfernen?',
|
||||
'settings.vice_principal_desc': 'Stellvertretende Schulleiter haben erweiterte Rechte, ähnlich wie Schulleiter, können aber keine Super-Admins erstellen.',
|
||||
'settings.manage_roles': 'Rollen verwalten',
|
||||
'settings.user_role': 'Benutzerrolle',
|
||||
|
||||
// ── Calendar Exam Integration ──
|
||||
'calendar.exam_mode': 'Prüfungsmodus',
|
||||
'calendar.exam_marker': 'Prüfung',
|
||||
'calendar.print': 'Kalender drucken',
|
||||
'calendar.exam_details': 'Prüfungsdetails',
|
||||
'calendar.plan_exam': 'Prüfung planen',
|
||||
'calendar.exam_filter': 'Nur Prüfungen anzeigen',
|
||||
'calendar.exam_countdown': 'Tage bis Prüfung',
|
||||
'calendar.exam_today': 'Heute',
|
||||
'calendar.exam_tomorrow': 'Morgen',
|
||||
'calendar.exam_in_days': 'In {days} Tagen',
|
||||
'calendar.exam_in_weeks': 'In {weeks} Wochen',
|
||||
'calendar.no_exams': 'Keine Prüfungen geplant',
|
||||
'calendar.exam_subject': 'Fach',
|
||||
'calendar.exam_class': 'Klasse',
|
||||
'calendar.exam_teacher': 'Lehrer',
|
||||
'calendar.exam_type': 'Prüfungstyp',
|
||||
'calendar.exam_notes': 'Prüfungshinweise',
|
||||
'calendar.exam_created': 'Prüfung erstellt',
|
||||
'calendar.show_all': 'Alle anzeigen',
|
||||
'calendar.show_exams_only': 'Nur Prüfungen',
|
||||
|
||||
// ── Dashboard Klassenlehrer ──
|
||||
'dashboard.klassenlehrer_section': 'Klassenlehrer-Übersicht',
|
||||
'dashboard.pending_illness': 'Ausstehende Krankmeldungen',
|
||||
'dashboard.pending_communications': 'Offene Kommunikationsanfragen',
|
||||
'dashboard.class_overview': 'Klassenübersicht',
|
||||
'dashboard.upcoming_exams': 'Anstehende Prüfungen',
|
||||
'dashboard.my_classes': 'Meine Klassen',
|
||||
'dashboard.no_illness_reports': 'Keine ausstehenden Krankmeldungen',
|
||||
'dashboard.no_communications': 'Keine offenen Anfragen',
|
||||
'dashboard.quick_actions': 'Schnellaktionen',
|
||||
|
||||
// ── Student Portal Enhancements ──
|
||||
'portal.upcoming_exams': 'Anstehende Prüfungen',
|
||||
'portal.study_tips': 'Lerntipps',
|
||||
'portal.practice_recommendations': 'Übungsempfehlungen',
|
||||
'portal.ai_assistant': 'KI-Assistent',
|
||||
'portal.exam_countdown': 'Prüfung_countdown',
|
||||
'portal.days_left': 'Tage verbleibend',
|
||||
'portal.prepare_exam': 'Prüfung vorbereiten',
|
||||
'portal.no_exams_scheduled': 'Keine Prüfungen geplant',
|
||||
'portal.ai_study_tip': 'KI-Lerntipp',
|
||||
'portal.recommended_exercises': 'Empfohlene Übungen',
|
||||
'portal.start_practice': 'Übung starten',
|
||||
'portal.virtual_character': 'Virtueller Begleiter',
|
||||
'portal.ask_ai': 'KI fragen',
|
||||
'portal.exam_ready': 'Prüfungsbereit',
|
||||
'portal.study_progress': 'Lernfortschritt',
|
||||
'portal.focus_areas': 'Schwerpunkte',
|
||||
'portal.motivation_message': 'Weiter so! Du bist auf dem richtigen Weg.',
|
||||
};
|
||||
|
||||
const en: TranslationDict = {
|
||||
@@ -9626,6 +9716,96 @@ const en: TranslationDict = {
|
||||
'communication.voice_recording_error': 'Microphone access denied',
|
||||
'communication.play_voice': 'Play voice message',
|
||||
'communication.pause_voice': 'Pause voice message',
|
||||
|
||||
// ── Responsible Teacher / Klassenlehrer ──
|
||||
'classes.responsible_teacher': 'Responsible Teacher',
|
||||
'classes.klassenlehrer': 'Homeroom Teacher',
|
||||
'classes.assign_teacher': 'Assign Responsible Teacher',
|
||||
'classes.change_teacher': 'Change Responsible Teacher',
|
||||
'classes.teacher_privileges': 'Teacher Privileges',
|
||||
'classes.illness_access': 'Illness Report Access',
|
||||
'classes.communication_access': 'Communication Request Review',
|
||||
'classes.counseling_access': 'Counseling Appointment Access',
|
||||
'classes.disciplinary_access': 'Disciplinary Case Notifications',
|
||||
'classes.no_responsible_teacher': 'No responsible teacher assigned',
|
||||
'classes.teacher_assigned': 'Responsible teacher assigned',
|
||||
'classes.teacher_changed': 'Responsible teacher changed',
|
||||
'classes.select_teacher': 'Select Teacher',
|
||||
'classes.class_statistics': 'Class Statistics',
|
||||
'classes.student_progress': 'Student Progress',
|
||||
'classes.class_color': 'Class Color',
|
||||
'classes.avg_mastery': 'Average Mastery Level',
|
||||
'classes.total_students': 'Total Students',
|
||||
'classes.active_assessments': 'Active Assessments',
|
||||
'classes.teacher_badge': 'Homeroom Teacher',
|
||||
'classes.privileges_info': 'The responsible teacher has special privileges: illness reports, communication requests, counseling appointments, and disciplinary cases for this class.',
|
||||
|
||||
// ── Vice Principal ──
|
||||
'settings.vice_principal': 'Vice Principal',
|
||||
'settings.vice_principal_short': 'Vice Principal',
|
||||
'settings.assign_vice_principal': 'Assign Vice Principal Role',
|
||||
'settings.remove_vice_principal': 'Remove Vice Principal Role',
|
||||
'settings.current_admins': 'Current Administrators',
|
||||
'settings.admin_list': 'Admin List',
|
||||
'settings.role_changed': 'Role changed',
|
||||
'settings.role_removed': 'Role removed',
|
||||
'settings.confirm_role_change': 'Are you sure you want to change this role?',
|
||||
'settings.confirm_role_remove': 'Are you sure you want to remove the Vice Principal role?',
|
||||
'settings.vice_principal_desc': 'Vice Principals have extended privileges similar to school admins, but cannot create super admins.',
|
||||
'settings.manage_roles': 'Manage Roles',
|
||||
'settings.user_role': 'User Role',
|
||||
|
||||
// ── Calendar Exam Integration ──
|
||||
'calendar.exam_mode': 'Exam Mode',
|
||||
'calendar.exam_marker': 'Exam',
|
||||
'calendar.print': 'Print Calendar',
|
||||
'calendar.exam_details': 'Exam Details',
|
||||
'calendar.plan_exam': 'Plan Exam',
|
||||
'calendar.exam_filter': 'Show Exams Only',
|
||||
'calendar.exam_countdown': 'Days Until Exam',
|
||||
'calendar.exam_today': 'Today',
|
||||
'calendar.exam_tomorrow': 'Tomorrow',
|
||||
'calendar.exam_in_days': 'In {days} days',
|
||||
'calendar.exam_in_weeks': 'In {weeks} weeks',
|
||||
'calendar.no_exams': 'No exams scheduled',
|
||||
'calendar.exam_subject': 'Subject',
|
||||
'calendar.exam_class': 'Class',
|
||||
'calendar.exam_teacher': 'Teacher',
|
||||
'calendar.exam_type': 'Exam Type',
|
||||
'calendar.exam_notes': 'Exam Notes',
|
||||
'calendar.exam_created': 'Exam created',
|
||||
'calendar.show_all': 'Show All',
|
||||
'calendar.show_exams_only': 'Exams Only',
|
||||
|
||||
// ── Dashboard Klassenlehrer ──
|
||||
'dashboard.klassenlehrer_section': 'Homeroom Teacher Overview',
|
||||
'dashboard.pending_illness': 'Pending Illness Reports',
|
||||
'dashboard.pending_communications': 'Open Communication Requests',
|
||||
'dashboard.class_overview': 'Class Overview',
|
||||
'dashboard.upcoming_exams': 'Upcoming Exams',
|
||||
'dashboard.my_classes': 'My Classes',
|
||||
'dashboard.no_illness_reports': 'No pending illness reports',
|
||||
'dashboard.no_communications': 'No open requests',
|
||||
'dashboard.quick_actions': 'Quick Actions',
|
||||
|
||||
// ── Student Portal Enhancements ──
|
||||
'portal.upcoming_exams': 'Upcoming Exams',
|
||||
'portal.study_tips': 'Study Tips',
|
||||
'portal.practice_recommendations': 'Practice Recommendations',
|
||||
'portal.ai_assistant': 'AI Assistant',
|
||||
'portal.exam_countdown': 'Exam Countdown',
|
||||
'portal.days_left': 'Days Left',
|
||||
'portal.prepare_exam': 'Prepare for Exam',
|
||||
'portal.no_exams_scheduled': 'No exams scheduled',
|
||||
'portal.ai_study_tip': 'AI Study Tip',
|
||||
'portal.recommended_exercises': 'Recommended Exercises',
|
||||
'portal.start_practice': 'Start Practice',
|
||||
'portal.virtual_character': 'Virtual Companion',
|
||||
'portal.ask_ai': 'Ask AI',
|
||||
'portal.exam_ready': 'Exam Ready',
|
||||
'portal.study_progress': 'Study Progress',
|
||||
'portal.focus_areas': 'Focus Areas',
|
||||
'portal.motivation_message': 'Keep going! You are on the right track.',
|
||||
};
|
||||
|
||||
const translations: Record<string, TranslationDict> = { de, en };
|
||||
|
||||
Reference in new issue
Block a user