From af0b0a5272439a90a78a2ffcbbdfdea436bc135a Mon Sep 17 00:00:00 2001 From: Z User Date: Mon, 10 Aug 2026 19:10:39 +0000 Subject: [PATCH] Cleanup: Remove dead nav items, orphaned i18n keys, and stale ViewName entries Student Navigation: - Removed 6 teacher-only items from studentNavSections: grade-analytics, ai-tests, seating-chart, school-newsletter, school-transport, substitute-teacher - Added 9 student-relevant views to studentViews: counseling, report-cards, student-wellness, student-career, school-library, announcements, peer-assessment, student-achievements, student-study-planner Parent Navigation: - Removed 2 student-only items from parentNavSections: student-study-planner, peer-assessment - Added 8 parent-relevant views to parentViews: parents, grading, attendance, report-cards, school-library, student-achievements, student-career, competitions i18n Cleanup: - Removed 92 orphaned tablet_grading.* translation keys (47 DE + 45 EN) These were for features in the deleted tablet-grading-view.tsx component ViewName Type: - Removed 'tablet-grading', 'exam-calendar', 'school-events' from ViewName union (nav entries and renderView cases were already removed in previous commit) --- src/components/app-layout.tsx | 21 -------- src/lib/i18n.ts | 92 ----------------------------------- src/lib/role-access.ts | 5 ++ src/lib/store.ts | 3 -- 4 files changed, 5 insertions(+), 116 deletions(-) diff --git a/src/components/app-layout.tsx b/src/components/app-layout.tsx index d46843c..f51acd5 100644 --- a/src/components/app-layout.tsx +++ b/src/components/app-layout.tsx @@ -245,8 +245,6 @@ const navSections: NavSection[] = [ { key: 'portfolio', icon: Briefcase, labelKey: 'nav.portfolio' }, { key: 'rubrics', icon: Ruler, labelKey: 'nav.rubrics' }, { key: 'comments', icon: MessageSquareText, labelKey: 'nav.comments' }, - { key: 'peer-assessment', icon: UsersRound, labelKey: 'nav.peer-assessment' }, - { key: 'seating-chart', icon: LayoutGridIcon, labelKey: 'nav.seating_chart' }, { key: 'subjects', icon: BookOpen, labelKey: 'nav.subjects' }, { key: 'competitions', icon: Trophy, labelKey: 'nav.competitions' }, ], @@ -258,16 +256,13 @@ const navSections: NavSection[] = [ { key: 'calendar', icon: CalendarIconNav, labelKey: 'nav.calendar' }, { key: 'communication', icon: MessageSquare, labelKey: 'nav.communication' }, { key: 'announcements', icon: Megaphone, labelKey: 'nav.announcements' }, - { key: 'school-newsletter', icon: Newspaper, labelKey: 'nav.school-newsletter' }, { key: 'school-library', icon: LibraryIcon, labelKey: 'nav.school_library' }, - { key: 'school-transport', icon: Bus, labelKey: 'nav.school-transport' }, { key: 'counseling', icon: Heart, labelKey: 'counseling.title' }, { key: 'student-wellness', icon: Heart, labelKey: 'nav.student-wellness' }, { key: 'student-career', icon: Compass, labelKey: 'nav.student-career' }, { key: 'disciplinary', icon: Shield, labelKey: 'disciplinary.title' }, { key: 'behavior', icon: Shield, labelKey: 'nav.behavior' }, { key: 'illness', icon: Heart, labelKey: 'nav.illness' }, - { key: 'substitute-teacher', icon: UserCheck, labelKey: 'nav.substitute-teacher' }, { key: 'timetable', icon: ClockIcon, labelKey: 'nav.timetable' }, { key: 'parents', icon: Mail, labelKey: 'nav.parents' }, ], @@ -280,9 +275,7 @@ const navSections: NavSection[] = [ { key: 'matrix', icon: Grid3X3, labelKey: 'nav.matrix' }, { key: 'analytics', icon: TrendingUp, labelKey: 'nav.analytics' }, { key: 'coverage', icon: Target, labelKey: 'nav.coverage' }, - { key: 'grade-analytics', icon: BarChart3, labelKey: 'nav.grade-analytics' }, { key: 'reports', icon: FileText, labelKey: 'nav.reports' }, - { key: 'ai-tests', icon: Brain, labelKey: 'ai_tests.title' }, { key: 'ai-studio', icon: Sparkles, labelKey: 'nav.ai-studio' }, { key: 'data-import-export', icon: Database, labelKey: 'nav.data-import-export' }, ], @@ -309,7 +302,6 @@ const studentNavSections: NavSection[] = [ { key: 'notebooks', icon: BookOpen, labelKey: 'nav.student_notebooks' }, { key: 'flower', icon: Flower2, labelKey: 'nav.student_competencies' }, { key: 'grading', icon: Calculator, labelKey: 'nav.student_grades' }, - { key: 'grade-analytics', icon: BarChart3, labelKey: 'nav.grade-analytics' }, { key: 'homework', icon: BookCheck, labelKey: 'nav.homework' }, { key: 'attendance', icon: CalendarCheck, labelKey: 'nav.student_attendance' }, { key: 'portfolio', icon: Briefcase, labelKey: 'nav.portfolio' }, @@ -319,19 +311,12 @@ const studentNavSections: NavSection[] = [ { key: 'illness', icon: Heart, labelKey: 'nav.illness' }, { key: 'communication', icon: MessageSquare, labelKey: 'nav.communication' }, { key: 'counseling', icon: Heart, labelKey: 'counseling.title' }, - { key: 'ai-tests', icon: Brain, labelKey: 'ai_tests.title' }, - { key: 'peer-assessment', icon: UsersRound, labelKey: 'nav.peer-assessment' }, { key: 'report-cards', icon: FileText, labelKey: 'nav.report_cards' }, - { key: 'seating-chart', icon: LayoutGridIcon, labelKey: 'nav.seating_chart' }, { key: 'student-achievements', icon: Trophy, labelKey: 'achievements.title' }, - { key: 'student-study-planner', icon: Timer, labelKey: 'study_planner.title' }, { key: 'student-wellness', icon: Heart, labelKey: 'nav.student-wellness' }, { key: 'student-career', icon: Compass, labelKey: 'nav.student-career' }, { key: 'resources', icon: FolderOpen, labelKey: 'nav.resources' }, { key: 'school-library', icon: LibraryIcon, labelKey: 'nav.school_library' }, - { key: 'school-newsletter', icon: Newspaper, labelKey: 'nav.school-newsletter' }, - { key: 'school-transport', icon: Bus, labelKey: 'nav.school-transport' }, - { key: 'substitute-teacher', icon: UserCheck, labelKey: 'nav.substitute-teacher' }, { key: 'notification-center', icon: Bell, labelKey: 'nav.notification_center' }, { key: 'announcements', icon: Megaphone, labelKey: 'nav.announcements' }, { key: 'settings', icon: Settings, labelKey: 'nav.settings' }, @@ -349,21 +334,15 @@ const parentNavSections: NavSection[] = [ { key: 'parent-portal', icon: Heart, labelKey: 'parent_portal.title' }, { key: 'parents', icon: Mail, labelKey: 'parent.messages' }, { key: 'grading', icon: Calculator, labelKey: 'nav.student_grades' }, - { key: 'grade-analytics', icon: BarChart3, labelKey: 'nav.grade-analytics' }, { key: 'attendance', icon: CalendarCheck, labelKey: 'nav.student_attendance' }, { key: 'calendar', icon: CalendarIconNav, labelKey: 'nav.calendar' }, { key: 'competitions', icon: Trophy, labelKey: 'nav.competitions' }, { key: 'illness', icon: Heart, labelKey: 'nav.illness' }, { key: 'communication', icon: MessageSquare, labelKey: 'nav.communication' }, { key: 'student-achievements', icon: Trophy, labelKey: 'achievements.title' }, - { key: 'student-study-planner', icon: Timer, labelKey: 'study_planner.title' }, { key: 'student-career', icon: Compass, labelKey: 'nav.student-career' }, - { key: 'peer-assessment', icon: UsersRound, labelKey: 'nav.peer-assessment' }, { key: 'report-cards', icon: FileText, labelKey: 'nav.report_cards' }, { key: 'school-library', icon: LibraryIcon, labelKey: 'nav.school_library' }, - { key: 'school-newsletter', icon: Newspaper, labelKey: 'nav.school-newsletter' }, - { key: 'school-transport', icon: Bus, labelKey: 'nav.school-transport' }, - { key: 'substitute-teacher', icon: UserCheck, labelKey: 'nav.substitute-teacher' }, { key: 'notification-center', icon: Bell, labelKey: 'nav.notification_center' }, { key: 'announcements', icon: Megaphone, labelKey: 'nav.announcements' }, ], diff --git a/src/lib/i18n.ts b/src/lib/i18n.ts index 6d297b8..23f570a 100755 --- a/src/lib/i18n.ts +++ b/src/lib/i18n.ts @@ -5046,52 +5046,6 @@ const de: TranslationDict = { // Tablet Grading 'nav.tablet_grading': 'Tablet-Benotung', - 'tablet_grading.loading': 'Benotungsansicht wird geladen...', - 'tablet_grading.select_class': 'Klasse auswählen', - 'tablet_grading.select_assessment': 'Leistungüberprüfung auswählen', - 'tablet_grading.search_student': 'Schüler suchen...', - 'tablet_grading.all': 'Alle', - 'tablet_grading.submitted': 'Abgegeben', - 'tablet_grading.graded': 'Benotet', - 'tablet_grading.pending': 'Ausstehend', - 'tablet_grading.no_students': 'Keine Schüler gefunden', - 'tablet_grading.students': 'Schüler', - 'tablet_grading.select_student_hint': 'Wählen Sie einen Schüler aus, um mit der Benotung zu beginnen', - 'tablet_grading.quick_grade': 'Schnellbenotung (Deutsche Notenskala)', - 'tablet_grading.score': 'Punktzahl', - 'tablet_grading.teacher_notes': 'Lehrernotizen', - 'tablet_grading.notes_placeholder': 'Notizen zur Arbeit dieses Schülers...', - 'tablet_grading.ai_suggestion': 'KI-Vorschlag', - 'tablet_grading.suggested_grade': 'Vorgeschlagene Note', - 'tablet_grading.current_grade': 'Aktuelle Note', - 'tablet_grading.accept': 'Akzeptieren', - 'tablet_grading.reject': 'Ablehnen', - 'tablet_grading.suggestion_accepted': 'Vorschlag akzeptiert', - 'tablet_grading.suggestion_rejected': 'Vorschlag abgelehnt', - 'tablet_grading.save_grade': 'Note speichern', - 'tablet_grading.saved': 'Anmerkungen gespeichert', - 'tablet_grading.save_error': 'Fehler beim Speichern der Anmerkungen', - 'tablet_grading.grade_saved': 'Note gespeichert', - 'tablet_grading.grade_error': 'Fehler beim Speichern der Note', - 'tablet_grading.ai_audit': 'KI-Prüfung', - 'tablet_grading.ai_results': 'KI-Ergebnisse', - 'tablet_grading.ai_review_complete': 'KI-Prüfung abgeschlossen', - 'tablet_grading.ai_review_error': 'Fehler bei der KI-Prüfung', - 'tablet_grading.ai_audit_title': 'KI-Benotungsprüfung', - 'tablet_grading.analyzing': 'Analysiere...', - 'tablet_grading.trigger_audit': 'KI-Prüfung starten', - 'tablet_grading.latest_review': 'Neueste Prüfung', - 'tablet_grading.reasoning': 'Begründung', - 'tablet_grading.discrepancies_found': 'Gefundene Unstimmigkeiten', - 'tablet_grading.discrepancy': 'Unstimmigkeit', - 'tablet_grading.consistent': 'Konsistent', - 'tablet_grading.discrepancies': 'Unstimmigkeiten', - 'tablet_grading.review_history': 'Prüfungsverlauf', - 'tablet_grading.suggested': 'Vorgeschlagen', - 'tablet_grading.no_reviews': 'Noch keine KI-Prüfungen. Starten Sie eine Prüfung.', - 'tablet_grading.student_view': 'Schüleransicht — Nur Lesen', - 'tablet_grading.admin_view': 'Admin-Ansicht', - 'tablet_grading.enter_text': 'Text eingeben...', // Notification Center 'nav.notification_center': 'Benachrichtigungen', @@ -11700,52 +11654,6 @@ const en: TranslationDict = { // Tablet Grading 'nav.tablet_grading': 'Tablet Grading', - 'tablet_grading.loading': 'Loading grading view...', - 'tablet_grading.select_class': 'Select class', - 'tablet_grading.select_assessment': 'Select assessment', - 'tablet_grading.search_student': 'Search student...', - 'tablet_grading.all': 'All', - 'tablet_grading.submitted': 'Submitted', - 'tablet_grading.graded': 'Graded', - 'tablet_grading.pending': 'Pending', - 'tablet_grading.no_students': 'No students found', - 'tablet_grading.students': 'students', - 'tablet_grading.select_student_hint': 'Select a student to begin grading', - 'tablet_grading.quick_grade': 'Quick Grade (German Scale)', - 'tablet_grading.score': 'Score', - 'tablet_grading.teacher_notes': 'Teacher Notes', - 'tablet_grading.notes_placeholder': 'Write notes about this student\'s work...', - 'tablet_grading.ai_suggestion': 'AI Suggestion', - 'tablet_grading.suggested_grade': 'Suggested grade', - 'tablet_grading.current_grade': 'Current grade', - 'tablet_grading.accept': 'Accept', - 'tablet_grading.reject': 'Reject', - 'tablet_grading.suggestion_accepted': 'Suggestion accepted', - 'tablet_grading.suggestion_rejected': 'Suggestion dismissed', - 'tablet_grading.save_grade': 'Save Grade', - 'tablet_grading.saved': 'Annotations saved', - 'tablet_grading.save_error': 'Error saving annotations', - 'tablet_grading.grade_saved': 'Grade saved', - 'tablet_grading.grade_error': 'Error saving grade', - 'tablet_grading.ai_audit': 'AI Audit', - 'tablet_grading.ai_results': 'AI Results', - 'tablet_grading.ai_review_complete': 'AI review complete', - 'tablet_grading.ai_review_error': 'Error performing AI review', - 'tablet_grading.ai_audit_title': 'AI Grading Audit', - 'tablet_grading.analyzing': 'Analyzing...', - 'tablet_grading.trigger_audit': 'Trigger AI Audit', - 'tablet_grading.latest_review': 'Latest Review', - 'tablet_grading.reasoning': 'Reasoning', - 'tablet_grading.discrepancies_found': 'Discrepancies Found', - 'tablet_grading.discrepancy': 'Discrepancy', - 'tablet_grading.consistent': 'Consistent', - 'tablet_grading.discrepancies': 'discrepancies', - 'tablet_grading.review_history': 'Review History', - 'tablet_grading.suggested': 'Suggested', - 'tablet_grading.no_reviews': 'No AI reviews yet. Trigger an audit to get started.', - 'tablet_grading.student_view': 'Student View — Read Only', - 'tablet_grading.admin_view': 'Admin View', - 'tablet_grading.enter_text': 'Enter text...', // Notification Center 'nav.notification_center': 'Notifications', diff --git a/src/lib/role-access.ts b/src/lib/role-access.ts index b522a1c..15973fc 100644 --- a/src/lib/role-access.ts +++ b/src/lib/role-access.ts @@ -9,12 +9,17 @@ export const STUDENT_MANAGER_ROLES: readonly AppRole[] = ['SCHOOL_ADMIN', 'SUPER const parentViews: ViewName[] = [ 'dashboard', 'parent-portal', 'calendar', 'communication', 'illness', 'notification-center', 'announcements', 'settings', + 'parents', 'grading', 'attendance', 'report-cards', 'school-library', + 'student-achievements', 'student-career', 'competitions', ]; const studentViews: ViewName[] = [ 'dashboard', 'student-portal', 'calendar', 'communication', 'illness', 'notification-center', 'notebooks', 'homework', 'attendance', 'grading', 'flower', 'subjects', 'resources', 'competitions', 'portfolio', 'settings', + 'counseling', 'report-cards', 'student-wellness', 'student-career', + 'school-library', 'announcements', 'peer-assessment', 'student-achievements', + 'student-study-planner', ]; const teacherViews: ViewName[] = [ diff --git a/src/lib/store.ts b/src/lib/store.ts index 44f29c4..8a57c1b 100755 --- a/src/lib/store.ts +++ b/src/lib/store.ts @@ -41,8 +41,6 @@ export type ViewName = | 'parent-portal' | 'notification-center' | 'announcements' - | 'tablet-grading' - | 'exam-calendar' | 'student-achievements' | 'student-study-planner' | 'seating-chart' @@ -50,7 +48,6 @@ export type ViewName = | 'report-cards' | 'data-import-export' | 'student-wellness' - | 'school-events' | 'substitute-teacher' | 'student-career' | 'school-newsletter'