Startseite: Letzte Aktivitaeten und Gesamtzahl der Bewerbungen

Unter der Liste stehen jetzt die acht juengsten Statusaenderungen quer ueber
alle Bewerbungen - mit Firma, Stelle, Status, Datum und Kommentar, verlinkt auf
die Bewerbung. Sortiert nach Erfassungszeit statt nach fachlichem Datum, damit
ein nachgetragener alter Eintrag nicht oben steht.

Der Kopf der Listen-Karte nennt die Gesamtzahl. Er sitzt bewusst ausserhalb des
md:min-w-Rahmens, damit er auf dem Handy nicht horizontal mitscrollt.

Beides verschwindet waehrend einer Suche, wie Liste und Termine auch. Die
Status-Farbkarte ist eine Ebene hoeher gewandert, weil Liste und Aktivitaeten
sie jetzt beide brauchen.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-14 11:33:39 +02:00
co-authored by Claude Opus 4.8
parent ab62399f6f
commit 7b60fe734a
3 changed files with 101 additions and 21 deletions
+15
View File
@@ -1647,6 +1647,20 @@ initializeDatabase().then(async () => {
GROUP BY status ORDER BY count DESC
`, [U]);
// Letzte Aktivitäten für die Startseite: die jüngsten Statusänderungen, quer
// über alle Bewerbungen. Sortiert nach Erfassungszeit (created_at), nicht nach
// dem fachlichen Datum — sonst würde ein nachgetragener alter Eintrag oben
// stehen, obwohl gerade etwas anderes passiert ist.
const aktivitaet = await dbAll(`
SELECT sv.datum, sv.status, sv.kommentar,
b.id AS bewerbung_id, b.firma, b.stelle
FROM status_verlauf sv
LEFT JOIN bewerbungen b ON b.id = sv.bewerbung_id AND b.user_id = sv.user_id
WHERE sv.user_id = ?
ORDER BY datetime(sv.created_at) DESC, sv.id DESC
LIMIT 8
`, [U]);
// Get available months/years for filter
const availableMonths = await dbAll(`
SELECT DISTINCT strftime("%Y-%m", datum) as yearmonth,
@@ -1683,6 +1697,7 @@ initializeDatabase().then(async () => {
availableMonths,
exportMonths,
currentFilter: { month, year },
aktivitaet,
kommendeTermine,
caldavTz: caldav.TZ,
artOptions: ART_OPTIONS,