Spielkandidaten
This commit is contained in:
parent
47f953077d
commit
db7226587f
|
@ -32,7 +32,7 @@ router.get(
|
|||
// **Trainings einer bestimmten Woche abrufen**
|
||||
query = `
|
||||
SELECT * FROM trainings
|
||||
WHERE abteilung = $1 AND year = $2 AND kw = $3
|
||||
WHERE fid_abteilung = $1 AND year = $2 AND kw = $3
|
||||
ORDER BY year DESC, kw DESC
|
||||
`;
|
||||
values.push(year, kw);
|
||||
|
@ -40,7 +40,7 @@ router.get(
|
|||
// **Alle Trainings eines yeares abrufen**
|
||||
query = `
|
||||
SELECT * FROM trainings
|
||||
WHERE abteilung = $1 AND year = $2
|
||||
WHERE fid_abteilung = $1 AND year = $2
|
||||
ORDER BY kw ASC
|
||||
`;
|
||||
values.push(year);
|
||||
|
@ -48,7 +48,7 @@ router.get(
|
|||
// **Alle Trainings der Abteilung abrufen**
|
||||
query = `
|
||||
SELECT * FROM trainings
|
||||
WHERE abteilung = $1
|
||||
WHERE fid_abteilung = $1
|
||||
ORDER BY year DESC, kw DESC
|
||||
`;
|
||||
}
|
||||
|
@ -97,6 +97,43 @@ router.get(
|
|||
} else {
|
||||
res.status(400).json({ error: "TrainingsID muss übergeben werden" });
|
||||
}
|
||||
} else if (key1 === "leiten") {
|
||||
const typ = value1; // 'a' oder 's'
|
||||
const abteilung = req.abteilung; // Abteilung aus Middleware
|
||||
|
||||
if (!["a", "s"].includes(typ)) {
|
||||
return res.status(400).json({ error: "Typ muss 'a' oder 's' sein" });
|
||||
}
|
||||
|
||||
try {
|
||||
const result = await pool.query(
|
||||
`
|
||||
SELECT
|
||||
m.id,
|
||||
m.vorname || ' ' || m.nachname AS name,
|
||||
COALESCE(
|
||||
EXTRACT(EPOCH FROM (NOW() - MAX(to_date(t.year || ' ' || t.kw, 'IYYY IW'))) / 604800),
|
||||
EXTRACT(EPOCH FROM (NOW() - '1970-01-01') / 604800)
|
||||
) AS weeks_since_last
|
||||
FROM mitglieder m
|
||||
JOIN abteilungszuordnung az ON az.fid_mitglied = m.id
|
||||
LEFT JOIN (
|
||||
SELECT l.fid_helfer, t.year, t.kw
|
||||
FROM leiten l
|
||||
JOIN trainings t ON t.id = l.fid_training
|
||||
WHERE l.typ = $1 AND t.fid_abteilung = $2
|
||||
) t ON t.fid_helfer = m.id
|
||||
WHERE az.helfer = true AND az.fid_abteilung = $2
|
||||
GROUP BY m.id
|
||||
ORDER BY weeks_since_last DESC;`,
|
||||
[typ, abteilung]
|
||||
);
|
||||
|
||||
res.json(result.rows);
|
||||
} catch (err) {
|
||||
console.error("Fehler bei /leiten:", err);
|
||||
res.status(500).json({ error: "Fehler bei der Kandidatenabfrage" });
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
|
@ -210,7 +247,7 @@ router.post("/new/:jahr/:kw", requireAuth, requireRole(2), async (req, res) => {
|
|||
|
||||
// **3. Neues Training anlegen**
|
||||
const trainingResult = await pool.query(
|
||||
`INSERT INTO trainings (year, kw, abteilung) VALUES ($1, $2, $3) RETURNING id`,
|
||||
`INSERT INTO trainings (year, kw, fid_abteilung) VALUES ($1, $2, $3) RETURNING id`,
|
||||
[jahr, kw, abteilung]
|
||||
);
|
||||
|
||||
|
@ -224,7 +261,7 @@ router.post("/new/:jahr/:kw", requireAuth, requireRole(2), async (req, res) => {
|
|||
`SELECT g.geraete
|
||||
FROM trainings t
|
||||
JOIN geraeteplan g ON t.id = g.fid_training
|
||||
WHERE t.abteilung = $1
|
||||
WHERE t.fid_abteilung = $1
|
||||
ORDER BY t.year DESC, t.kw DESC
|
||||
LIMIT 2`,
|
||||
[abteilung]
|
||||
|
|
Loading…
Reference in New Issue