diff --git a/backend/controllers/trainingStatsController.js b/backend/controllers/trainingStatsController.js index 136faa5..c268ff7 100644 --- a/backend/controllers/trainingStatsController.js +++ b/backend/controllers/trainingStatsController.js @@ -135,11 +135,35 @@ class TrainingStatsController { // Nach Gesamtteilnahme absteigend sortieren stats.sort((a, b) => b.participationTotal - a.participationTotal); + // Trainingstage mit Teilnehmerzahlen abrufen (letzte 12 Monate, absteigend sortiert) + const trainingDays = await DiaryDate.findAll({ + where: { + clubId: parseInt(clubId), + date: { + [Op.gte]: twelveMonthsAgo + } + }, + include: [{ + model: Participant, + as: 'participantList', + attributes: ['id'] + }], + order: [['date', 'DESC']] + }); + + // Formatiere Trainingstage mit Teilnehmerzahl + const formattedTrainingDays = trainingDays.map(day => ({ + id: day.id, + date: day.date, + participantCount: day.participantList ? day.participantList.length : 0 + })); + // Zusätzliche Metadaten mit Trainingsanzahl zurückgeben res.json({ members: stats, trainingsCount12Months, - trainingsCount3Months + trainingsCount3Months, + trainingDays: formattedTrainingDays }); } catch (error) { diff --git a/frontend/src/views/TrainingStatsView.vue b/frontend/src/views/TrainingStatsView.vue index 8c049b0..c045e2f 100644 --- a/frontend/src/views/TrainingStatsView.vue +++ b/frontend/src/views/TrainingStatsView.vue @@ -19,8 +19,43 @@ -
- + +
+
+

Trainingstage (letzte 12 Monate)

+ {{ showTrainingDays ? '▼' : '▶' }} +
+
+
+
+ + + + + + + + + + + + + + +
DatumWochentagTeilnehmer
{{ formatDate(day.date) }}{{ getWeekday(day.date) }}{{ day.participantCount }}
+
+ + + + +
+
+

Mitglieder-Teilnahmen

+ {{ showMembers ? '▼' : '▶' }} +
+
+
+
@@ -74,6 +109,8 @@
+
+