diff options
Diffstat (limited to 'models')
| -rw-r--r-- | models/fertilizer-product.rkt | 7 | ||||
| -rw-r--r-- | models/nutrient-measurement.rkt | 7 | ||||
| -rw-r--r-- | models/nutrient-target.rkt | 3 | 
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)))  |