From 44f3aac98b25ef505defbc83f543fa7112919978 Mon Sep 17 00:00:00 2001 From: klaas Date: Sat, 28 Sep 2024 12:38:18 +0200 Subject: [PATCH] =?UTF-8?q?Anwesenheiten=20bei=20Probemitgliedern=20in=20L?= =?UTF-8?q?isten=20Gr=C3=BCn=20f=C3=BCr=201-3=20Anwesenheiten,=20rot=20bei?= =?UTF-8?q?=20mehr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.js | 44 ++++++++++++++++++++++++++++++++++---------- views/riegen.ejs | 6 ++++++ views/teilnehmer.ejs | 7 +++++++ views/trainings.ejs | 9 ++++++++- 4 files changed, 55 insertions(+), 11 deletions(-) diff --git a/app.js b/app.js index 1b32cb0..01c5132 100644 --- a/app.js +++ b/app.js @@ -675,10 +675,20 @@ app.get("/training", requireAuth, async (req, res) => { // Abrufen der Riegendaten einschließlich der Teilnehmer und deren Altersberechnung const result = await pool.query(` - SELECT r.riegennummer, t.id, t.name, t.vorname, t.nachname, t.geburtsdatum, r.helfer - FROM riegen r - JOIN teilnehmende t ON r.fremdID_Teilnehmende = t.id - ORDER BY r.riegennummer, t.geburtsdatum ASC + SELECT r.riegennummer, + t.id, + t.name, + t.vorname, + t.nachname, + t.geburtsdatum, + t.probe, + r.helfer, + COUNT(a.fid_teilnehmer) AS anwesenheit + FROM riegen r +JOIN teilnehmende t ON r.fremdID_Teilnehmende = t.id +LEFT JOIN anwesend a ON t.id = a.fid_teilnehmer +GROUP BY r.riegennummer, t.id, t.name, t.vorname, t.nachname, t.geburtsdatum, r.helfer +ORDER BY r.riegennummer, t.geburtsdatum ASC; `); // Gruppieren der Riegenteilnehmer nach Riegennummer @@ -696,6 +706,8 @@ app.get("/training", requireAuth, async (req, res) => { nachname: row.nachname, age: age, helfer: row.helfer, + probe: row.probe, + anwesenheit: row.anwesenheit, anwesend: tnAnwesend, anzahl, }); @@ -737,12 +749,22 @@ app.get("/riege", requireAuth, async (req, res) => { try { // Abrufen der Riegendaten einschließlich der Teilnehmer und deren Altersberechnung const result = await pool.query(` - SELECT r.riegennummer, t.id, t.name, t.vorname, t.nachname, t.geburtsdatum, r.helfer - FROM riegen r - JOIN teilnehmende t ON r.fremdID_Teilnehmende = t.id - ORDER BY r.riegennummer, t.geburtsdatum ASC - `); + SELECT r.riegennummer, + t.id, + t.name, + t.vorname, + t.nachname, + t.geburtsdatum, + t.probe, + r.helfer, + COUNT(a.fid_teilnehmer) AS anwesenheit + FROM riegen r +JOIN teilnehmende t ON r.fremdID_Teilnehmende = t.id +LEFT JOIN anwesend a ON t.id = a.fid_teilnehmer +GROUP BY r.riegennummer, t.id, t.name, t.vorname, t.nachname, t.geburtsdatum, r.helfer +ORDER BY r.riegennummer, t.geburtsdatum ASC; + `); // Gruppieren der Riegenteilnehmer nach Riegennummer const riegen = {}; result.rows.forEach((row) => { @@ -757,6 +779,8 @@ app.get("/riege", requireAuth, async (req, res) => { nachname: row.nachname, age: age, helfer: row.helfer, + probe: row.probe, + anwesenheit: row.anwesenheit, }); }); @@ -771,7 +795,7 @@ app.get("/riege", requireAuth, async (req, res) => { app.get("/teilnehmer", requireAuth, requireAdmin, async (req, res) => { try { const teilnehmendeResult = await pool.query( - "SELECT * FROM teilnehmende ORDER BY helfer DESC, vorname ASC" + "SELECT m.*, COUNT(a.fid_teilnehmer) AS anwesenheit FROM teilnehmende m LEFT JOIN anwesend a ON m.id = a.fid_teilnehmer GROUP BY m.id ORDER BY helfer DESC, vorname ASC" ); const teilnehmende = teilnehmendeResult.rows.map((t) => ({ diff --git a/views/riegen.ejs b/views/riegen.ejs index 4e4727f..3dfa09a 100644 --- a/views/riegen.ejs +++ b/views/riegen.ejs @@ -64,6 +64,12 @@ <%= teilnehmer.nachname %> + <% } %> <% if (teilnehmer.probe) { %> + + (<%= teilnehmer.anwesenheit %>) + <% } %> <%= teilnehmer.age %> Jahre diff --git a/views/teilnehmer.ejs b/views/teilnehmer.ejs index 51dc22f..34d50e1 100644 --- a/views/teilnehmer.ejs +++ b/views/teilnehmer.ejs @@ -27,6 +27,13 @@ <% } else { %> <%= teilnehmer.nachname %> <% } %> +<% if (teilnehmer.probe) { %> + + (<%= teilnehmer.anwesenheit %>) + +<% } %> + + <%= teilnehmer.age %> Jahre diff --git a/views/trainings.ejs b/views/trainings.ejs index 040acd8..ba9d803 100644 --- a/views/trainings.ejs +++ b/views/trainings.ejs @@ -302,7 +302,14 @@ <%= teilnehmer.vorname %> - <%= teilnehmer.nachname %> + <%= teilnehmer.nachname %> + <% if (teilnehmer.probe) { %> + + (<%= teilnehmer.anwesenheit %>) + + <% } %> <%= teilnehmer.age %>