Refactor 'measured-on' to 'measurement-date'.

Commit
1a8775dfe5786e71e7486e0d26d7dda627db2335
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
Changed files
db/migrations.rkt
index d07b130f..a3126239 100644..100644
@@ -111,9 +111,9 @@
111 111 (list (create-table #:if-not-exists nutrient_measurements
112 112 #:columns [id integer #:not-null]
113 113 ;; ISO8601 date
114 Removed: [measured_on text #:not-null]
114 Added: [measurement_date text #:not-null]
115 115 #:constraints (primary-key id)
116 Removed: (unique measured_on))))
116 Added: (unique measurement_date))))
117 117
118 118 (define-migration "create table nutrient_targets"
119 119 (list (create-table #:if-not-exists nutrient_targets
db/seed.rkt
index 75306513..25d7ee32 100644..100644
@@ -51,14 +51,14 @@
51 51 (define header (next-row))
52 52 (define (row->seed! row)
53 53 (define row-alist (map cons header row))
54 Removed: (define measured-on (cdr (first row-alist)))
54 Added: (define measurement-date (cdr (first row-alist)))
55 55 (define nutrient-values
56 56 (for/hash ([nm (in-list (cdr row-alist))])
57 57 (define formula (car nm))
58 58 (define n (get-nutrient #:formula formula))
59 59 (define v (string->number (cdr nm)))
60 60 (values n v)))
61 Removed: (create-nutrient-measurement! measured-on nutrient-values))
61 Added: (create-nutrient-measurement! measurement-date nutrient-values))
62 62 (with-tx (csv-for-each row->seed! next-row)))
63 63
64 64 (define (seed-crops!)
formlets.rkt
index bc315192..3f771f11 100644..100644
@@ -11,16 +11,16 @@
11 11 "models/crop-requirement.rkt")
12 12
13 13 (define (measurements-formlet)
14 Removed: (formlet* (#%# `(div ((class "mb-3")) (h5 "Date du relevé") ,{=>* date-formlet measured-on*})
14 Added: (formlet* (#%# `(div ((class "mb-3")) (h5 "Date du relevé") ,{=>* date-formlet measurement-date*})
15 15 `(div ((class "mb-3"))
16 16 (h5 "Valeurs du relevé")
17 17 ,@(for/list ([nutrient (get-nutrients)])
18 18 {=>* (nutrient-value-formlet nutrient) nutrient-values*}))
19 19 {=>* (submit "Enregistrer le relevé" #:attributes '((class "btn btn-primary"))) _})
20 Removed: (let ([measured-on (first measured-on*)]
20 Added: (let ([measurement-date (first measurement-date*)]
21 21 [nutrient-values (for/hash ([nv nutrient-values*])
22 22 (values (car nv) (cdr nv)))])
23 Removed: (values measured-on nutrient-values))))
23 Added: (values measurement-date nutrient-values))))
24 24
25 25 (define (targets-formlet)
26 26 (formlet* (#%# `(div ((class "mb-3")) (h5 "Date ciblée") ,{=>* date-formlet effective-on*})
handlers.rkt
index 62c575bf..b33318c6 100644..100644
@@ -111,8 +111,8 @@
111 111 (render-page (new-measurement-page)))
112 112
113 113 (define (create-measurement req)
114 Removed: (define-values (measured-on nutrient-values) (formlet-process (measurements-formlet) req))
115 Removed: (create-nutrient-measurement! measured-on nutrient-values)
114 Added: (define-values (measurement-date nutrient-values) (formlet-process (measurements-formlet) req))
115 Added: (create-nutrient-measurement! measurement-date nutrient-values)
116 116 (redirect-to "/ferti/measurements"))
117 117
118 118 (define (show-measurement _ id)
models/nutrient-measurement.rkt
index ae0e2efe..1f8bd7b4 100644..100644
@@ -3,14 +3,14 @@
3 3 (provide nutrient-measurement
4 4 nutrient-measurement?
5 5 nutrient-measurement-id
6 Removed: (rename-out [nutrient-measurement-measured-on nutrient-measurement-date]
6 Added: (rename-out [nutrient-measurement-measurement-date nutrient-measurement-date]
7 7 [nutrient-measurement-nutrient-values nutrient-measurement-values])
8 8 (contract-out
9 9 [create-nutrient-measurement! (-> string? nutrient-value-hash/c nutrient-measurement?)]
10 10 [get-nutrient-measurements (-> (listof nutrient-measurement?))]
11 11 [get-nutrient-measurement
12 12 (->* ()
13 Removed: (#:id exact-nonnegative-integer? #:measured-on string?)
13 Added: (#:id exact-nonnegative-integer? #:date string?)
14 14 (or/c nutrient-measurement? #f))]
15 15 [get-nutrient-measurement-values (-> nutrient-measurement-or-id/c nutrient-value-hash/c)]
16 16 [get-nutrient-measurement-value
@@ -25,14 +25,14 @@
25 25 "../db/conn.rkt"
26 26 "nutrient.rkt")
27 27
28 Removed: (struct nutrient-measurement (id measured-on nutrient-values)
28 Added: (struct nutrient-measurement (id measurement-date nutrient-values)
29 29 #:transparent
30 30 #:property prop:custom-write
31 31 (λ (v out _)
32 32 (fprintf out
33 33 "Measurement #~a on ~a\n"
34 34 (nutrient-measurement-id v)
35 Removed: (nutrient-measurement-measured-on v))
35 Added: (nutrient-measurement-measurement-date v))
36 36 (for ([(n v) (in-hash (nutrient-measurement-nutrient-values v))])
37 37 (fprintf out
38 38 "~a ~a\n"
@@ -50,14 +50,14 @@
50 50
51 51 ;; CREATE
52 52
53 Removed: (define (create-nutrient-measurement! measured-on nutrient-values)
53 Added: (define (create-nutrient-measurement! measurement-date nutrient-values)
54 54 (or
55 Removed: (get-nutrient-measurement #:measured-on measured-on)
55 Added: (get-nutrient-measurement #:date measurement-date)
56 56 (with-tx
57 Removed: (query-exec (current-conn) (insert #:into nutrient_measurements #:set [measured_on ,measured-on]))
57 Added: (query-exec (current-conn) (insert #:into nutrient_measurements #:set [measurement_date ,measurement-date]))
58 58 (define nm-id
59 59 (query-value (current-conn)
60 Removed: (select id #:from nutrient_measurements #:where (= measured_on ,measured-on))))
60 Added: (select id #:from nutrient_measurements #:where (= measurement_date ,measurement-date))))
61 61 (query-exec (current-conn)
62 62 (insert #:into nutrient_value_sets #:set [nutrient_measurement_id ,nm-id]))
63 63 (define nvs-id
@@ -69,7 +69,7 @@
69 69 #:set [value_set_id ,nvs-id]
70 70 [nutrient_id ,(nutrient-id n)]
71 71 [value_ppm ,v])))
72 Removed: (get-nutrient-measurement #:measured-on measured-on))))
72 Added: (get-nutrient-measurement #:date measurement-date))))
73 73
74 74 ;; READ
75 75
@@ -83,38 +83,38 @@
83 83 #:on (= n.id nv.nutrient_id))))
84 84
85 85 (define (grouped-row->nutrient-measurement row)
86 Removed: (match-define (vector nm-id measured-on residuals) row)
87 Removed: (nutrient-measurement nm-id measured-on (residuals->nutrient-value-hash residuals)))
86 Added: (match-define (vector nm-id measurement-date residuals) row)
87 Added: (nutrient-measurement nm-id measurement-date (residuals->nutrient-value-hash residuals)))
88 88
89 89 (define (get-nutrient-measurements)
90 90 (define grouped-rows
91 91 (query-rows (current-conn)
92 92 (select nm.id
93 Removed: nm.measured_on
93 Added: nm.measurement_date
94 94 n.id
95 95 n.canonical_name
96 96 n.french_name
97 97 n.formula
98 98 nv.value_ppm
99 99 #:from (TableExpr:AST ,joined)
100 Removed: #:order-by nm.measured_on
100 Added: #:order-by nm.measurement_date
101 101 #:desc)
102 102 #:group '#(0 1)))
103 103 (for/list ([row grouped-rows])
104 104 (grouped-row->nutrient-measurement row)))
105 105
106 Removed: (define (get-nutrient-measurement #:id [nm-id #f] #:measured-on [measured-on #f])
106 Added: (define (get-nutrient-measurement #:id [nm-id #f] #:date [measurement-date #f])
107 107 (define where
108 108 (cond
109 Removed: [(and nm-id measured-on)
110 Removed: (scalar-expr-qq (and (= nm.id ,nm-id) (= nm.measured_on ,measured-on)))]
109 Added: [(and nm-id measurement-date)
110 Added: (scalar-expr-qq (and (= nm.id ,nm-id) (= nm.measurement_date ,measurement-date)))]
111 111 [nm-id (scalar-expr-qq (= nm.id ,nm-id))]
112 Removed: [measured-on (scalar-expr-qq (= nm.measured_on ,measured-on))]
113 Removed: [else (error 'get-nutrient-measurement "either #:id or #:measured-on must be provided")]))
112 Added: [measurement-date (scalar-expr-qq (= nm.measurement_date ,measurement-date))]
113 Added: [else (error 'get-nutrient-measurement "either #:id or #:date must be provided")]))
114 114 (define grouped-rows
115 115 (query-rows (current-conn)
116 116 (select nm.id
117 Removed: nm.measured_on
117 Added: nm.measurement_date
118 118 n.id
119 119 n.canonical_name
120 120 n.french_name
@@ -122,7 +122,7 @@
122 122 nv.value_ppm
123 123 #:from (TableExpr:AST ,joined)
124 124 #:where (ScalarExpr:AST ,where)
125 Removed: #:order-by nm.measured_on
125 Added: #:order-by nm.measurement_date
126 126 #:desc)
127 127 #:group '#(0 1)))
128 128 (match grouped-rows
@@ -154,7 +154,7 @@
154 154 (select value_ppm
155 155 #:from (TableExpr:AST ,joined)
156 156 #:where (= nv.nutrient_id ,(nutrient-id nutrient))
157 Removed: #:order-by nm.measured_on
157 Added: #:order-by nm.measurement_date
158 158 #:desc
159 159 #:limit 1)))
160 160
@@ -165,16 +165,16 @@
165 165 n.canonical_name
166 166 n.french_name
167 167 n.formula
168 Removed: nm.measured_on
168 Added: nm.measurement_date
169 169 nv.value_ppm
170 170 #:from (TableExpr:AST ,joined)
171 Removed: #:order-by nm.measured_on
171 Added: #:order-by nm.measurement_date
172 172 #:desc)
173 173 #:group '(#(0 1 2 3))))
174 174 (for/hash ([row grouped-rows])
175 175 (match-define (vector n-id n-canonical-name n-french-name n-formula residual-rows) row)
176 Removed: ;; residual-rows is a non-empty list of vectors: #(measured_on value_ppm)
177 Removed: (match-define (vector _measured-on value-ppm) (first residual-rows))
176 Added: ;; residual-rows is a non-empty list of vectors: #(measurement_date value_ppm)
177 Added: (match-define (vector _ value-ppm) (first residual-rows))
178 178 (values (nutrient n-id n-canonical-name n-french-name n-formula) value-ppm)))
179 179
180 180 ;; UPDATE
@@ -210,15 +210,15 @@
210 210 (define phosphorus (get-nutrient #:name "Phosphorus"))
211 211 (create-nutrient-measurement! measurement-date (hash nitrogen 12.3 phosphorus 4.5))
212 212 (check-equal? (length (get-nutrient-measurements)) 1)
213 Removed: (define nm (get-nutrient-measurement #:measured-on measurement-date))
213 Added: (define nm (get-nutrient-measurement #:date measurement-date))
214 214 (check-true (nutrient-measurement? nm))
215 Removed: (check-equal? (nutrient-measurement-measured-on nm) measurement-date))
215 Added: (check-equal? (nutrient-measurement-measurement-date nm) measurement-date))
216 216
217 217 (test-case "Check all measurement values"
218 218 (define nitrogen (get-nutrient #:name "Nitrogen"))
219 219 (define phosphorus (get-nutrient #:name "Phosphorus"))
220 220
221 Removed: (define nm (get-nutrient-measurement #:measured-on measurement-date))
221 Added: (define nm (get-nutrient-measurement #:date measurement-date))
222 222 (check-equal? (get-nutrient-measurement-value nm nitrogen) 12.3)
223 223 (check-equal? (get-nutrient-measurement-value nm phosphorus) 4.5)
224 224
@@ -241,7 +241,7 @@
241 241 (check-equal? (get-latest-nutrient-measurement-value phosphorus) 8.9))
242 242
243 243 (test-case "Delete measurement and cascade to measurement values"
244 Removed: (define nm (get-nutrient-measurement #:measured-on measurement-date))
244 Added: (define nm (get-nutrient-measurement #:date measurement-date))
245 245 (delete-nutrient-measurement! nm)
246 246 (check-false (get-nutrient-measurement #:id (nutrient-measurement-id nm)))
247 247 (check-equal? (length (get-nutrient-measurements))