summaryrefslogtreecommitdiff
path: root/models/nutrient-measurement.rkt
diff options
context:
space:
mode:
authorMarius Peter <dev@marius-peter.com>2025-11-24 15:44:58 +0100
committerMarius Peter <dev@marius-peter.com>2025-11-24 15:44:58 +0100
commitb4b113796455b85389df1c826f6e7ec93e804001 (patch)
treeda3f143888cf883dd1f109962c84cf58a74e523f /models/nutrient-measurement.rkt
parent507844a30cbbdaf166a2fd56c9a6e4985c7d7c97 (diff)
Add French name to nutrient model.
Diffstat (limited to 'models/nutrient-measurement.rkt')
-rw-r--r--models/nutrient-measurement.rkt35
1 files changed, 21 insertions, 14 deletions
diff --git a/models/nutrient-measurement.rkt b/models/nutrient-measurement.rkt
index 3e8213d..5b5f93d 100644
--- a/models/nutrient-measurement.rkt
+++ b/models/nutrient-measurement.rkt
@@ -35,7 +35,7 @@
(for ([(n v) (in-hash (nutrient-measurement-nutrient-values v))])
(fprintf out
"~a ~a\n"
- (~a (nutrient-name n) #:min-width 14)
+ (~a (nutrient-canonical-name n) #:min-width 14)
(~a v #:max-width 6 #:align 'right)))))
;; CREATE
@@ -83,6 +83,7 @@
nm.measured_on
n.id
n.canonical_name
+ n.french_name
n.formula
nv.value_ppm
#:from (TableExpr:AST ,joined)
@@ -106,6 +107,7 @@
nm.measured_on
n.id
n.canonical_name
+ n.french_name
n.formula
nv.value_ppm
#:from (TableExpr:AST ,joined)
@@ -119,15 +121,16 @@
[many (error 'get-nutrient-measurement "expected 1 nutrient measurement, got ~a" (length many))]))
(define (get-nutrient-measurement-values nutrient-measurement)
- (for/hash ([(nutrient-id name formula value_ppm)
+ (for/hash ([(nutrient-id canonical-name french-name formula value_ppm)
(in-query (current-conn)
(select n.id
n.canonical_name
+ n.french_name
n.formula
nv.value_ppm
#:from (TableExpr:AST ,joined)
#:where (= nm.id ,(nutrient-measurement-id nutrient-measurement))))])
- (values (nutrient nutrient-id name formula) value_ppm)))
+ (values (nutrient nutrient-id canonical-name french-name formula) value_ppm)))
(define (get-nutrient-measurement-value nutrient-measurement nutrient)
(query-maybe-value (current-conn)
@@ -146,19 +149,23 @@
#:limit 1)))
(define (get-latest-nutrient-measurement-hash)
- (for/hash ([(n-id n-name n-formula residual-rows) (in-query (current-conn)
- (select n.id
- n.canonical_name
- n.formula
- nm.measured_on
- nv.value_ppm
- #:from (TableExpr:AST ,joined)
- #:order-by nm.measured_on
- #:desc)
- #:group '(#(0 1 2)))])
+ (define grouped-rows
+ (query-rows (current-conn)
+ (select n.id
+ n.canonical_name
+ n.french_name
+ n.formula
+ nm.measured_on
+ nv.value_ppm
+ #:from (TableExpr:AST ,joined)
+ #:order-by nm.measured_on
+ #:desc)
+ #:group '(#(0 1 2 3))))
+ (for/hash ([row grouped-rows])
+ (match-define (vector n-id n-canonical-name n-french-name n-formula residual-rows) row)
;; residual-rows is a non-empty list of vectors: #(measured_on value_ppm)
(match-define (vector _measured-on value-ppm) (first residual-rows))
- (values (nutrient n-id n-name n-formula) value-ppm)))
+ (values (nutrient n-id n-canonical-name n-french-name n-formula) value-ppm)))
;; UPDATE
Copyright 2019--2026 Marius PETER