summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Peter <dev@marius-peter.com>2025-11-01 19:02:22 +0100
committerMarius Peter <dev@marius-peter.com>2025-11-01 19:02:22 +0100
commitb310f6e261e623237f0379c954df040cf4e57a4c (patch)
treeb6e01cf56f954705a5d02ade4d902263a26570de
parent56985d215b2d3665937d5675bd3f52df3ee15109 (diff)
Apply minor fixes.
-rw-r--r--handlers.rkt6
-rw-r--r--models/fertilizer-product.rkt7
-rw-r--r--models/nutrient-measurement.rkt7
-rw-r--r--models/nutrient-target.rkt3
4 files changed, 12 insertions, 11 deletions
diff --git a/handlers.rkt b/handlers.rkt
index aa380aa..0fe131f 100644
--- a/handlers.rkt
+++ b/handlers.rkt
@@ -7,7 +7,6 @@
web-server/formlets
"views.rkt"
"formlets.rkt"
- "models/nutrient.rkt"
"models/nutrient-measurement.rkt"
"models/nutrient-target.rkt"
"models/crop-requirement.rkt")
@@ -62,7 +61,7 @@
(formlet-process (targets-formlet) req))
(define (average-nutrient-values mix)
- (define totals
+ (define average-values
(for/fold ([acc (hash)]) ([pair (in-list mix)])
(define crop-requirement (car pair))
(define percentage (/ (cdr pair) 100))
@@ -73,11 +72,10 @@
(hash-update acc n
(λ (old) (+ old (* v percentage)))
(λ () (* v percentage))))))
- (for/list ([(k v) (in-hash totals)])
+ (for/list ([(k v) (in-hash average-values)])
(cons k v)))
(define target-nutrient-values (average-nutrient-values crop-requirement-mix))
- (pretty-display target-nutrient-values)
(create-nutrient-target! effective-on target-nutrient-values)
(redirect-to "/"))
diff --git a/models/fertilizer-product.rkt b/models/fertilizer-product.rkt
index abaf77a..bd6bba9 100644
--- a/models/fertilizer-product.rkt
+++ b/models/fertilizer-product.rkt
@@ -46,7 +46,10 @@
[else
(insert #:into fertilizer_products
#:set [canonical_name ,canonical-name])]))
- (define fp-id (fertilizer-product-id (get-fertilizer-product #:canonical-name canonical-name)))
+ (define fp-id (query-value (current-conn)
+ (select id
+ #:from fertilizer_products
+ #:where (= canonical_name ,canonical-name))))
(query-exec (current-conn)
(insert #:into nutrient_value_sets
#:set [fertilizer_product_id ,fp-id]))
@@ -87,7 +90,7 @@
n.id n.canonical_name n.formula
nv.value_ppm
#:from (TableExpr:AST ,joined)
- #:order-by canonical_name #:asc))
+ #:order-by fp.canonical_name #:asc))
(define rows (query-rows (current-conn) query))
(define by-id
(for/fold ([h (hash)]) ([row (in-list rows)])
diff --git a/models/nutrient-measurement.rkt b/models/nutrient-measurement.rkt
index 23ee9e3..d3631de 100644
--- a/models/nutrient-measurement.rkt
+++ b/models/nutrient-measurement.rkt
@@ -21,7 +21,7 @@
[get-nutrient-measurement-values (-> nutrient-measurement?
(listof (cons/c nutrient? number?)))]
[get-nutrient-measurement-value (-> nutrient-measurement? nutrient? number?)]
- [get-latest-nutrient-measurement-value (-> nutrient? number?)]
+ [get-latest-nutrient-measurement-value (-> nutrient? (or/c number? #f))]
[delete-nutrient-measurement! (-> nutrient-measurement? void?)]))
(require racket/contract
@@ -124,7 +124,7 @@
(cond
[(null? rows) #f]
[else
- ;; Fold all nutrient rows belonging to the single measurement into one struct
+ ;; Fold all nutrient value rows belonging to the single nutrient measurement into one struct
(define the-id #f)
(define A #f)
(for ([row (in-list rows)])
@@ -134,7 +134,8 @@
(set! A (if A
(acc (acc-measured-on A)
(cons nv-pair (acc-pairs A)))
- (acc measured-on (list nv-pair)))))
+ (acc measured-on
+ (list nv-pair)))))
(and A
(nutrient-measurement the-id
(acc-measured-on A)
diff --git a/models/nutrient-target.rkt b/models/nutrient-target.rkt
index 7ae9003..8611a40 100644
--- a/models/nutrient-target.rkt
+++ b/models/nutrient-target.rkt
@@ -20,7 +20,6 @@
(or/c nutrient-target? #f))]
[get-nutrient-target-values (-> nutrient-target? (listof (cons/c nutrient? number?)))]
[get-nutrient-target-value (-> nutrient-target? nutrient? number?)]
- ;; The "latest" value is false before the first target is created.
[get-latest-nutrient-target-value (-> nutrient? (or/c number? #f))]
[delete-nutrient-target! (-> nutrient-target? void?)]))
@@ -160,7 +159,7 @@
(select value_ppm
#:from (TableExpr:AST ,joined)
#:where (= nv.nutrient_id ,(nutrient-id nutrient))
- #:order-by nm.effective_on #:desc
+ #:order-by nt.effective_on #:desc
#:limit 1)))
Copyright 2019--2025 Marius PETER