Fix model modules.

Commit
68d6f58c87b54a048fda2bd50c2fdb22ee4abdda
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
Changed files
models/crop-requirement.rkt
index 765f3fe3..bc02fb5c 100644..100644
@@ -15,7 +15,7 @@
15 15 [get-crop-requirement-value (-> crop-requirement-or-id/c nutrient? maybe-nutrient-value?)]
16 16 [delete-crop-requirement! (-> crop-requirement-or-id/c void?)]
17 17 [average-crop-requirement-nutrient-values
18 Removed: (-> (listof (cons/c crop-requirement? (between/c 0 100))) nutrient-value-hash/c)]))
18 Added: (-> (hash/c crop-requirement? (between/c 0 100)) nutrient-value-hash/c)]))
19 19
20 20 (require racket/contract
21 21 db
@@ -150,8 +150,7 @@
150 150 ;; Helpers
151 151
152 152 (define (average-crop-requirement-nutrient-values mix)
153 Removed: (for/fold ([acc (hash)]) ([pair (in-list mix)])
154 Removed: (match-define (cons crop-requirement percentage) pair)
153 Added: (for/fold ([acc (hash)]) ([(crop-requirement percentage) (in-hash mix)])
155 154 (define weight (/ percentage 100))
156 155 (for/fold ([acc acc])
157 156 ([(nutrient value) (in-hash (crop-requirement-nutrient-values crop-requirement))])
@@ -231,7 +230,7 @@
231 230 (define cr1 (get-crop-requirement #:profile requirement-profile))
232 231 (define cr2 (create-crop-requirement! "Lettuce" (hash nitrogen 100 phosphorus 30)))
233 232
234 Removed: (define mix (list (cons cr1 60) (cons cr2 40)))
233 Added: (define mix (hash cr1 60 cr2 40))
235 234 (define avg (average-crop-requirement-nutrient-values mix))
236 235
237 236 ;; 150 * 0.6 + 100 * 0.4 = 90 + 40 = 130
models/crop-rotation.rkt
index 1033b8eb..37c242f3 100644..100644
@@ -59,6 +59,7 @@
59 59 (define (residuals->requirement-proportion-hash residuals)
60 60 (for/hash ([r (in-list residuals)])
61 61 (match-define (vector requirement-id proportion) r)
62 Added: ;; TODO: Fix this N+1 query problem.
62 63 (values (get-crop-requirement #:id requirement-id) proportion)))
63 64
64 65 (define (grouped-row->crop-rotation grouped-row)
models/fertilizer-product.rkt
index 94278441..7c1ca542 100644..100644
@@ -3,7 +3,7 @@
3 3 (provide fertilizer-product
4 4 fertilizer-product?
5 5 fertilizer-product-id
6 Removed: (rename-out [fertilizer-product-canonical-name fertilizer-name]
6 Added: (rename-out [fertilizer-product-canonical-name fertilizer-product-name]
7 7 [fertilizer-product-nutrient-values fertilizer-product-values]
8 8 [fertilizer-product-brand-name fertilizer-brand-name])
9 9 (contract-out