Dashboard und Schnellnavigation fix
This commit is contained in:
@@ -25,6 +25,7 @@ public partial class GroupDocumentationTabViewModel : ObservableObject
|
||||
private List<StudentOption> _groupStudents = [];
|
||||
|
||||
public static readonly StudentOption AllStudentsOption = new(Guid.Empty, "Alle Schüler");
|
||||
public static readonly StudentOption WholeGroupOption = new(Guid.Empty, "Gesamte Lerngruppe");
|
||||
|
||||
public ObservableCollection<DocumentationItem> Entries { get; } = [];
|
||||
public ObservableCollection<StudentOption> StudentFilterOptions { get; } = [AllStudentsOption];
|
||||
@@ -62,8 +63,6 @@ public partial class GroupDocumentationTabViewModel : ObservableObject
|
||||
private void Load()
|
||||
{
|
||||
Entries.Clear();
|
||||
if (_groupStudents.Count == 0) return;
|
||||
|
||||
var studentNameById = _groupStudents.ToDictionary(s => s.Id, s => s.Name);
|
||||
var groupNameCache = new Dictionary<Guid, string>();
|
||||
string GroupLabel(Guid id)
|
||||
@@ -80,6 +79,10 @@ public partial class GroupDocumentationTabViewModel : ObservableObject
|
||||
|
||||
var all = relevantStudentIds
|
||||
.SelectMany(id => _docs.GetByStudent(id))
|
||||
.Concat(SelectedStudentFilter.Id == Guid.Empty
|
||||
? _docs.GetAll().Where(d => d.StudentId == Guid.Empty && d.GroupId == _groupId)
|
||||
: [])
|
||||
.DistinctBy(d => d.Id)
|
||||
.Where(d => !OnlyThisGroup || d.GroupId == _groupId)
|
||||
.OrderByDescending(d => d.IsDraft)
|
||||
.ThenByDescending(d => d.Date)
|
||||
@@ -90,7 +93,10 @@ public partial class GroupDocumentationTabViewModel : ObservableObject
|
||||
{
|
||||
var isOwnGroup = d.GroupId is null || d.GroupId == _groupId;
|
||||
var otherGroupLabel = isOwnGroup ? "" : GroupLabel(d.GroupId!.Value);
|
||||
Entries.Add(new DocumentationItem(d, studentNameById.GetValueOrDefault(d.StudentId, ""),
|
||||
var studentName = d.StudentId == Guid.Empty
|
||||
? WholeGroupOption.Name
|
||||
: studentNameById.GetValueOrDefault(d.StudentId, "");
|
||||
Entries.Add(new DocumentationItem(d, studentName,
|
||||
isOwnGroup, otherGroupLabel));
|
||||
}
|
||||
}
|
||||
@@ -100,7 +106,7 @@ public partial class GroupDocumentationTabViewModel : ObservableObject
|
||||
[RelayCommand]
|
||||
private async Task AddDocumentation()
|
||||
{
|
||||
if (OnEditDocumentation is null || _groupStudents.Count == 0) return;
|
||||
if (OnEditDocumentation is null) return;
|
||||
var result = await OnEditDocumentation(_groupId, _groupStudents, null);
|
||||
if (result is null) return;
|
||||
_docs.Save(result);
|
||||
|
||||
Reference in New Issue
Block a user