Add educator leave management and working time accounts

This commit is contained in:
t.indorf
2026-10-07 15:25:55 +02:00
parent ec3f4f933d
commit 043fed2e46
19 changed files with 5631 additions and 200 deletions
+34 -10
View File
@@ -191,8 +191,7 @@ export default async function DashboardPage() {
</h1>
<p className="mt-3 max-w-2xl text-[15px] leading-6 text-[var(--ink-soft)]">
Heute, {format(now, "EEEE, d. MMMM yyyy", { locale: de })}. Hier
siehst du auf einen Blick, was bei {kita.name} ansteht und kannst
dein Kind schnell für Abwesenheiten melden.
siehst du auf einen Blick, was bei {kita.name} ansteht.
</p>
</div>
<div className="mt-9 inline-flex shrink-0 items-center gap-2 rounded-full border border-[var(--hairline)] bg-[var(--surface)] px-4 py-2 text-[13px] font-semibold text-[var(--ink-soft)]">
@@ -203,6 +202,14 @@ export default async function DashboardPage() {
<div className="grid grid-cols-[minmax(0,1fr)_360px] gap-5 max-[1100px]:grid-cols-1">
<div className="min-w-0">
{session.user.role === UserRole.ERZIEHER && (
<QuickCard
href="/dashboard/personal"
icon={Clock3}
title="Meine Arbeitszeit & Urlaub"
sub="Stunden erfassen, Urlaub beantragen und dein Zeitkonto ansehen."
/>
)}
{canReportAbsences ? (
<AbsenceCard
today={format(today, "yyyy-MM-dd")}
@@ -237,7 +244,11 @@ export default async function DashboardPage() {
</div>
<section className="mt-5 grid grid-cols-4 gap-3.5 max-[1100px]:grid-cols-2 max-[640px]:grid-cols-1">
<Stat label="Familien" value={familyCount} hint="registrierte Familien" />
<Stat
label="Familien"
value={familyCount}
hint="registrierte Familien"
/>
<Stat label="Kinder" value={childCount} hint="in der Einrichtung" />
<Stat
label={`Notdienst ${targetData.monthName}`}
@@ -260,12 +271,22 @@ export default async function DashboardPage() {
Häufige Aktionen für Vorstand und Koordination.
</p>
<div className="mt-4 grid grid-cols-3 gap-3 max-[1100px]:grid-cols-1">
<QuickCard
href="/dashboard/families"
icon={Users}
title="Familien verwalten"
sub="Familien anlegen, Kinder zuordnen, Kontakte pflegen."
/>
{session.user.role === UserRole.ADMIN && (
<QuickCard
href="/dashboard/personal"
icon={Clock3}
title="Personal & Freigaben"
sub="Urlaub, Arbeitswochen und Beschäftigungsprofile verwalten."
/>
)}
{session.user.role === UserRole.ADMIN && (
<QuickCard
href="/dashboard/families"
icon={Users}
title="Familien verwalten"
sub="Familien anlegen, Kinder zuordnen, Kontakte pflegen."
/>
)}
{kita.terminModuleEnabled ? (
<QuickCard
href="/dashboard/kalender"
@@ -274,7 +295,10 @@ export default async function DashboardPage() {
sub="Schließtage, Elternabende und Feste planen."
/>
) : null}
{kita.notdienstModuleEnabled ? (
{kita.notdienstModuleEnabled &&
[UserRole.ADMIN, UserRole.KOORDINATOR].includes(
session.user.role as "ADMIN" | "KOORDINATOR",
) ? (
<QuickCard
href="/dashboard/notdienst/plan"
icon={ListTodo}