summaryrefslogtreecommitdiff
path: root/views.rkt
diff options
context:
space:
mode:
authorMarius Peter <dev@marius-peter.com>2025-11-22 12:32:34 +0100
committerMarius Peter <dev@marius-peter.com>2025-11-22 12:32:34 +0100
commit5408b445776234c35fb61374d2d3abc6b83b2904 (patch)
tree0d8f25f82fb2c5b5223219bd73c9bafd29d68d25 /views.rkt
parent6d22ffec76b5fef772173690874bfb1d22ef2a81 (diff)
Add fertilizer product creation logic.
Diffstat (limited to 'views.rkt')
-rw-r--r--views.rkt31
1 files changed, 27 insertions, 4 deletions
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"
Copyright 2019--2026 Marius PETER