Anwesenheiten bei Probemitgliedern in Listen Grün für 1-3 Anwesenheiten, rot bei mehr

This commit is contained in:
klaas 2024-09-28 12:38:18 +02:00
parent dbdd7a2176
commit 44f3aac98b
4 changed files with 55 additions and 11 deletions

44
app.js
View File

@ -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) => ({

View File

@ -64,6 +64,12 @@
<a href="/mitglied/<%= teilnehmer.id %>"
><%= teilnehmer.nachname %></a
>
<% } %> <% if (teilnehmer.probe) { %>
<span
style="color: <%= teilnehmer.anwesenheit <= 3 ? 'green' : 'red' %>;"
>
(<%= teilnehmer.anwesenheit %>)
</span>
<% } %>
</td>
<td><%= teilnehmer.age %> Jahre</td>

View File

@ -27,6 +27,13 @@
<% } else { %>
<a href="/mitglied/<%= teilnehmer.id %>"><%= teilnehmer.nachname %></a>
<% } %>
<% if (teilnehmer.probe) { %>
<span style="color: <%= teilnehmer.anwesenheit <= 3 ? 'green' : 'red' %>;">
(<%= teilnehmer.anwesenheit %>)
</span>
<% } %>
</td>
<td><%= teilnehmer.age %> Jahre</td>
</tr>

View File

@ -302,7 +302,14 @@
<%= teilnehmer.vorname %>
</td>
<td>
<%= teilnehmer.nachname %>
<%= teilnehmer.nachname %>
<% if (teilnehmer.probe) { %>
<span
style="color: <%= teilnehmer.anwesenheit <= 3 ? 'green' : 'red' %>;"
>
(<%= teilnehmer.anwesenheit %>)
</span>
<% } %>
</td>
<td>
<%= teilnehmer.age %>