diff options
| author | Marius Peter <dev@marius-peter.com> | 2025-11-10 19:31:54 +0100 |
|---|---|---|
| committer | Marius Peter <dev@marius-peter.com> | 2025-11-10 19:31:54 +0100 |
| commit | b75fd3a2c01f943b099ef5809987c4a72a3a26df (patch) | |
| tree | d14188ff73c1fa7aef267f96b5ae129da919850c /views.rkt | |
| parent | 53a35b1eb0bc90b59b598e87f30375511089d771 (diff) | |
Add ferti recipe table to the index page.
Diffstat (limited to 'views.rkt')
| -rw-r--r-- | views.rkt | 64 |
1 files changed, 47 insertions, 17 deletions
@@ -9,7 +9,8 @@ "formlets.rkt" "models/nutrient.rkt" "models/nutrient-measurement.rkt" - "models/nutrient-target.rkt") + "models/nutrient-target.rkt" + "models/fertilizer-product.rkt") (define (page-template title body-xexpr) @@ -67,15 +68,37 @@ ;; Page helpers (define (round n number) - (~r number #:precision n)) + (~r number #:precision `(= ,n))) ;; Pages -(define (index-page measurements) +(define (index-page measurements ferti-recipe) (page-template "Ferti" `((h1 ([class "display-1 mb-3"]) "Ferti") + + + ;;;;;;;; + ;; Ferti + ;;;;;;;; + + (h2 () "Recette") + (table ([class "table"]) + (tr (th () "Produit Fertilisant") + (th ([class "text-end"]) "Quantité")) + ,@(for/list ([fertilizer-amount ferti-recipe] + #:when (not (zero? (cdr fertilizer-amount)))) + (match-define (cons fertilizer amount) fertilizer-amount) + `(tr (td () ,(fertilizer-name fertilizer)) + (td ([class "text-end font-monospace"]) ,(round 2 amount))))) + + + ;;;;;;;;; + ;; Cibles + ;;;;;;;;; + + (h2 () "Dernière Cible") (a ([class "btn btn-primary mb-3"] [href "/target/new"]) "Créer une cible") (table ([class "table"]) (tr (th "Nutriment") @@ -85,22 +108,29 @@ ,@(for/list ([n (get-nutrients)]) (define latest-target (get-latest-nutrient-target-value n)) (define latest-measurement (get-latest-nutrient-measurement-value n)) - (define delta-percentage (cond - [(false? latest-target) - #f] - [(zero? latest-target) - -100] - [(zero? latest-measurement) - 100] - [(number? latest-target) - (* 100 - (/ (- latest-target latest-measurement) - latest-measurement))])) + (define delta-percentage + (cond + [(false? latest-target) + #f] + [(zero? latest-target) + -100] + [(zero? latest-measurement) + 100] + [(number? latest-target) + (* 100 + (/ (- latest-target latest-measurement) + latest-measurement))])) `(tr (td ,(nutrient-name n)) - (td ([class "text-end"]) ,(if latest-measurement (round 2 latest-measurement) "—")) - (td ([class "text-end"]) ,(if latest-target (round 2 latest-target) "—")) - (td ([class "text-end"]) ,(if delta-percentage (round 1 delta-percentage) "—"))))) + (td ([class "text-end font-monospace"]) ,(if latest-measurement (round 2 latest-measurement) "—")) + (td ([class "text-end font-monospace"]) ,(if latest-target (round 2 latest-target) "—")) + (td ([class "text-end font-monospace"]) ,(if delta-percentage (round 1 delta-percentage) "—"))))) + + + ;;;;;;;;;; + ;; Relevés + ;;;;;;;;;; + (h2 () "Relevés") (a ([class "btn btn-primary mb-3"] [href "/measurement/new"]) "Ajouter un relevé") (table ([class "table table-striped"]) (tr (th "Date") |