diff options
| author | Marius Peter <dev@marius-peter.com> | 2025-11-22 12:32:34 +0100 |
|---|---|---|
| committer | Marius Peter <dev@marius-peter.com> | 2025-11-22 12:32:34 +0100 |
| commit | 5408b445776234c35fb61374d2d3abc6b83b2904 (patch) | |
| tree | 0d8f25f82fb2c5b5223219bd73c9bafd29d68d25 /views.rkt | |
| parent | 6d22ffec76b5fef772173690874bfb1d22ef2a81 (diff) | |
Add fertilizer product creation logic.
Diffstat (limited to 'views.rkt')
| -rw-r--r-- | views.rkt | 31 |
1 files changed, 27 insertions, 4 deletions
@@ -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" |