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

40
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 // Abrufen der Riegendaten einschließlich der Teilnehmer und deren Altersberechnung
const result = await pool.query(` const result = await pool.query(`
SELECT r.riegennummer, t.id, t.name, t.vorname, t.nachname, t.geburtsdatum, r.helfer 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 FROM riegen r
JOIN teilnehmende t ON r.fremdID_Teilnehmende = t.id JOIN teilnehmende t ON r.fremdID_Teilnehmende = t.id
ORDER BY r.riegennummer, t.geburtsdatum ASC 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 // Gruppieren der Riegenteilnehmer nach Riegennummer
@ -696,6 +706,8 @@ app.get("/training", requireAuth, async (req, res) => {
nachname: row.nachname, nachname: row.nachname,
age: age, age: age,
helfer: row.helfer, helfer: row.helfer,
probe: row.probe,
anwesenheit: row.anwesenheit,
anwesend: tnAnwesend, anwesend: tnAnwesend,
anzahl, anzahl,
}); });
@ -737,12 +749,22 @@ app.get("/riege", requireAuth, async (req, res) => {
try { try {
// Abrufen der Riegendaten einschließlich der Teilnehmer und deren Altersberechnung // Abrufen der Riegendaten einschließlich der Teilnehmer und deren Altersberechnung
const result = await pool.query(` const result = await pool.query(`
SELECT r.riegennummer, t.id, t.name, t.vorname, t.nachname, t.geburtsdatum, r.helfer 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 FROM riegen r
JOIN teilnehmende t ON r.fremdID_Teilnehmende = t.id JOIN teilnehmende t ON r.fremdID_Teilnehmende = t.id
ORDER BY r.riegennummer, t.geburtsdatum ASC 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 // Gruppieren der Riegenteilnehmer nach Riegennummer
const riegen = {}; const riegen = {};
result.rows.forEach((row) => { result.rows.forEach((row) => {
@ -757,6 +779,8 @@ app.get("/riege", requireAuth, async (req, res) => {
nachname: row.nachname, nachname: row.nachname,
age: age, age: age,
helfer: row.helfer, 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) => { app.get("/teilnehmer", requireAuth, requireAdmin, async (req, res) => {
try { try {
const teilnehmendeResult = await pool.query( 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) => ({ const teilnehmende = teilnehmendeResult.rows.map((t) => ({

View File

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

View File

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

View File

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