diff --git a/app.js b/app.js index 36bf6be..fc859f9 100644 --- a/app.js +++ b/app.js @@ -824,14 +824,23 @@ app.post('/changelog', requireAdmin, async (req, res) => { }) app.post('/anwesend', requireAuth, async (req, res) => { - const { anw, trainingId, riege } = req.body; + const { anw, inriege , trainingId, riege } = req.body; req.session.activeTab = 'anwesend'; - try { - // await pool.query('Delete FROM anwesend WHERE fid_training = $1', [trainingId]); - for (const teilnehmer of anw) { - await pool.query('INSERT INTO anwesend (fid_teilnehmer, fid_training) VALUES ($1, $2)', [teilnehmer, trainingId]); + for (const mitgliedId of inriege){ + const Idresult = await pool.query('SELECT *From anwesend WHERE fid_teilnehmer = $1 AND fid_training=$2', [mitgliedId, trainingId]) + if (Idresult.rows.length > 0) { + if (!anw.includes(mitgliedId)){ + await pool.query('Delete FROM anwesend WHERE fid_teilnehmer = $1 AND fid_training=$2', [mitgliedId, trainingId]) + } } + } + for (const teilnehmer of anw) { + const Tnresult = await pool.query('SELECT *From anwesend WHERE fid_teilnehmer = $1 AND fid_training=$2', [teilnehmer, trainingId]) + if (Tnresult.rows.length === 0) { + await pool.query('INSERT INTO anwesend (fid_teilnehmer, fid_training) VALUES ($1, $2)', [teilnehmer, trainingId]); + } + } req.session.activeRiege = riege; req.session.activeTab = 'anwesend'; req.session.message = [title = 'Erfolg', body = 'Die Anwesenheit wurde gespeichert', type = 'success']; diff --git a/views/trainings.ejs b/views/trainings.ejs index 4d39450..112f70f 100644 --- a/views/trainings.ejs +++ b/views/trainings.ejs @@ -150,7 +150,7 @@ <% riegen[riegennummer].forEach(teilnehmer => { if(!teilnehmer.helfer) { %> - <%= teilnehmer.vorname %> <%= teilnehmer.nachname %> value="<%= teilnehmer.id %>"> + <%= teilnehmer.vorname %> <%= teilnehmer.nachname %> value="<%= teilnehmer.id %>"> <% }}) %>