Mitglied anlegen und in Riege eintragen. Telefonnummern hinzufügen
This commit is contained in:
parent
acd5663f6b
commit
c1994b0396
51
app.js
51
app.js
|
@ -165,6 +165,22 @@ ORDER BY weeks_since_last DESC;
|
|||
return result.rows;
|
||||
};
|
||||
|
||||
const putInRiege = async (riege, teilnehmerID) => {
|
||||
try {
|
||||
const resultRiege = await pool.query('SELECT * FROM riegen WHERE fremdid_teilnehmende = $1', [teilnehmerID]);
|
||||
if (resultRiege.rows > 0) {
|
||||
const resultRiege = await pool.query('UPDATE riegen SET riegennummer = $1 WHERE fremdid_teilnehmende = $2', [riege, teilnehmerID]);
|
||||
console.log("Mitglied ist jetzt in Riege $1", [riege]);
|
||||
} else {
|
||||
const resultRiege = await pool.query('INSERT INTO riegen (fremdid_teilnehmende, riegennummer) VALUES ($1, $2)', [teilnehmerID, riege]);
|
||||
console.log("Mitglied neu in Riegen eingefügt.");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error adding new spiel:', error);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
// Funktion zum Laden der vier Leute, die am längsten nicht Spiel geleitet haben
|
||||
const getCandidatesForSpielleiter = async () => {
|
||||
const result = await pool.query(`
|
||||
|
@ -395,6 +411,19 @@ app.get('/admin', requireAuth, requireAdmin, async (req, res) => {
|
|||
res.render('admin', { users: usersResult.rows, session: req.session }); // Stelle sicher, dass es eine admin.ejs gibt
|
||||
});
|
||||
|
||||
app.post('/new-member', requireAuth, requireAdmin ,async(req, res) => {
|
||||
const {name, geburt, riege, adresse} = req.body;
|
||||
try {
|
||||
console.log(('INSERT INTO teilnehmende (name, geburtsdatum, adresse) VALUES ($1, $2, $3) RETURNING id', [name, geburt, adresse]));
|
||||
const teilnehmerID = await pool.query('INSERT INTO teilnehmende (name, geburtsdatum, adresse) VALUES ($1, $2, $3) RETURNING id', [name, geburt, adresse]);
|
||||
putInRiege(riege, teilnehmerID);
|
||||
res.redirect('/riege');
|
||||
}catch (err) {
|
||||
console.error(err);
|
||||
res.send("Error " + err);
|
||||
}
|
||||
})
|
||||
|
||||
// Teilnehmer_innen
|
||||
app.get('/', requireAuth, async (req, res) => {
|
||||
try {
|
||||
|
@ -502,6 +531,8 @@ app.get('/mitglied/:id', requireAuth, async (req, res) => {
|
|||
const { id } = req.params;
|
||||
try {
|
||||
const userResult = await pool.query('SELECT * FROM teilnehmende WHERE id = $1', [id]);
|
||||
const numberResult = await pool.query('SELECT * FROM telefonnummern JOIN telverbindung ON telefonnummern.verbindung = telverbindung.id WHERE telefonnummern.fid_teilnehmer = $1', [id]);
|
||||
const numbers = numberResult.rows
|
||||
if (userResult.rows.length > 0) {
|
||||
const mitglied = userResult.rows.map(t => ({
|
||||
...t,
|
||||
|
@ -510,6 +541,7 @@ app.get('/mitglied/:id', requireAuth, async (req, res) => {
|
|||
res.render('mitglied', {
|
||||
id,
|
||||
mitglied: mitglied[0],
|
||||
numbers,
|
||||
session: req.session
|
||||
});
|
||||
} else {
|
||||
|
@ -521,6 +553,25 @@ app.get('/mitglied/:id', requireAuth, async (req, res) => {
|
|||
}
|
||||
});
|
||||
|
||||
app.post('/set-riege', requireAuth, async (req, res) => {
|
||||
const { riege, id } = req.body;
|
||||
putInRiege(riege, id);
|
||||
res.redirect('/riege');
|
||||
})
|
||||
|
||||
app.post('/update-mitglied', async (req, res) => {
|
||||
const { mitgliedId, name, verbindung, nummer } = req.body;
|
||||
try{
|
||||
console.log('INSERT INTO telefonnummern (fid_teilnehmer, name, verbindung, nummer, stand) VALUES ($1, $2, $3, $4, $5)', [mitgliedId, name, verbindung, nummer, moment().toDate()]);
|
||||
await pool.query('INSERT INTO telefonnummern (fid_teilnehmer, name, verbindung, nummer, stand) VALUES ($1, $2, $3, $4, $5)', [mitgliedId, name, verbindung, nummer, moment().toDate()]);
|
||||
console.log('/mitglied/' + mitgliedId);
|
||||
res.redirect('/mitglied/' + mitgliedId);
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
res.send("Error " + err);
|
||||
}
|
||||
});
|
||||
|
||||
// Login und Registrierung anzeigen
|
||||
app.get('/login', (req, res) => {
|
||||
res.render('login', {session: req.session}); // Stelle sicher, dass es eine login.ejs gibt
|
||||
|
|
|
@ -13,4 +13,18 @@
|
|||
<% }) %>
|
||||
</ul>
|
||||
|
||||
<form method="POST" action="/new-member">
|
||||
Name: <input type="text" id="name" placeholder="Name" name="name"> </br>
|
||||
Geburtsdatum: <input type="date" id="riege" name="geburt"></br>
|
||||
<select name="riege">
|
||||
<option value=1> Riege 1</option>
|
||||
<option value=2> Riege 2</option>
|
||||
<option value=3> Riege 3</option>
|
||||
<option value=4> Riege 4</option>
|
||||
<option value=5> Riege 5</option>
|
||||
</select></br>
|
||||
Adresse: <input type="text" id="adresse" placeholder="Adresse" name="adresse"></br>
|
||||
<button type="submit">Speichern</button>
|
||||
</form>
|
||||
|
||||
<%- include('partials/footer') %>
|
||||
|
|
|
@ -4,7 +4,49 @@
|
|||
|
||||
<h1> <%= mitglied.name %> </h1>
|
||||
|
||||
<strong> Geburtsdatum </strong> <%= birthday.getDate() %>.<%= birthday.getMonth() + 1 %>.<%= birthday.getFullYear() %> (<%= mitglied.age %>) </br>
|
||||
<strong> Adresse </strong> <%= mitglied.adresse %>
|
||||
<form method="POST" action="/set-Riege">
|
||||
<input type="hidden" name="id" value="<%= id %>">
|
||||
<select name="riege">
|
||||
<option value=1> Riege 1</option>
|
||||
<option value=2> Riege 2</option>
|
||||
<option value=3> Riege 3</option>
|
||||
<option value=4> Riege 4</option>
|
||||
<option value=5> Riege 5</option>
|
||||
</select></br>
|
||||
<button type="submit">Speichern</button>
|
||||
</form>
|
||||
|
||||
|
||||
<strong> Geburtsdatum: </strong> <%= birthday.getDate() %>.<%= birthday.getMonth() + 1 %>.<%= birthday.getFullYear() %> (<%= mitglied.age %>) </br>
|
||||
<strong> Adresse: </strong> <%= mitglied.adresse %> </br>
|
||||
<% numbers.forEach(number => { %>
|
||||
<% if (number.verbindung === 4) { %>
|
||||
<strong> Telefonnummer: </strong> <%= number.nummer %> </br>
|
||||
<% }}) %>
|
||||
|
||||
<h2>Notfallnummern</h2>
|
||||
<p>
|
||||
<% numbers.forEach(number => { %>
|
||||
<% if (number.verbindung != 4) { %>
|
||||
<strong><%= number.bezeichnung %> - <%= number.name %>: </strong> <%= number.nummer %> (stand: <%= number.stand.getDate() %>.<%= number.stand.getMonth() %>.<%= number.stand.getFullYear() %>) </br>
|
||||
<% }}) %>
|
||||
</p>
|
||||
|
||||
<form method="POST" action="/update-mitglied">
|
||||
<input type="hidden" name="mitgliedId" value="<%= id %>">
|
||||
<select name="verbindung">
|
||||
<option value=1>Mutter</option>
|
||||
<option value=2>Vater</option>
|
||||
<option value=3>Eltern</option>
|
||||
<option value=4>Eigene</option>
|
||||
<option value=5>Oma</option>
|
||||
<option value=6>Opa</option>
|
||||
</select>
|
||||
<input name="name" placeholder="Name" type="text" >
|
||||
<input name="nummer" placeholder="+49 123 456 789" type="text">
|
||||
<button type="submit">Speichern</button>
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
<%- include('partials/footer') %>
|
||||
|
|
Loading…
Reference in New Issue