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 %>