feat(TrainingStats): enhance training statistics view and participant details
- Updated TrainingStatsService to include member details (first name, last name) in participant data. - Modified TrainingDetailsDialog to remove unnecessary time display for training sessions. - Added new filters for training days in TrainingStatsView, allowing users to select specific training days and view attending members. - Enhanced localization files to support new training day filter and participant-related strings across multiple languages.
This commit is contained in:
@@ -205,7 +205,12 @@ class TrainingStatsService {
|
||||
include: [{
|
||||
model: Participant,
|
||||
as: 'participantList',
|
||||
attributes: ['id', 'attendanceStatus']
|
||||
attributes: ['id', 'memberId', 'attendanceStatus'],
|
||||
include: [{
|
||||
model: Member,
|
||||
as: 'member',
|
||||
attributes: ['id', 'firstName', 'lastName']
|
||||
}]
|
||||
}],
|
||||
order: [['date', 'DESC']]
|
||||
});
|
||||
@@ -215,7 +220,22 @@ class TrainingStatsService {
|
||||
date: day.date,
|
||||
participantCount: day.participantList
|
||||
? day.participantList.filter((participant) => !participant.attendanceStatus || participant.attendanceStatus === 'present').length
|
||||
: 0
|
||||
: 0,
|
||||
participants: day.participantList
|
||||
? day.participantList
|
||||
.filter((participant) => !participant.attendanceStatus || participant.attendanceStatus === 'present')
|
||||
.map((participant) => ({
|
||||
id: participant.member?.id || participant.memberId,
|
||||
firstName: participant.member?.firstName || '',
|
||||
lastName: participant.member?.lastName || '',
|
||||
}))
|
||||
.filter((participant) => Number.isFinite(Number(participant.id)))
|
||||
.sort((a, b) => {
|
||||
const lastCompare = String(a.lastName || '').localeCompare(String(b.lastName || ''), 'de', { sensitivity: 'base' });
|
||||
if (lastCompare !== 0) return lastCompare;
|
||||
return String(a.firstName || '').localeCompare(String(b.firstName || ''), 'de', { sensitivity: 'base' });
|
||||
})
|
||||
: []
|
||||
}));
|
||||
|
||||
const totalParticipants12Months = formattedTrainingDays.reduce((sum, day) => sum + (day.participantCount || 0), 0);
|
||||
|
||||
Reference in New Issue
Block a user