Split job offers into Open and Taken-over pages
/jobangebote now lists only open offers; taken-over offers move to a dedicated /jobangebote/uebernommen page showing which applications were created (with link, status and date). A tab bar switches between both. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1661,16 +1661,21 @@ initializeDatabase().then(() => {
|
||||
}
|
||||
});
|
||||
|
||||
// Main list: only OPEN offers (still to be decided on). Taken-over offers
|
||||
// live on their own page (/jobangebote/uebernommen).
|
||||
app.get('/jobangebote', async (req, res) => {
|
||||
try {
|
||||
const jobangebote = await dbAll(
|
||||
`SELECT j.*, b.datum AS bewerbung_datum
|
||||
FROM jobangebote j
|
||||
LEFT JOIN bewerbungen b ON b.id = j.verknuepfte_bewerbung_id
|
||||
WHERE j.status = 'offen'
|
||||
ORDER BY j.created_at DESC, j.id DESC`
|
||||
);
|
||||
const uebernommenRow = await dbGet("SELECT COUNT(*) AS c FROM jobangebote WHERE status = 'uebernommen'");
|
||||
res.render('jobangebote', {
|
||||
jobangebote,
|
||||
uebernommenCount: uebernommenRow ? uebernommenRow.c : 0,
|
||||
artOptions: ART_OPTIONS,
|
||||
statusOptions: STATUS_OPTIONS,
|
||||
hideSettings: false,
|
||||
@@ -1681,6 +1686,28 @@ initializeDatabase().then(() => {
|
||||
}
|
||||
});
|
||||
|
||||
// Taken-over offers: which offers were turned into applications.
|
||||
app.get('/jobangebote/uebernommen', async (req, res) => {
|
||||
try {
|
||||
const uebernommen = await dbAll(
|
||||
`SELECT j.*, b.datum AS bewerbung_datum, b.status AS bewerbung_status
|
||||
FROM jobangebote j
|
||||
LEFT JOIN bewerbungen b ON b.id = j.verknuepfte_bewerbung_id
|
||||
WHERE j.status = 'uebernommen'
|
||||
ORDER BY j.updated_at DESC, j.id DESC`
|
||||
);
|
||||
const offenRow = await dbGet("SELECT COUNT(*) AS c FROM jobangebote WHERE status = 'offen'");
|
||||
res.render('jobangebote_uebernommen', {
|
||||
uebernommen,
|
||||
offenCount: offenRow ? offenRow.c : 0,
|
||||
hideSettings: false,
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Error listing taken-over offers:', error);
|
||||
res.status(500).send('Serverfehler');
|
||||
}
|
||||
});
|
||||
|
||||
// Convert a job offer into a Bewerbung draft (mirrors the Indeed import flow:
|
||||
// creates a bewerbung with status "Entwurf", records the initial timeline entry,
|
||||
// and links the offer back to it).
|
||||
|
||||
Reference in New Issue
Block a user