Gesamtbild: konfigurierbare Gewichtung, Dämpfung nach Vorgang, Rückfall-Warnung
CI / build-and-test (push) Canceled after 0s
CI / build-and-test (push) Canceled after 0s
Feste Score-Gewichte durch einen Einstellungsdialog ersetzt. Ein geschlossener Vorgang dämpft ab seinem Schließ-Datum den zu seinen Schlagwörtern passenden Score-Bereich (Anwesenheit/Verspätung/ Klassenbuch), ohne Schlagwort-Treffer vorsichtshalber alle drei — die faktische Fehlquote bleibt davon unberührt. Verschlechtert sich die Lage danach wieder spürbar, erscheint eine "erneut auffällig"-Warnung im bestehenden "Muster erkannt"-Panel. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
using LehrerApp.Core.Services;
|
||||
|
||||
namespace LehrerApp.Desktop.ViewModels.ClassTeacher;
|
||||
|
||||
/// <summary>Dialog zum Anpassen der <see cref="PatternScoreWeights"/> für den "Gesamtbild"-Reiter
|
||||
/// der Klassenlehreransicht — ursprünglich feste Konstanten, auf Nutzerwunsch jetzt einstellbar.</summary>
|
||||
public partial class PatternScoreWeightsDialogViewModel : ObservableObject
|
||||
{
|
||||
private readonly PatternScoreSettingsService _settings;
|
||||
|
||||
[ObservableProperty] private double _unexcusedDayWeight;
|
||||
[ObservableProperty] private double _excusedDayWeight;
|
||||
[ObservableProperty] private double _lateDayWeight;
|
||||
[ObservableProperty] private double _negativeClassRegisterEntryWeight;
|
||||
[ObservableProperty] private double _concerningKeywordBonus;
|
||||
[ObservableProperty] private double _suspensionKeywordWeight;
|
||||
|
||||
public PatternScoreWeightsDialogViewModel(PatternScoreSettingsService settings)
|
||||
{
|
||||
_settings = settings;
|
||||
var weights = settings.Load();
|
||||
UnexcusedDayWeight = weights.UnexcusedDayWeight;
|
||||
ExcusedDayWeight = weights.ExcusedDayWeight;
|
||||
LateDayWeight = weights.LateDayWeight;
|
||||
NegativeClassRegisterEntryWeight = weights.NegativeClassRegisterEntryWeight;
|
||||
ConcerningKeywordBonus = weights.ConcerningKeywordBonus;
|
||||
SuspensionKeywordWeight = weights.SuspensionKeywordWeight;
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private void Save() => _settings.Save(new PatternScoreWeights
|
||||
{
|
||||
UnexcusedDayWeight = UnexcusedDayWeight,
|
||||
ExcusedDayWeight = ExcusedDayWeight,
|
||||
LateDayWeight = LateDayWeight,
|
||||
NegativeClassRegisterEntryWeight = NegativeClassRegisterEntryWeight,
|
||||
ConcerningKeywordBonus = ConcerningKeywordBonus,
|
||||
SuspensionKeywordWeight = SuspensionKeywordWeight,
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user