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
+
+
+
+
+
+
+
+
+
+
+
+
Möchtest du das Mitglied <%= mitglied.vorname %> <%= mitglied.nachname %> wirklich löschen?
+ Diese Aktion kann nicht rüchgängig gemacht werden!
+
+
+
+
+
+
+
<% } %>
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:
+
+