Merge branch 'main' of https://git.boergmann.it/klaas/training
Hotfix auf dem Server
This commit is contained in:
commit
71bd4ba9bf
59
app.js
59
app.js
|
@ -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
|
||||
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
|
||||
ORDER BY r.riegennummer, t.geburtsdatum ASC
|
||||
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
|
||||
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
|
||||
ORDER BY r.riegennummer, t.geburtsdatum ASC
|
||||
`);
|
||||
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) => ({
|
||||
|
@ -844,8 +868,19 @@ app.post("/set-riege", requireAuth, async (req, res) => {
|
|||
});
|
||||
|
||||
app.post("/update-mitglied", requireAdmin, async (req, res) => {
|
||||
const { type, id, geburt, telid, adresse, name, verbindung, nummer, probe } =
|
||||
req.body;
|
||||
const {
|
||||
type,
|
||||
id,
|
||||
geburt,
|
||||
telid,
|
||||
adresse,
|
||||
name,
|
||||
verbindung,
|
||||
nummer,
|
||||
vorname,
|
||||
nachname,
|
||||
probe,
|
||||
} = req.body;
|
||||
try {
|
||||
if (type == "tel") {
|
||||
console.log(
|
||||
|
@ -861,8 +896,8 @@ app.post("/update-mitglied", requireAdmin, async (req, res) => {
|
|||
console.log("delete numer $1", [telid]);
|
||||
} else if (type == "adresse") {
|
||||
await pool.query(
|
||||
"UPDATE teilnehmende SET geburtsdatum = $1, adresse = $2, probe = $3 WHERE id = $4",
|
||||
[geburt, adresse, probe ? true : false, id]
|
||||
"UPDATE teilnehmende SET vorname = $1, nachname = $2, geburtsdatum = $3, adresse = $4, probe = $5 WHERE id = $6",
|
||||
[vorname, nachname, geburt, adresse, probe ? true : false, id]
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -32,18 +32,45 @@
|
|||
<div id="edit" class="mt-5 d-none">
|
||||
|
||||
<form method="POST" action="/update-mitglied">
|
||||
Geburtsdatum: <input type="date" id="geburt" name="geburt" value="<%= birthday.getFullYear() %>-<%= ('00' + (birthday.getMonth() + 1)).slice(-2) %>-<%= ('00' + birthday.getDate()).slice(-2) %>"></br>
|
||||
<fieldset class="scheduler-border">
|
||||
<legend >Stammdaten</legend>
|
||||
<div class="form-row">
|
||||
<div class="form-group col-md-3">
|
||||
<label for="vorname">Vorname:</label>
|
||||
<input class="form-control" name="vorname" type="text" value="<%= mitglied.vorname %>">
|
||||
</div>
|
||||
<div class="form-group col-md-3">
|
||||
<label for="nachname">Nachname:</label>
|
||||
<input class="form-control" name="nachname" type="text" value="<%= mitglied.nachname %>"></br>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-6">
|
||||
<label for="geburt">Geburtsdatum:</label>
|
||||
<input type="date" id="geburt" name="geburt" value="<%= birthday.getFullYear() %>-<%= ('00' + (birthday.getMonth() + 1)).slice(-2) %>-<%= ('00' + birthday.getDate()).slice(-2) %>"></br>
|
||||
</div>
|
||||
|
||||
<input type="hidden" name="id" value="<%= id %>">
|
||||
<input type="hidden" name="type" value="adresse">
|
||||
<strong> Adresse: </strong> <input name="adresse" type="text" value="<%= mitglied.adresse %>"></br>
|
||||
<strong> Probetraining: </strong> <input type="checkbox" name="probe" value="true" <%= mitglied.probe ? 'checked' : '' %>></br>
|
||||
<button type="submit">Speichern</button>
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<label for="adresse"> Adresse: </label>
|
||||
<input class="form-control" name="adresse" type="text" value="<%= mitglied.adresse %>"></br>
|
||||
</div>
|
||||
|
||||
<label for="probe"> Probetraining: </label>
|
||||
<input class="form-check-input" type="checkbox" name="probe" value="true" <%= mitglied.probe ? 'checked' : '' %>></br>
|
||||
|
||||
<button class="btn btn-success" type="submit">Speichern</button>
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
<form method="POST" action="/set-Riege">
|
||||
<fieldset>
|
||||
<legend>Riege</legend>
|
||||
<input type="hidden" name="id" value="<%= id %>">
|
||||
<strong>Riege: </strong><select name="riege">
|
||||
<strong>Riege: </strong><select class="custom-select" name="riege">
|
||||
<option value=0 <% if ( riege === 0) { %> selected <% } %>> keine</option>
|
||||
<option value=1 <% if ( riege === 1) { %> selected <% } %>> Riege 1</option>
|
||||
<option value=2 <% if ( riege === 2) { %> selected <% } %>> Riege 2</option>
|
||||
|
@ -52,8 +79,11 @@
|
|||
<option value=5 <% if ( riege === 5) { %> selected <% } %>> Riege 5</option>
|
||||
</select>
|
||||
<button type="submit">Speichern</button>
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<fieldset>
|
||||
<legend>Notfallnummern</legend>
|
||||
<p>
|
||||
<% numbers.forEach(number => { %>
|
||||
<form method="POST" action="/update-mitglied">
|
||||
|
@ -65,7 +95,7 @@
|
|||
</form>
|
||||
<% }) %>
|
||||
</p>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<h2>Telefonnummer hinzufügen</h2>
|
||||
<form method="POST" action="/update-mitglied">
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -303,6 +303,13 @@
|
|||
</td>
|
||||
<td>
|
||||
<%= teilnehmer.nachname %>
|
||||
<% if (teilnehmer.probe) { %>
|
||||
<span
|
||||
style="color: <%= teilnehmer.anwesenheit <= 3 ? 'green' : 'red' %>;"
|
||||
>
|
||||
(<%= teilnehmer.anwesenheit %>)
|
||||
</span>
|
||||
<% } %>
|
||||
</td>
|
||||
<td>
|
||||
<%= teilnehmer.age %>
|
||||
|
|
Loading…
Reference in New Issue