Vorgänge: verknüpfte Dokumentation direkt zum Nachlesen öffnen
CI / build-and-test (push) Canceled after 0s
CI / build-and-test (push) Canceled after 0s
"Bearbeiten"-Button an jedem verknüpften bzw. verknüpfbaren Eintrag öffnet den bestehenden Dokumentations-Dialog, ohne den Vorgänge-Tab zu verlassen — bisher musste man dafür in den Schülerdatensatz wechseln. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -97,7 +97,8 @@ public partial class ClassTeacherCasesViewModel : ObservableObject
|
||||
var names = vorgang.StudentIds.Select(id => nameById.GetValueOrDefault(id, ""))
|
||||
.Where(n => n != "");
|
||||
var item = new VorgangItem(vorgang, string.Join(", ", names), LinkDocumentation,
|
||||
UnlinkDocumentation, RemoveClassRegisterEntry) { IsRevealed = revealedIds.Contains(vorgang.Id) };
|
||||
UnlinkDocumentation, RemoveClassRegisterEntry, EditDocumentation)
|
||||
{ IsRevealed = revealedIds.Contains(vorgang.Id) };
|
||||
|
||||
var linkedIds = vorgang.DocumentationIds.ToHashSet();
|
||||
foreach (var doc in allDocs.Where(d => linkedIds.Contains(d.Id)))
|
||||
@@ -169,6 +170,19 @@ public partial class ClassTeacherCasesViewModel : ObservableObject
|
||||
await LoadInternal();
|
||||
}
|
||||
|
||||
/// Öffnet eine verknüpfte oder noch verknüpfbare Dokumentation im vollen Bearbeiten-Dialog, ohne
|
||||
/// den Vorgänge-Tab zu verlassen (Nutzer-Feedback: bisher musste man dafür zum Nachlesen in den
|
||||
/// Schülerdatensatz wechseln). Reine Bearbeitung der Dokumentation selbst — welche Vorgänge sie
|
||||
/// verlinken, ändert sich dadurch nicht.
|
||||
private async Task EditDocumentation(DocumentationItem doc)
|
||||
{
|
||||
if (OnEditDocumentation is null) return;
|
||||
var result = await OnEditDocumentation(doc.Model.StudentId, _rosterStudentOptions, doc.Model);
|
||||
if (result is null) return;
|
||||
_documentation.Save(result);
|
||||
await LoadInternal();
|
||||
}
|
||||
|
||||
/// Dokumentation der Vorgangs-Schüler*innen, die noch nicht mit diesem Vorgang verknüpft ist —
|
||||
/// reine, ohne Repository-Zugriff testbare Filterlogik (gleiches Muster wie
|
||||
/// <see cref="ClassTeacherRosterRow.Build"/>).
|
||||
|
||||
@@ -58,6 +58,7 @@ public partial class VorgangItem : ObservableObject
|
||||
private readonly Func<VorgangItem, DocumentationItem, Task> _onLink;
|
||||
private readonly Func<VorgangItem, DocumentationItem, Task> _onUnlink;
|
||||
private readonly Func<VorgangItem, VorgangClassRegisterEntryRow, Task> _onRemoveClassRegisterEntry;
|
||||
private readonly Func<DocumentationItem, Task> _onEditDocumentation;
|
||||
|
||||
public Vorgang Model { get; }
|
||||
public string StudentNames { get; }
|
||||
@@ -79,7 +80,8 @@ public partial class VorgangItem : ObservableObject
|
||||
public VorgangItem(Vorgang model, string studentNames,
|
||||
Func<VorgangItem, DocumentationItem, Task> onLink,
|
||||
Func<VorgangItem, DocumentationItem, Task> onUnlink,
|
||||
Func<VorgangItem, VorgangClassRegisterEntryRow, Task> onRemoveClassRegisterEntry)
|
||||
Func<VorgangItem, VorgangClassRegisterEntryRow, Task> onRemoveClassRegisterEntry,
|
||||
Func<DocumentationItem, Task> onEditDocumentation)
|
||||
{
|
||||
Model = model;
|
||||
StudentNames = studentNames;
|
||||
@@ -87,10 +89,19 @@ public partial class VorgangItem : ObservableObject
|
||||
_onLink = onLink;
|
||||
_onUnlink = onUnlink;
|
||||
_onRemoveClassRegisterEntry = onRemoveClassRegisterEntry;
|
||||
_onEditDocumentation = onEditDocumentation;
|
||||
}
|
||||
|
||||
[RelayCommand] private void Reveal() => IsRevealed = !IsRevealed;
|
||||
|
||||
/// Öffnet den vollen Dokumentations-Dialog zum Nachlesen/Bearbeiten, ohne den Vorgänge-Tab zu
|
||||
/// verlassen (Nutzer-Feedback: bisher musste man dafür in den Schülerdatensatz wechseln).
|
||||
[RelayCommand]
|
||||
private async Task EditDocumentation(DocumentationItem? doc)
|
||||
{
|
||||
if (doc is not null) await _onEditDocumentation(doc);
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private async Task Link(DocumentationItem? doc)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user