feat: eigene Bilder pro Charge
Docker Image bauen und veroeffentlichen / build-and-push (push) Successful in 2m21s

Chargen hatten bisher kein eigenes Bild-Feld (nur Ernten und Produkte) —
neue Migration ergaenzt Batch.images (Json-Array, gleiches Muster wie
Harvest.images/Product.images). Admin kann Chargenfotos jetzt unter
/admin/chargen/[id] hochladen (AdminImageListField, identisch zum
Ernten-Formular). Die oeffentliche Chargen-Seite (/charge/[code]) zeigt
diese Fotos jetzt bevorzugt, faellt ohne eigene Chargenbilder weiterhin
auf die Erntebilder zurueck.

Hinweis fuer den naechsten Live-Deploy: die generierte Migration hat
nebenbei eine bereits laenger bestehende Schema-Abweichung mitkorrigiert
(harvests.images und products.images/tasteTags werden jetzt als NOT NULL
erzwungen, wie im Schema schon laenger deklariert) - "prisma migrate
deploy" schlaegt fehl, falls dort noch echte NULL-Werte stehen sollten.

Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
Nick SzaunigandClaude Sonnet 5 committed 2026-09-12 04:08:39 +02:00
1 parent 6742152626
commit 7d5c172487
9 files changed
+49 -6

No files matched your search

+5 -2
View File
@@ -39,6 +39,9 @@ export default async function BatchPage(props: PageProps<"/charge/[code]">) {
{ label: t.chargePage.stepFilling, value: formatDate(batch.fillDate, locale) },
{ label: t.chargePage.stepBestBefore, value: formatDate(batch.bestBeforeDate, locale) },
];
// Eigene Chargenfotos (z.B. Etikett/Abfuellung dieser konkreten Charge)
// gehen vor, falls gepflegt — sonst wie bisher die Erntebilder.
const displayImages = batch.images.length > 0 ? batch.images : batch.harvest.images;
return (
<div className="py-20">
@@ -57,7 +60,7 @@ export default async function BatchPage(props: PageProps<"/charge/[code]">) {
<div className="mt-10 grid sm:grid-cols-2 gap-6">
<ScrollReveal>
<ContentImage
src={batch.harvest.images[0] ?? null}
src={displayImages[0] ?? null}
alt={`${batch.harvest.type} ${batch.harvest.year}`}
tone="honey"
className="aspect-square"
@@ -67,7 +70,7 @@ export default async function BatchPage(props: PageProps<"/charge/[code]">) {
</ScrollReveal>
<ScrollReveal delay={0.1}>
<ContentImage
src={batch.harvest.images[1] ?? null}
src={displayImages[1] ?? null}
alt={batch.harvest.location}
tone="forest"
className="aspect-square"