Anwesenheiten bei Probemitgliedern in Listen Grün für 1-3 Anwesenheiten, rot bei mehr
This commit is contained in:
parent
dbdd7a2176
commit
44f3aac98b
40
app.js
40
app.js
|
@ -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) => ({
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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>
|
||||||
|
|
|
@ -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 %>
|
||||||
|
|
Loading…
Reference in New Issue