diff --git a/LehrerApp.Core/Models/Workload.cs b/LehrerApp.Core/Models/Workload.cs index 6b98b8f..3093c5f 100644 --- a/LehrerApp.Core/Models/Workload.cs +++ b/LehrerApp.Core/Models/Workload.cs @@ -24,6 +24,10 @@ public class Documentation : IHasAttachments /// Im Unterricht schnell erfasst und noch inhaltlich nachzuarbeiten. public bool IsDraft { get; set; } public bool IsConfidential { get; set; } + /// Für die pädagogische Arbeit/Leistungsbewertung gedacht, aber nicht für den + /// WebUntis-Klassenbuch-Abgleich vorgesehen - blendet den Eintrag im Abgleichsdialog + /// (WebUntisDocumentationComparisonViewModel) aus dem Zwischenablage-Vorschlag aus. + public bool ExcludeFromWebUntisSync { get; set; } public DateTime CreatedAt { get; set; } = DateTime.UtcNow; public DateTime UpdatedAt { get; set; } = DateTime.UtcNow; // Löschen entfernt den Eintrag nicht hart, sondern markiert ihn nur (Nachvollziehbarkeit, 5.1.4). diff --git a/LehrerApp.Desktop/ViewModels/Students/DocumentationViewModels.cs b/LehrerApp.Desktop/ViewModels/Students/DocumentationViewModels.cs index 791f58d..ab95edf 100644 --- a/LehrerApp.Desktop/ViewModels/Students/DocumentationViewModels.cs +++ b/LehrerApp.Desktop/ViewModels/Students/DocumentationViewModels.cs @@ -107,6 +107,7 @@ public partial class DocumentationDialogViewModel : ObservableObject [ObservableProperty] private string _title = ""; [ObservableProperty] private string _content = ""; [ObservableProperty] private bool _isConfidential; + [ObservableProperty] private bool _excludeFromWebUntisSync; [ObservableProperty] private string _newParticipant = ""; public ObservableCollection Participants { get; } = []; @@ -176,6 +177,7 @@ public partial class DocumentationDialogViewModel : ObservableObject Title = editing.Title; Content = editing.Content; IsConfidential = editing.IsConfidential; + ExcludeFromWebUntisSync = editing.ExcludeFromWebUntisSync; foreach (var p in editing.Participants) Participants.Add(p); if (editing.AbsenceData is { } a) { @@ -343,6 +345,7 @@ public partial class DocumentationDialogViewModel : ObservableObject // Schnellentwurf ab. Stunden- und Lesson-Bezug bleiben am bestehenden Objekt erhalten. Result.IsDraft = false; Result.IsConfidential = IsConfidential; + Result.ExcludeFromWebUntisSync = ExcludeFromWebUntisSync; Result.Participants = type == DocumentationType.Conversation ? Participants.ToList() : []; Result.AbsenceData = type == DocumentationType.Absence ? new AbsenceData diff --git a/LehrerApp.Desktop/ViewModels/Students/WebUntisDocumentationComparisonViewModel.cs b/LehrerApp.Desktop/ViewModels/Students/WebUntisDocumentationComparisonViewModel.cs index 7e3a385..2f6af27 100644 --- a/LehrerApp.Desktop/ViewModels/Students/WebUntisDocumentationComparisonViewModel.cs +++ b/LehrerApp.Desktop/ViewModels/Students/WebUntisDocumentationComparisonViewModel.cs @@ -128,6 +128,7 @@ public partial class WebUntisDocumentationComparisonViewModel : ObservableObject foreach (var doc in localDocs) { + if (doc.ExcludeFromWebUntisSync) continue; var coveredByReport = Rows.Any(r => r.AssignedStudent?.Id == doc.StudentId && r.Date == doc.Date); if (coveredByReport) continue; var student = ownStudents.FirstOrDefault(s => s.Id == doc.StudentId); diff --git a/LehrerApp.Desktop/Views/Students/DocumentationDialog.axaml b/LehrerApp.Desktop/Views/Students/DocumentationDialog.axaml index 80b3997..1ad054b 100644 --- a/LehrerApp.Desktop/Views/Students/DocumentationDialog.axaml +++ b/LehrerApp.Desktop/Views/Students/DocumentationDialog.axaml @@ -233,6 +233,9 @@ + +