Für Fächer mit Binnendifferenzierung (z.B. Mathematik E/G-Niveau, Förderniveau) innerhalb derselben Lerngruppe: - LearningGroup.IsDifferentiated: neue Checkbox in den Stammdaten, aktiviert die Niveau-Funktionen optional für Klassen und Kurse. - Enrollment.Niveau: Niveau-Zuordnung je Schüler innerhalb der Gruppe, editierbar über eine neue Spalte im Schüler-Tab (nur sichtbar bei differenzierter Gruppe). - Exam.Niveau: Klausuren können optional einem Niveau zugeordnet werden. Workflow nutzt die bestehende Duplizieren-Funktion (1.1.4): G-Klausur anlegen, für die E-Variante duplizieren und eigene Aufgaben/Punkte vergeben — Niveau wird beim Duplizieren bewusst zurückgesetzt, damit nicht versehentlich zwei gleiche entstehen. - Punkteeingabe und Auswertung filtern automatisch auf die Schüler mit passendem Niveau; Klausuren ohne Niveau-Zuordnung verhalten sich unverändert (gesamte Gruppe). Beide Dialoge zeigen das Niveau als Badge im Titel, die Klausurenliste als eigene Spalte. - Individuelle Förderklausuren (nur für einen Schüler) laufen pragmatisch über die bestehende Abwesend-Markierung der übrigen Schüler statt über eine eigene Pro-Schüler-Zuordnung. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
36 lines
1.4 KiB
C#
36 lines
1.4 KiB
C#
namespace LehrerApp.Core.Models;
|
|
|
|
public class LearningGroup
|
|
{
|
|
public Guid Id { get; set; } = Guid.NewGuid();
|
|
public string Name { get; set; } = "";
|
|
public GroupType Type { get; set; }
|
|
public string? Subject { get; set; }
|
|
public Guid? SubjectId { get; set; }
|
|
public string SchoolYear { get; set; } = "";
|
|
public int GradeLevel { get; set; }
|
|
public GradingSystem GradingSystem { get; set; }
|
|
public int? HoursPerWeek { get; set; }
|
|
public bool IsActive { get; set; } = true;
|
|
public bool IsOwnClass { get; set; }
|
|
public bool IsDifferentiated { get; set; }
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|
|
public class Enrollment
|
|
{
|
|
public Guid Id { get; set; } = Guid.NewGuid();
|
|
public Guid StudentId { get; set; }
|
|
public Guid GroupId { get; set; }
|
|
public string SchoolYear { get; set; } = "";
|
|
public DateOnly EnrolledAt { get; set; } = DateOnly.FromDateTime(DateTime.Today);
|
|
public EnrollmentPeriod Period { get; set; } = EnrollmentPeriod.FullYear;
|
|
public DateOnly? JoinedAt { get; set; }
|
|
public DateOnly? LeftAt { get; set; }
|
|
public Niveau? Niveau { get; set; }
|
|
}
|
|
public enum EnrollmentPeriod { FullYear, H1Only, H2Only, Custom }
|
|
public enum GroupType { Class, Course }
|
|
public enum GradingSystem { Grades1To6, Points0To15 }
|
|
public enum Niveau { E, G, Foerder }
|