diff options
| author | Marius Peter <dev@marius-peter.com> | 2025-11-30 15:06:48 +0100 |
|---|---|---|
| committer | Marius Peter <dev@marius-peter.com> | 2025-11-30 15:06:48 +0100 |
| commit | 0411d731cf2018794b4f10154e3af8c875faa99c (patch) | |
| tree | f51bb2e335aa0285bfe5502969fb59d4df26f852 /handlers.rkt | |
| parent | a648653b1745474eef8274d72e633cf7e1d28be2 (diff) | |
Introduce crop rotations.
These will probably replace nutrient targets as the main entry point
for nutrient requirement calculations.
Diffstat (limited to 'handlers.rkt')
| -rw-r--r-- | handlers.rkt | 63 |
1 files changed, 30 insertions, 33 deletions
diff --git a/handlers.rkt b/handlers.rkt index a232e56..6141426 100644 --- a/handlers.rkt +++ b/handlers.rkt @@ -13,6 +13,7 @@ "models/nutrient.rkt" "models/nutrient-measurement.rkt" "models/nutrient-target.rkt" + "models/crop-rotation.rkt" "models/fertilizer-product.rkt" "services/nnls.rkt") @@ -47,31 +48,31 @@ void)) (define-values (fapg-dispatch fapg-url) - (dispatch-rules [("index") #:method "get" index] - ;; Ferti - [("ferti" "index") #:method "get" ferti-index] - [("ferti" "measurements") #:method "get" ferti-measurements] - [("ferti" "targets") #:method "get" ferti-targets] - [("ferti" "recipe") #:method "get" ferti-recipe] - [("ferti" "fertilizers") #:method "get" ferti-fertilizers] - ;; Nutrient measurements - [("ferti" "measurement" "new") #:method "get" new-measurement] - [("ferti" "measurement" "create") #:method "post" create-measurement] - [("ferti" "measurement" (integer-arg)) #:method "get" show-measurement] - [("ferti" "measurement" (integer-arg)) #:method "delete" destroy-measurement] - ;; Nutrient targets - [("ferti" "target" "new") #:method "get" new-target] - [("ferti" "target" "create") #:method "post" create-target] - [("ferti" "target" (integer-arg)) #:method "get" show-target] - [("ferti" "target" (integer-arg)) #:method "delete" destroy-target] - ;; Fertilizer products - [("ferti" "fertilizer" "new") #:method "get" new-fertilizer] - [("ferti" "fertilizer" "create") #:method "post" create-fertilizer] - [("ferti" "fertilizer" (integer-arg)) #:method "get" show-fertilizer] - [("ferti" "fertilizer" "destroy" (integer-arg)) #:method "get" destroy-fertilizer] - ;; Default - [("") #:method "get" index] - [else fallback])) + (dispatch-rules + [("index") #:method "get" index] + ;; Ferti + [("ferti" "index") #:method "get" ferti-index] + [("ferti" "measurements-and-rotations") #:method "get" ferti-measurements-and-rotations] + [("ferti" "recipe") #:method "get" ferti-recipe] + [("ferti" "fertilizers") #:method "get" ferti-fertilizers] + ;; Nutrient measurements + [("ferti" "measurement" "new") #:method "get" new-measurement] + [("ferti" "measurement" "create") #:method "post" create-measurement] + [("ferti" "measurement" (integer-arg)) #:method "get" show-measurement] + [("ferti" "measurement" (integer-arg)) #:method "delete" destroy-measurement] + ;; Nutrient targets + [("ferti" "target" "new") #:method "get" new-target] + [("ferti" "target" "create") #:method "post" create-target] + [("ferti" "target" (integer-arg)) #:method "get" show-target] + [("ferti" "target" (integer-arg)) #:method "delete" destroy-target] + ;; Fertilizer products + [("ferti" "fertilizer" "new") #:method "get" new-fertilizer] + [("ferti" "fertilizer" "create") #:method "post" create-fertilizer] + [("ferti" "fertilizer" (integer-arg)) #:method "get" show-fertilizer] + [("ferti" "fertilizer" "destroy" (integer-arg)) #:method "get" destroy-fertilizer] + ;; Default + [("") #:method "get" index] + [else fallback])) (define (render-page xexpr) (response/xexpr #:preamble #"<!DOCTYPE html>" xexpr)) @@ -87,15 +88,11 @@ (define (ferti-index _) (render-page (ferti-index-page))) -(define (ferti-measurements _) +(define (ferti-measurements-and-rotations _) (define nutrients (get-nutrients)) (define measurements (get-nutrient-measurements)) - (render-page (ferti-measurements-page nutrients measurements))) - -(define (ferti-targets _) - (define latest-measurement-hash (get-latest-nutrient-measurement-hash)) - (define latest-target-hash (get-latest-nutrient-target-hash)) - (render-page (ferti-targets-page latest-measurement-hash latest-target-hash))) + (define rotations (get-crop-rotations)) + (render-page (ferti-measurements-and-rotations-page nutrients measurements rotations))) (define (ferti-recipe _) (define ferti-recipe (find-ferti-recipe)) @@ -113,7 +110,7 @@ (define (create-measurement req) (define-values (measurement-date nutrient-values) (formlet-process (measurements-formlet) req)) (create-nutrient-measurement! measurement-date nutrient-values) - (redirect-to "/ferti/measurements")) + (redirect-to "/ferti/measurements-and-rotations")) (define (show-measurement _ id) (define nm (get-nutrient-measurement #:id id)) |