Neuer Dialog berechnet aus den Sitzungs-Bewertungen je Schüler eine Mitarbeitsnote (H1/H2/Gesamtjahr), mit editierbarer Aspekt-Gewichtung, Trendanzeige und Übernahme als Grade (Category=Participation).
64 lines
2.2 KiB
C#
64 lines
2.2 KiB
C#
namespace LehrerApp.Core.Models;
|
|
|
|
public class ParticipationSession
|
|
{
|
|
public Guid Id { get; set; } = Guid.NewGuid();
|
|
public Guid GroupId { get; set; }
|
|
public DateOnly Date { get; set; } = DateOnly.FromDateTime(DateTime.Today);
|
|
public Guid? LessonId { get; set; }
|
|
public string? Comment { get; set; }
|
|
public List<string> CompetencyCodes { get; set; } = [];
|
|
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
|
|
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|
|
|
|
public class ParticipationEntry
|
|
{
|
|
public Guid Id { get; set; } = Guid.NewGuid();
|
|
public Guid SessionId { get; set; }
|
|
public Guid GroupId { get; set; }
|
|
public Guid StudentId { get; set; }
|
|
public DateOnly Date { get; set; } = DateOnly.FromDateTime(DateTime.Today);
|
|
public List<AspectRating> Ratings { get; set; } = [];
|
|
public List<CompetencyRating> CompetencyRatings { get; set; } = [];
|
|
public string? Note { get; set; }
|
|
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|
|
|
|
public class CompetencyRating
|
|
{
|
|
public string Code { get; set; } = "";
|
|
public int Value { get; set; }
|
|
}
|
|
|
|
public class AspectRating
|
|
{
|
|
public string Key { get; set; } = "";
|
|
public int Value { get; set; }
|
|
}
|
|
|
|
public class ParticipationAspect
|
|
{
|
|
public Guid Id { get; set; } = Guid.NewGuid();
|
|
public Guid? GroupId { get; set; }
|
|
public string Key { get; set; } = "";
|
|
public string Label { get; set; } = "";
|
|
public AspectValueType ValueType { get; set; } = AspectValueType.Scale5;
|
|
public double Weight { get; set; } = 1.0;
|
|
public bool IsActive { get; set; } = true;
|
|
public int SortOrder { get; set; }
|
|
public DateTime UpdatedAt { get; set; } = DateTime.UtcNow;
|
|
}
|
|
|
|
public enum AspectValueType { Scale5, Scale3, Binary, Points }
|
|
|
|
public static class DefaultParticipationAspects
|
|
{
|
|
public static readonly IReadOnlyList<ParticipationAspect> All =
|
|
[
|
|
new() { Key = "quality", Label = "Qualität", ValueType = AspectValueType.Scale5, SortOrder = 0 },
|
|
new() { Key = "quantity", Label = "Quantität", ValueType = AspectValueType.Scale5, SortOrder = 1 },
|
|
new() { Key = "workphase", Label = "Arbeitsphase", ValueType = AspectValueType.Scale5, SortOrder = 2 },
|
|
];
|
|
}
|