import type { Metadata } from 'next'; import Link from 'next/link'; import { erfordereBenutzer } from '@/lib/auth/rechte'; import { ausbildungenVonAusbilder, ausbildungNachAzubi } from '@/lib/repos/ausbildung'; import { inhalte } from '@/lib/inhalte'; import { gespraecheVon, inhaltVon } from '@/lib/repos/feedback'; import { istAbgeschlossen, zusammenfassung } from '@/lib/feedback/inhalt'; import { alsDatumText, heute, montagDerWoche } from '@/lib/zeit'; import { gespraechAnlegen } from './aktionen'; import { erfordereModul } from '@/lib/module/pruefen'; export const metadata: Metadata = { title: 'Feedbackgespräche' }; export const dynamic = 'force-dynamic'; export default async function FeedbackSeite() { const benutzer = await erfordereBenutzer(); erfordereModul('feedback'); const vorlage = inhalte().feedback; const beteiligte = benutzer.rolle === 'ausbilder' ? ausbildungenVonAusbilder(benutzer.id).map(({ azubi, ausbildung }) => ({ azubi, ausbildung })) : (() => { const ausbildung = ausbildungNachAzubi(benutzer.id); return ausbildung ? [{ azubi: benutzer, ausbildung }] : []; })(); return (

Feedbackgespräche

Monatlich, mit Leitfaden und Bewertungsbogen. Von beiden Seiten bestätigt und danach unveränderlich – für die Ausbildungsakte.

{beteiligte.length === 0 ? (

{benutzer.rolle === 'ausbilder' ? ( <> Noch kein Azubikonto. Jetzt eines anlegen. ) : ( 'Zu deinem Konto ist noch keine Ausbildung hinterlegt.' )}

) : ( beteiligte.map(({ azubi, ausbildung }) => { const gespraeche = gespraecheVon(ausbildung.id); const letztes = gespraeche[0]; const faellig = !letztes || montagDerWoche(letztes.datum) < montagDerWoche(vorMonaten(heute(), 1)); return (

{benutzer.rolle === 'ausbilder' ? azubi.name : 'Deine Gespräche'}

{benutzer.rolle === 'ausbilder' ? (
) : null}
{faellig && benutzer.rolle === 'ausbilder' ? (

{letztes ? `Das letzte Gespräch war am ${alsDatumText(letztes.datum)} – das ist über einen Monat her.` : 'Es gab noch kein Feedbackgespräch.'}

) : null} {gespraeche.length === 0 ? (

Noch kein Gespräch geführt.

) : ( )}
); }) )}
); } function vorMonaten(datum: string, monate: number): string { const d = new Date(`${datum}T12:00:00Z`); d.setUTCMonth(d.getUTCMonth() - monate); return d.toISOString().slice(0, 10); } function zahl(wert: number): string { return wert.toString().replace('.', ','); }