summaryrefslogtreecommitdiff
path: root/models
diff options
context:
space:
mode:
Diffstat (limited to 'models')
-rw-r--r--models/fertilizer-product.rkt7
-rw-r--r--models/nutrient-measurement.rkt7
-rw-r--r--models/nutrient-target.rkt3
3 files changed, 10 insertions, 7 deletions
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