feat: Pädagogische Klassen-Aufgaben, Prioritäten/Checklisten, Dashboard-Schnellzugriffe
Neue Aufgabenart über bestehende Felder (WorkTask.Kind=Reminder + GroupId) statt Vererbung, mit Priorität (TaskPriority) und optionaler Abhak-Liste (ChecklistItems, wahlweise Kurs- Roster oder Freitext). Kurs-Dashboard zeigt jetzt eine "Anstehende Aufgaben"-Karte samt direktem Anlege-Button; derselbe Anlege-Einstieg wurde auch ins Hauptdashboard und (als Schnellüberblick samt fehlender Übersicht/Mitarbeit-Buttons) in die Gruppenliste gezogen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -954,4 +954,45 @@ public sealed class RepositoryTests
|
||||
Assert.Single(result);
|
||||
Assert.Equal("Vertretung 8a", result[0].Description);
|
||||
}
|
||||
|
||||
// ── WorkTaskRepository ────────────────────────────────────────────────────
|
||||
|
||||
[Fact]
|
||||
public void WorkTaskRepository_GetByGroup_FindetNurAufgabenDieserGruppe()
|
||||
{
|
||||
using var db = NewInMemoryContext();
|
||||
var repo = new WorkTaskRepository(db);
|
||||
var groupId = Guid.NewGuid();
|
||||
repo.Save(new WorkTask { Title = "Klassenaufgabe", GroupId = groupId });
|
||||
repo.Save(new WorkTask { Title = "Andere Gruppe", GroupId = Guid.NewGuid() });
|
||||
repo.Save(new WorkTask { Title = "Ohne Gruppe", GroupId = null });
|
||||
|
||||
var result = repo.GetByGroup(groupId);
|
||||
|
||||
Assert.Single(result);
|
||||
Assert.Equal("Klassenaufgabe", result[0].Title);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void WorkTaskRepository_SaveUndLoad_RundetPrioritaetUndChecklistItemsRoundTrip()
|
||||
{
|
||||
using var db = NewInMemoryContext();
|
||||
var repo = new WorkTaskRepository(db);
|
||||
var studentId = Guid.NewGuid();
|
||||
var task = new WorkTask
|
||||
{
|
||||
Title = "Material einsammeln",
|
||||
Priority = TaskPriority.High,
|
||||
ChecklistItems = [new ChecklistItem { Label = "Anna", StudentId = studentId, IsDone = true }],
|
||||
};
|
||||
|
||||
repo.Save(task);
|
||||
var loaded = repo.GetAll().Single(t => t.Id == task.Id);
|
||||
|
||||
Assert.Equal(TaskPriority.High, loaded.Priority);
|
||||
var item = Assert.Single(loaded.ChecklistItems);
|
||||
Assert.Equal("Anna", item.Label);
|
||||
Assert.Equal(studentId, item.StudentId);
|
||||
Assert.True(item.IsDone);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user