feat: Aufgaben einzeln zum Spiegeln freigeben
Der Schalter erscheint nur, wo auch gespiegelt wird. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
4da2f3d9c6
commit
3befcc19a3
@@ -14,6 +14,7 @@ import {
|
|||||||
type AufgabenFilter,
|
type AufgabenFilter,
|
||||||
} from '@/server/abfragen/aufgaben'
|
} from '@/server/abfragen/aufgaben'
|
||||||
import { verlangeAnmeldung } from '@/server/berechtigung'
|
import { verlangeAnmeldung } from '@/server/berechtigung'
|
||||||
|
import { umgebung } from '@/server/umgebung'
|
||||||
|
|
||||||
export const metadata: Metadata = { title: 'Aufgaben' }
|
export const metadata: Metadata = { title: 'Aufgaben' }
|
||||||
|
|
||||||
@@ -67,6 +68,7 @@ export default async function AufgabenSeite({
|
|||||||
searchParams: Promise<Record<string, string | string[] | undefined>>
|
searchParams: Promise<Record<string, string | string[] | undefined>>
|
||||||
}) {
|
}) {
|
||||||
await verlangeAnmeldung('/aufgaben')
|
await verlangeAnmeldung('/aufgaben')
|
||||||
|
const spiegelt = umgebung().spiegelSendenAktiv
|
||||||
const parameter = await searchParams
|
const parameter = await searchParams
|
||||||
|
|
||||||
const [aufgaben, bereiche, projekte] = await Promise.all([
|
const [aufgaben, bereiche, projekte] = await Promise.all([
|
||||||
@@ -101,11 +103,13 @@ export default async function AufgabenSeite({
|
|||||||
</CardInhalt>
|
</CardInhalt>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
|
{/* Nur wo auch gespiegelt wird, hat der Schalter einen Sinn. */}
|
||||||
<AufgabenListe
|
<AufgabenListe
|
||||||
aufgaben={aufgaben}
|
aufgaben={aufgaben}
|
||||||
bereiche={bereiche}
|
bereiche={bereiche}
|
||||||
projekte={projekte}
|
projekte={projekte}
|
||||||
leerText="Keine Aufgabe passt zu diesen Filtern."
|
leerText="Keine Aufgabe passt zu diesen Filtern."
|
||||||
|
mitSpiegeln={spiegelt}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ function roh(teil: Partial<AufgabeRoh> = {}): AufgabeRoh {
|
|||||||
faelligAm: null,
|
faelligAm: null,
|
||||||
quelle: 'MANUELL',
|
quelle: 'MANUELL',
|
||||||
quelleUrl: null,
|
quelleUrl: null,
|
||||||
|
spiegeln: false,
|
||||||
bereich: null,
|
bereich: null,
|
||||||
projekt: null,
|
projekt: null,
|
||||||
...teil,
|
...teil,
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ export type AufgabeRoh = {
|
|||||||
faelligAm: Date | null
|
faelligAm: Date | null
|
||||||
quelle: Quelle
|
quelle: Quelle
|
||||||
quelleUrl: string | null
|
quelleUrl: string | null
|
||||||
|
spiegeln: boolean
|
||||||
bereich: { id: string; name: string; farbe: string } | null
|
bereich: { id: string; name: string; farbe: string } | null
|
||||||
projekt: { id: string; name: string } | null
|
projekt: { id: string; name: string } | null
|
||||||
}
|
}
|
||||||
@@ -48,6 +49,8 @@ export type AufgabeAnzeige = {
|
|||||||
ueberfaellig: boolean
|
ueberfaellig: boolean
|
||||||
quelle: Quelle
|
quelle: Quelle
|
||||||
quelleUrl: string | null
|
quelleUrl: string | null
|
||||||
|
/** Ausdruecklich zum Spiegeln freigegeben. */
|
||||||
|
spiegeln: boolean
|
||||||
bereich: { id: string; name: string; farbe: string } | null
|
bereich: { id: string; name: string; farbe: string } | null
|
||||||
projekt: { id: string; name: string } | null
|
projekt: { id: string; name: string } | null
|
||||||
}
|
}
|
||||||
@@ -79,6 +82,7 @@ export function fuerAnzeige(aufgabe: AufgabeRoh, jetzt: Date): AufgabeAnzeige {
|
|||||||
ueberfaellig: istUeberfaellig(aufgabe.faelligAm, aufgabe.status, jetzt),
|
ueberfaellig: istUeberfaellig(aufgabe.faelligAm, aufgabe.status, jetzt),
|
||||||
quelle: aufgabe.quelle,
|
quelle: aufgabe.quelle,
|
||||||
quelleUrl: aufgabe.quelleUrl,
|
quelleUrl: aufgabe.quelleUrl,
|
||||||
|
spiegeln: aufgabe.spiegeln,
|
||||||
bereich: aufgabe.bereich,
|
bereich: aufgabe.bereich,
|
||||||
projekt: aufgabe.projekt,
|
projekt: aufgabe.projekt,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ const AUSWAHL = {
|
|||||||
faelligAm: true,
|
faelligAm: true,
|
||||||
quelle: true,
|
quelle: true,
|
||||||
quelleUrl: true,
|
quelleUrl: true,
|
||||||
|
spiegeln: true,
|
||||||
bereich: { select: { id: true, name: true, farbe: true } },
|
bereich: { select: { id: true, name: true, farbe: true } },
|
||||||
projekt: { select: { id: true, name: true } },
|
projekt: { select: { id: true, name: true } },
|
||||||
} satisfies Prisma.AufgabeSelect
|
} satisfies Prisma.AufgabeSelect
|
||||||
|
|||||||
Reference in New Issue
Block a user