Arbeitszeit: Zeiterfassung (Kapitel 6.2)

Neuer Tab "Zeiterfassung" neben "Aufgaben" (WorkloadViewModel als Tab-Container,
gleiches Muster wie GroupDetailViewModel): Timer mit Zuordnung zu Aufgabe/Kategorie,
manuelle Nacherfassung (Von-Bis oder Dauer), Wochenübersicht nach Kategorie, sowie
"X / Y min erfasst" direkt in der Aufgabenliste als Ist-vs-Soll-Vergleich.
This commit is contained in:
2026-08-15 23:17:44 +02:00
parent 5c0b6854f5
commit d8b05702bc
14 changed files with 707 additions and 38 deletions
+12
View File
@@ -280,6 +280,18 @@ public class FakeWorkTasks : IWorkTaskRepository
public void Delete(Guid id) => _all.RemoveAll(t => t.Id == id);
}
public class FakeTimeEntries : ITimeEntryRepository
{
private readonly List<TimeEntry> _all = [];
public void Add(TimeEntry e) => _all.Add(e);
public List<TimeEntry> GetByDate(DateOnly date) => _all.Where(e => e.Date == date).ToList();
public List<TimeEntry> GetByDateRange(DateOnly from, DateOnly to) =>
_all.Where(e => e.Date >= from && e.Date <= to).ToList();
public List<TimeEntry> GetByTask(Guid taskId) => _all.Where(e => e.TaskId == taskId).ToList();
public void Save(TimeEntry entry) { _all.RemoveAll(e => e.Id == entry.Id); _all.Add(entry); }
public void Delete(Guid id) => _all.RemoveAll(e => e.Id == id);
}
public class FakeReportGrades : IReportGradeRepository
{
private readonly List<ReportGrade> _all = [];