diff --git a/public/src/components/GottesdienstCard.vue b/public/src/components/GottesdienstCard.vue index de64e19..43ab751 100644 --- a/public/src/components/GottesdienstCard.vue +++ b/public/src/components/GottesdienstCard.vue @@ -19,15 +19,18 @@ const currentMini = computed(() => props.ministranten.find(m => m.username === p const showCheckbox = computed(() => !!currentMini.value && !isAdmin.value) const expanded = ref(false) -const relevantMarks = computed(() => - props.marks.filter(m => m.gid === props.gottesdienst.id && m.value !== 0) +const responseCount = computed(() => + props.marks.filter(m => m.gid === props.gottesdienst.id && m.value !== 0).length ) -const sortedMinistrants = computed(() => { +const allMinistrants = computed(() => { const miniMap = new Map(props.ministranten.map(m => [m.id, m])) - return relevantMarks.value - .map(m => ({ministrant: miniMap.get(m.mid), mark: m})) - .filter((entry): entry is {ministrant: SimplifiedMinistrant; mark: Mark} => !!entry.ministrant) + const marksMap = new Map(props.marks.filter(m => m.gid === props.gottesdienst.id).map(m => [m.mid, m])) + return props.ministranten + .map(mini => ({ + ministrant: mini, + mark: marksMap.get(mini.id) ?? {gid: props.gottesdienst.id, mid: mini.id, value: 0} as Mark + })) }) function ministrantTotalMarks(miniId: number): number { @@ -156,14 +159,14 @@ function getOwnMarkHint(): string { -