From 5408b445776234c35fb61374d2d3abc6b83b2904 Mon Sep 17 00:00:00 2001 From: Marius Peter Date: Sat, 22 Nov 2025 12:32:34 +0100 Subject: Add fertilizer product creation logic. --- views.rkt | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) (limited to 'views.rkt') diff --git a/views.rkt b/views.rkt index 9323896..00af4b6 100644 --- a/views.rkt +++ b/views.rkt @@ -4,6 +4,7 @@ ferti-page new-measurement-page new-target-page + new-fertilizer-page fallback-page) (require gregor @@ -12,7 +13,6 @@ "models/user.rkt" "models/nutrient.rkt" "models/nutrient-measurement.rkt" - "models/nutrient-target.rkt" "models/fertilizer-product.rkt") (define (page-template title body-xexpr) @@ -71,9 +71,18 @@ (page-template "Ferti" `((h1 ((class "display-1 mb-3")) "Ferti") + ,ferti-actions ,@(ferti-recipe fertilizer-recipe) ,@(ferti-targets latest-measurement-hash latest-target-hash) - ,@(ferti-measurements measurements)))) + ,@(ferti-measurements measurements) + ,@(ferti-fertilizers)))) + +(define ferti-actions + `(div ((class "btn-group mb-3")) + (a ((class "btn btn-outline-primary") [href "/target/new"]) "Créer une cible") + (a ((class "btn btn-outline-primary") [href "/measurement/new"]) "Ajouter un relevé") + (a ((class "btn btn-outline-primary") [href "/fertilizer/new"]) "Ajouter un intrant"))) + (define (ferti-recipe ferti-recipe) `((h2 () "Recette") @@ -89,7 +98,6 @@ (define (ferti-targets latest-measurement-hash latest-target-hash) `((h2 () "Dernière Cible") - (a ((class "btn btn-primary mb-3") [href "/target/new"]) "Créer une cible") (table ((class "table")) (tr (th "Nutriment") (th ((class "text-end")) "Dernier Relevé") @@ -121,7 +129,6 @@ (define (ferti-measurements measurements) `((h2 () "Relevés") - (a ((class "btn btn-primary mb-3") [href "/measurement/new"]) "Ajouter un relevé") (table ((class "table table-striped")) (tr (th "Date") (th ((class "text-end")) "N") @@ -142,6 +149,15 @@ (td ((class "text-end font-monospace")) ,p) (td ((class "text-end font-monospace")) ,k)))))) +(define (ferti-fertilizers) + `((h2 () "Intrants") + (table ((class "table table-striped")) + (tr (th () "Nom de référence") + (th () "Nom de marque")) + ,@(for/list ([fertilizer (get-fertilizer-products)]) + `(tr (td ,(fertilizer-name fertilizer)) + (td ,(or (fertilizer-brand-name fertilizer) "—"))))))) + (define (new-measurement-page) (page-template "Nouveau relevé" `((h1 ((class "display-1 mb-3")) "Nouveau relevé") @@ -156,6 +172,13 @@ (form ([action "/target/create"] [method "POST"]) ,@(formlet-display (targets-formlet))))))) +(define (new-fertilizer-page) + (page-template "Nouvel intrant" + `((h1 ((class "display-1 mb-3")) "Nouvel intrant") + (div ((class "mb-3") [style "max-width: 30em"]) + (form ([action "/fertilizer/create"] [method "POST"]) + ,@(formlet-display (fertilizer-formlet))))))) + (define (index-page user) (page-template "Bienvenue à la FAPG" -- cgit v1.2.3