From dbdd7a217637d3afcdc8c2941b98d7f6a8ea3e2d Mon Sep 17 00:00:00 2001 From: klaas Date: Sat, 28 Sep 2024 11:55:55 +0200 Subject: [PATCH 1/2] Namen der Mitglieder bearbeitbar --- app.js | 19 ++++++++++++++---- views/mitglied.ejs | 50 ++++++++++++++++++++++++++++++++++++---------- 2 files changed, 55 insertions(+), 14 deletions(-) diff --git a/app.js b/app.js index c9c3bb9..1b32cb0 100644 --- a/app.js +++ b/app.js @@ -844,8 +844,19 @@ app.post("/set-riege", requireAuth, async (req, res) => { }); app.post("/update-mitglied", requireAdmin, async (req, res) => { - const { type, id, geburt, telid, adresse, name, verbindung, nummer, probe } = - req.body; + const { + type, + id, + geburt, + telid, + adresse, + name, + verbindung, + nummer, + vorname, + nachname, + probe, + } = req.body; try { if (type == "tel") { console.log( @@ -861,8 +872,8 @@ app.post("/update-mitglied", requireAdmin, async (req, res) => { console.log("delete numer $1", [telid]); } else if (type == "adresse") { await pool.query( - "UPDATE teilnehmende SET geburtsdatum = $1, adresse = $2, probe = $3 WHERE id = $4", - [geburt, adresse, probe ? true : false, id] + "UPDATE teilnehmende SET vorname = $1, nachname = $2, geburtsdatum = $3, adresse = $4, probe = $5 WHERE id = $6", + [vorname, nachname, geburt, adresse, probe ? true : false, id] ); } diff --git a/views/mitglied.ejs b/views/mitglied.ejs index 572aa56..ff0d1f4 100644 --- a/views/mitglied.ejs +++ b/views/mitglied.ejs @@ -31,19 +31,46 @@ <% if (session && session.role === 'admin') { %>
-
- Geburtsdatum:
- - - Adresse:
- Probetraining: >
- + +
+ Stammdaten +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + + + +
+ +
+
+ + + >
+ + +
+
-
+
+ Riege - Riege: @@ -52,8 +79,11 @@ +
+
+ Notfallnummern

<% numbers.forEach(number => { %>

@@ -65,7 +95,7 @@
<% }) %>

- +

Telefonnummer hinzufügen

From 44f3aac98b25ef505defbc83f543fa7112919978 Mon Sep 17 00:00:00 2001 From: klaas Date: Sat, 28 Sep 2024 12:38:18 +0200 Subject: [PATCH 2/2] =?UTF-8?q?Anwesenheiten=20bei=20Probemitgliedern=20in?= =?UTF-8?q?=20Listen=20Gr=C3=BCn=20f=C3=BCr=201-3=20Anwesenheiten,=20rot?= =?UTF-8?q?=20bei=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 %>