diff options
| author | Marius Peter <dev@marius-peter.com> | 2025-11-30 11:58:25 +0100 |
|---|---|---|
| committer | Marius Peter <dev@marius-peter.com> | 2025-11-30 11:58:25 +0100 |
| commit | 1a8775dfe5786e71e7486e0d26d7dda627db2335 (patch) | |
| tree | 40b3b294f8ac4c02b5c7bc45746ef787e1bde102 | |
| parent | 355bbfd898a8b61797b3a077f15c5f97ab7ebb04 (diff) | |
Refactor 'measured-on' to 'measurement-date'.
| -rw-r--r-- | db/migrations.rkt | 4 | ||||
| -rw-r--r-- | db/seed.rkt | 4 | ||||
| -rw-r--r-- | formlets.rkt | 6 | ||||
| -rw-r--r-- | handlers.rkt | 4 | ||||
| -rw-r--r-- | models/nutrient-measurement.rkt | 58 |
5 files changed, 38 insertions, 38 deletions
diff --git a/db/migrations.rkt b/db/migrations.rkt index d07b130..a312623 100644 --- a/db/migrations.rkt +++ b/db/migrations.rkt @@ -111,9 +111,9 @@ (list (create-table #:if-not-exists nutrient_measurements #:columns [id integer #:not-null] ;; ISO8601 date - [measured_on text #:not-null] + [measurement_date text #:not-null] #:constraints (primary-key id) - (unique measured_on)))) + (unique measurement_date)))) (define-migration "create table nutrient_targets" (list (create-table #:if-not-exists nutrient_targets diff --git a/db/seed.rkt b/db/seed.rkt index 7530651..25d7ee3 100644 --- a/db/seed.rkt +++ b/db/seed.rkt @@ -51,14 +51,14 @@ (define header (next-row)) (define (row->seed! row) (define row-alist (map cons header row)) - (define measured-on (cdr (first row-alist))) + (define measurement-date (cdr (first row-alist))) (define nutrient-values (for/hash ([nm (in-list (cdr row-alist))]) (define formula (car nm)) (define n (get-nutrient #:formula formula)) (define v (string->number (cdr nm))) (values n v))) - (create-nutrient-measurement! measured-on nutrient-values)) + (create-nutrient-measurement! measurement-date nutrient-values)) (with-tx (csv-for-each row->seed! next-row))) (define (seed-crops!) diff --git a/formlets.rkt b/formlets.rkt index bc31519..3f771f1 100644 --- a/formlets.rkt +++ b/formlets.rkt @@ -11,16 +11,16 @@ "models/crop-requirement.rkt") (define (measurements-formlet) - (formlet* (#%# `(div ((class "mb-3")) (h5 "Date du relevé") ,{=>* date-formlet measured-on*}) + (formlet* (#%# `(div ((class "mb-3")) (h5 "Date du relevé") ,{=>* date-formlet measurement-date*}) `(div ((class "mb-3")) (h5 "Valeurs du relevé") ,@(for/list ([nutrient (get-nutrients)]) {=>* (nutrient-value-formlet nutrient) nutrient-values*})) {=>* (submit "Enregistrer le relevé" #:attributes '((class "btn btn-primary"))) _}) - (let ([measured-on (first measured-on*)] + (let ([measurement-date (first measurement-date*)] [nutrient-values (for/hash ([nv nutrient-values*]) (values (car nv) (cdr nv)))]) - (values measured-on nutrient-values)))) + (values measurement-date nutrient-values)))) (define (targets-formlet) (formlet* (#%# `(div ((class "mb-3")) (h5 "Date ciblée") ,{=>* date-formlet effective-on*}) diff --git a/handlers.rkt b/handlers.rkt index 62c575b..b33318c 100644 --- a/handlers.rkt +++ b/handlers.rkt @@ -111,8 +111,8 @@ (render-page (new-measurement-page))) (define (create-measurement req) - (define-values (measured-on nutrient-values) (formlet-process (measurements-formlet) req)) - (create-nutrient-measurement! measured-on nutrient-values) + (define-values (measurement-date nutrient-values) (formlet-process (measurements-formlet) req)) + (create-nutrient-measurement! measurement-date nutrient-values) (redirect-to "/ferti/measurements")) (define (show-measurement _ id) diff --git a/models/nutrient-measurement.rkt b/models/nutrient-measurement.rkt index ae0e2ef..1f8bd7b 100644 --- a/models/nutrient-measurement.rkt +++ b/models/nutrient-measurement.rkt @@ -3,14 +3,14 @@ (provide nutrient-measurement nutrient-measurement? nutrient-measurement-id - (rename-out [nutrient-measurement-measured-on nutrient-measurement-date] + (rename-out [nutrient-measurement-measurement-date nutrient-measurement-date] [nutrient-measurement-nutrient-values nutrient-measurement-values]) (contract-out [create-nutrient-measurement! (-> string? nutrient-value-hash/c nutrient-measurement?)] [get-nutrient-measurements (-> (listof nutrient-measurement?))] [get-nutrient-measurement (->* () - (#:id exact-nonnegative-integer? #:measured-on string?) + (#:id exact-nonnegative-integer? #:date string?) (or/c nutrient-measurement? #f))] [get-nutrient-measurement-values (-> nutrient-measurement-or-id/c nutrient-value-hash/c)] [get-nutrient-measurement-value @@ -25,14 +25,14 @@ "../db/conn.rkt" "nutrient.rkt") -(struct nutrient-measurement (id measured-on nutrient-values) +(struct nutrient-measurement (id measurement-date nutrient-values) #:transparent #:property prop:custom-write (λ (v out _) (fprintf out "Measurement #~a on ~a\n" (nutrient-measurement-id v) - (nutrient-measurement-measured-on v)) + (nutrient-measurement-measurement-date v)) (for ([(n v) (in-hash (nutrient-measurement-nutrient-values v))]) (fprintf out "~a ~a\n" @@ -50,14 +50,14 @@ ;; CREATE -(define (create-nutrient-measurement! measured-on nutrient-values) +(define (create-nutrient-measurement! measurement-date nutrient-values) (or - (get-nutrient-measurement #:measured-on measured-on) + (get-nutrient-measurement #:date measurement-date) (with-tx - (query-exec (current-conn) (insert #:into nutrient_measurements #:set [measured_on ,measured-on])) + (query-exec (current-conn) (insert #:into nutrient_measurements #:set [measurement_date ,measurement-date])) (define nm-id (query-value (current-conn) - (select id #:from nutrient_measurements #:where (= measured_on ,measured-on)))) + (select id #:from nutrient_measurements #:where (= measurement_date ,measurement-date)))) (query-exec (current-conn) (insert #:into nutrient_value_sets #:set [nutrient_measurement_id ,nm-id])) (define nvs-id @@ -69,7 +69,7 @@ #:set [value_set_id ,nvs-id] [nutrient_id ,(nutrient-id n)] [value_ppm ,v]))) - (get-nutrient-measurement #:measured-on measured-on)))) + (get-nutrient-measurement #:date measurement-date)))) ;; READ @@ -83,38 +83,38 @@ #:on (= n.id nv.nutrient_id)))) (define (grouped-row->nutrient-measurement row) - (match-define (vector nm-id measured-on residuals) row) - (nutrient-measurement nm-id measured-on (residuals->nutrient-value-hash residuals))) + (match-define (vector nm-id measurement-date residuals) row) + (nutrient-measurement nm-id measurement-date (residuals->nutrient-value-hash residuals))) (define (get-nutrient-measurements) (define grouped-rows (query-rows (current-conn) (select nm.id - nm.measured_on + nm.measurement_date n.id n.canonical_name n.french_name n.formula nv.value_ppm #:from (TableExpr:AST ,joined) - #:order-by nm.measured_on + #:order-by nm.measurement_date #:desc) #:group '#(0 1))) (for/list ([row grouped-rows]) (grouped-row->nutrient-measurement row))) -(define (get-nutrient-measurement #:id [nm-id #f] #:measured-on [measured-on #f]) +(define (get-nutrient-measurement #:id [nm-id #f] #:date [measurement-date #f]) (define where (cond - [(and nm-id measured-on) - (scalar-expr-qq (and (= nm.id ,nm-id) (= nm.measured_on ,measured-on)))] + [(and nm-id measurement-date) + (scalar-expr-qq (and (= nm.id ,nm-id) (= nm.measurement_date ,measurement-date)))] [nm-id (scalar-expr-qq (= nm.id ,nm-id))] - [measured-on (scalar-expr-qq (= nm.measured_on ,measured-on))] - [else (error 'get-nutrient-measurement "either #:id or #:measured-on must be provided")])) + [measurement-date (scalar-expr-qq (= nm.measurement_date ,measurement-date))] + [else (error 'get-nutrient-measurement "either #:id or #:date must be provided")])) (define grouped-rows (query-rows (current-conn) (select nm.id - nm.measured_on + nm.measurement_date n.id n.canonical_name n.french_name @@ -122,7 +122,7 @@ nv.value_ppm #:from (TableExpr:AST ,joined) #:where (ScalarExpr:AST ,where) - #:order-by nm.measured_on + #:order-by nm.measurement_date #:desc) #:group '#(0 1))) (match grouped-rows @@ -154,7 +154,7 @@ (select value_ppm #:from (TableExpr:AST ,joined) #:where (= nv.nutrient_id ,(nutrient-id nutrient)) - #:order-by nm.measured_on + #:order-by nm.measurement_date #:desc #:limit 1))) @@ -165,16 +165,16 @@ n.canonical_name n.french_name n.formula - nm.measured_on + nm.measurement_date nv.value_ppm #:from (TableExpr:AST ,joined) - #:order-by nm.measured_on + #:order-by nm.measurement_date #: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)) + ;; residual-rows is a non-empty list of vectors: #(measurement_date value_ppm) + (match-define (vector _ value-ppm) (first residual-rows)) (values (nutrient n-id n-canonical-name n-french-name n-formula) value-ppm))) ;; UPDATE @@ -210,15 +210,15 @@ (define phosphorus (get-nutrient #:name "Phosphorus")) (create-nutrient-measurement! measurement-date (hash nitrogen 12.3 phosphorus 4.5)) (check-equal? (length (get-nutrient-measurements)) 1) - (define nm (get-nutrient-measurement #:measured-on measurement-date)) + (define nm (get-nutrient-measurement #:date measurement-date)) (check-true (nutrient-measurement? nm)) - (check-equal? (nutrient-measurement-measured-on nm) measurement-date)) + (check-equal? (nutrient-measurement-measurement-date nm) measurement-date)) (test-case "Check all measurement values" (define nitrogen (get-nutrient #:name "Nitrogen")) (define phosphorus (get-nutrient #:name "Phosphorus")) - (define nm (get-nutrient-measurement #:measured-on measurement-date)) + (define nm (get-nutrient-measurement #:date measurement-date)) (check-equal? (get-nutrient-measurement-value nm nitrogen) 12.3) (check-equal? (get-nutrient-measurement-value nm phosphorus) 4.5) @@ -241,7 +241,7 @@ (check-equal? (get-latest-nutrient-measurement-value phosphorus) 8.9)) (test-case "Delete measurement and cascade to measurement values" - (define nm (get-nutrient-measurement #:measured-on measurement-date)) + (define nm (get-nutrient-measurement #:date measurement-date)) (delete-nutrient-measurement! nm) (check-false (get-nutrient-measurement #:id (nutrient-measurement-id nm))) (check-equal? (length (get-nutrient-measurements)) |