feat: Dunkelmodus, Fenstergröße merken, Papierkorb für Löschvorgänge (12.4, 14.3, 14.6)
Dunkelmodus über neuen Einstellungen-Tab "Darstellung" (Systemvorgabe/Hell/Dunkel), Fenstergröße/Maximiert-Status wird über Sitzungen hinweg gemerkt (bewusst ohne Fensterposition), und ein generischer Snapshot-basierter Papierkorb (30 Tage) für Sitzpläne, Noten, Notenschlüssel-Vorlagen, Aufgaben und Zeiteinträge. Details und bewusste Scope-Entscheidungen (Spaltenbreiten zurückgestellt, Farb-Audit für Dunkelmodus offen, welche Entitäten der Papierkorb abdeckt) in TODO.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -25,6 +25,9 @@ public interface ISeatingPlanRepository
|
||||
List<SeatingPlan> GetByGroup(Guid groupId);
|
||||
void Save(SeatingPlan plan);
|
||||
void Delete(Guid id);
|
||||
/// <summary>Stellt einen über <see cref="Delete"/> in den Papierkorb verschobenen Sitzplan
|
||||
/// wieder her (14.3). Tut nichts, falls der Papierkorb-Eintrag nicht (mehr) existiert.</summary>
|
||||
void Restore(Guid trashId);
|
||||
}
|
||||
public interface IGroupMembershipRepository
|
||||
{
|
||||
@@ -57,6 +60,8 @@ public interface IGradingKeyTemplateRepository
|
||||
GradingKeyTemplate? GetById(Guid id);
|
||||
void Save(GradingKeyTemplate template);
|
||||
void Delete(Guid id);
|
||||
/// <summary>Siehe ISeatingPlanRepository.Restore (14.3).</summary>
|
||||
void Restore(Guid trashId);
|
||||
}
|
||||
public interface IGradeRepository
|
||||
{
|
||||
@@ -64,6 +69,8 @@ public interface IGradeRepository
|
||||
List<Grade> GetByGroup(Guid groupId);
|
||||
void Save(Grade grade);
|
||||
void Delete(Guid id);
|
||||
/// <summary>Siehe ISeatingPlanRepository.Restore (14.3).</summary>
|
||||
void Restore(Guid trashId);
|
||||
}
|
||||
public interface IGradingSchemeRepository
|
||||
{
|
||||
@@ -138,6 +145,8 @@ public interface IWorkTaskRepository
|
||||
List<WorkTask> GetAll();
|
||||
void Save(WorkTask task);
|
||||
void Delete(Guid id);
|
||||
/// <summary>Siehe ISeatingPlanRepository.Restore (14.3).</summary>
|
||||
void Restore(Guid trashId);
|
||||
}
|
||||
public interface ITimeEntryRepository
|
||||
{
|
||||
@@ -146,6 +155,8 @@ public interface ITimeEntryRepository
|
||||
List<TimeEntry> GetByTask(Guid taskId);
|
||||
void Save(TimeEntry entry);
|
||||
void Delete(Guid id);
|
||||
/// <summary>Siehe ISeatingPlanRepository.Restore (14.3).</summary>
|
||||
void Restore(Guid trashId);
|
||||
}
|
||||
public interface IParticipationSessionRepository
|
||||
{
|
||||
@@ -209,3 +220,11 @@ public interface IAlternativeLessonPathRepository
|
||||
void Save(AlternativeLessonPath path);
|
||||
void Delete(Guid id);
|
||||
}
|
||||
/// <summary>Papierkorb (14.3) — reine Übersicht/Aufräumen; das eigentliche Wiederherstellen läuft
|
||||
/// über die jeweilige Fach-Repository (z.B. IGradeRepository.Restore), da nur die kennt, wie ein
|
||||
/// Schnappschuss ihres Modells korrekt gespeichert wird (Validierung, OnChange-Ereignis).</summary>
|
||||
public interface ITrashRepository
|
||||
{
|
||||
List<TrashedItem> GetAll();
|
||||
void PurgeOlderThan(DateTime cutoffUtc);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user