From 52f36328d5a1d71e7951e04b74ef8919f4a835a2 Mon Sep 17 00:00:00 2001 From: klaas Date: Sat, 28 Sep 2024 13:32:37 +0200 Subject: [PATCH 1/2] Neue Mitglieder aus der Anwesenheitsliste erstellen. Neue Mitglieder sind automatisch anwesend --- app.js | 26 ++++++++++++++++++++++++-- views/mitglied.ejs | 35 ++++++++++++++++++++++++++++++++++- views/trainings.ejs | 43 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 101 insertions(+), 3 deletions(-) diff --git a/app.js b/app.js index 01c5132..b31ed3b 100644 --- a/app.js +++ b/app.js @@ -597,7 +597,8 @@ app.get("/admin", requireAuth, requireAdmin, async (req, res) => { }); app.post("/new-member", requireAuth, requireAdmin, async (req, res) => { - const { vorname, nachname, geburt, riege, adresse, probe } = req.body; + const { from, vorname, nachname, geburt, riege, adresse, probe, training } = + req.body; var geb = "01.01.2024"; const name = vorname + " " + nachname; try { @@ -608,11 +609,22 @@ app.post("/new-member", requireAuth, requireAdmin, async (req, res) => { "INSERT INTO teilnehmende (name, geburtsdatum, adresse, vorname, nachname, probe) VALUES ($1, $2, $3, $4, $5, $6) RETURNING id", [name, geb, adresse, vorname, nachname, probe ? true : false] ); + await pool.query( + "INSERT INTO anwesend (fid_teilnehmer, fid_training) VALUES ($1, $2)", + [teilnehmerID.rows[0].id, training] + ); + log.Info( "Mitglied " + name + " durch " + req.session.userName + " angelegt" ); putInRiege(riege, teilnehmerID.rows[0].id); - res.redirect("/riege"); + if (from === "admin") { + res.redirect("/riege"); + } else if (from === "training") { + req.session.activeRiege = riege; + req.session.activeTab = "anwesend"; + res.redirect("/training"); + } } catch (error) { const message = "Error:" + error; res.render("error", { session: req.session, message }); @@ -1070,6 +1082,16 @@ app.post("/anwesend", requireAuth, async (req, res) => { } }); +app.post('/deleteMember', requireAuth, async (req, res) => { + const { id } = req.body + try { + await pool.query('DELETE from teilnehmende WHERE id = $1', [id]) + } catch (error) { + console.error('Error:', error) + } + res.redirect('/training') +}) + const server = app.listen(port, "0.0.0.0", () => { log.Info(`Server is running on ${process.env.HOST}:${port}/`); }); diff --git a/views/mitglied.ejs b/views/mitglied.ejs index ff0d1f4..47fdcb2 100644 --- a/views/mitglied.ejs +++ b/views/mitglied.ejs @@ -97,7 +97,8 @@

-

Telefonnummer hinzufügen

+
+ Telefonnummern hinzufügen
@@ -113,6 +114,38 @@
+
+

+ +
+

+ + + <% } %> diff --git a/views/trainings.ejs b/views/trainings.ejs index ba9d803..123699c 100644 --- a/views/trainings.ejs +++ b/views/trainings.ejs @@ -328,6 +328,49 @@ <% } %> + + + + + + + + + + <% }) %> From 95b322e4a6f2a5808db5d79803371a1c2b48fd40 Mon Sep 17 00:00:00 2001 From: klaas Date: Sat, 28 Sep 2024 13:56:45 +0200 Subject: [PATCH 2/2] Korrektur bei Mitglied anlegen auf Admin seite --- app.js | 41 ++++++++++++++++++++++++++--------------- views/admin.ejs | 2 ++ 2 files changed, 28 insertions(+), 15 deletions(-) diff --git a/app.js b/app.js index b31ed3b..148e4b4 100644 --- a/app.js +++ b/app.js @@ -597,8 +597,17 @@ app.get("/admin", requireAuth, requireAdmin, async (req, res) => { }); app.post("/new-member", requireAuth, requireAdmin, async (req, res) => { - const { from, vorname, nachname, geburt, riege, adresse, probe, training } = - req.body; + var { + from, + vorname, + nachname, + geburt, + riege, + adresse, + probe, + from, + training, + } = req.body; var geb = "01.01.2024"; const name = vorname + " " + nachname; try { @@ -609,6 +618,12 @@ app.post("/new-member", requireAuth, requireAdmin, async (req, res) => { "INSERT INTO teilnehmende (name, geburtsdatum, adresse, vorname, nachname, probe) VALUES ($1, $2, $3, $4, $5, $6) RETURNING id", [name, geb, adresse, vorname, nachname, probe ? true : false] ); + if (from === "admin") { + selectedKW = moment().isoWeek(); + selectedYear = moment().year(); + const trainingresult = await getTraining(selectedKW, selectedYear); + training = trainingresult.id; + } await pool.query( "INSERT INTO anwesend (fid_teilnehmer, fid_training) VALUES ($1, $2)", [teilnehmerID.rows[0].id, training] @@ -618,13 +633,9 @@ app.post("/new-member", requireAuth, requireAdmin, async (req, res) => { "Mitglied " + name + " durch " + req.session.userName + " angelegt" ); putInRiege(riege, teilnehmerID.rows[0].id); - if (from === "admin") { - res.redirect("/riege"); - } else if (from === "training") { - req.session.activeRiege = riege; - req.session.activeTab = "anwesend"; - res.redirect("/training"); - } + req.session.activeRiege = riege; + req.session.activeTab = "anwesend"; + res.redirect("/training"); } catch (error) { const message = "Error:" + error; res.render("error", { session: req.session, message }); @@ -1082,15 +1093,15 @@ app.post("/anwesend", requireAuth, async (req, res) => { } }); -app.post('/deleteMember', requireAuth, async (req, res) => { - const { id } = req.body +app.post("/deleteMember", requireAuth, async (req, res) => { + const { id } = req.body; try { - await pool.query('DELETE from teilnehmende WHERE id = $1', [id]) + await pool.query("DELETE from teilnehmende WHERE id = $1", [id]); } catch (error) { - console.error('Error:', error) + console.error("Error:", error); } - res.redirect('/training') -}) + res.redirect("/teilnehmer"); +}); const server = app.listen(port, "0.0.0.0", () => { log.Info(`Server is running on ${process.env.HOST}:${port}/`); diff --git a/views/admin.ejs b/views/admin.ejs index 4b52f73..c1e0600 100644 --- a/views/admin.ejs +++ b/views/admin.ejs @@ -28,6 +28,8 @@
Adresse:
Probe:
+ +