summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Peter <dev@marius-peter.com>2025-12-03 21:06:40 +0100
committerMarius Peter <dev@marius-peter.com>2025-12-03 21:06:40 +0100
commit64401db5f32eeee23898513617cfcf3b379c38cd (patch)
tree224a5e4dac30cb952995d3443f90eb0cd0846b6e
parent479c26fa79127eab9067120682b2047ced4aa9a3 (diff)
Update handlers to reflect model evolution.
-rw-r--r--handlers.rkt51
1 files changed, 27 insertions, 24 deletions
diff --git a/handlers.rkt b/handlers.rkt
index 001d5a1..bd8387a 100644
--- a/handlers.rkt
+++ b/handlers.rkt
@@ -12,7 +12,6 @@
"models/user.rkt"
"models/nutrient.rkt"
"models/nutrient-measurement.rkt"
- "models/nutrient-target.rkt"
"models/crop-rotation.rkt"
"models/fertilizer-product.rkt"
"services/nnls.rkt")
@@ -26,18 +25,19 @@
;; Ferti
[("ferti" "index") #:method "get" ferti-index]
[("ferti" "measurements-and-rotations") #:method "get" ferti-measurements-and-rotations]
- [("ferti" "recipe") #:method "get" ferti-recipe]
+ [("ferti" "recipe" (string-arg)) #: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]
+ [("ferti" "measurement" "destroy" (integer-arg)) #:method "get" 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]
+ [("ferti" "rotation" "new") #:method "get" new-rotation]
+ [("ferti" "rotation" "new" (string-arg)) #:method "get" new-rotation-for-date]
+ [("ferti" "rotation" "create") #:method "post" create-rotation]
+ [("ferti" "rotation" (integer-arg)) #:method "get" show-rotation]
+ [("ferti" "rotation" "destroy" (integer-arg)) #:method "get" destroy-rotation]
;; Fertilizer products
[("ferti" "fertilizer" "new") #:method "get" new-fertilizer]
[("ferti" "fertilizer" "create") #:method "post" create-fertilizer]
@@ -67,9 +67,9 @@
(define rotations (get-crop-rotations))
(render-page (ferti-measurements-and-rotations-page nutrients measurements rotations)))
-(define (ferti-recipe _)
- (define ferti-recipe (find-ferti-recipe))
- (render-page (ferti-recipe-page ferti-recipe)))
+(define (ferti-recipe _ date-string)
+ (define ferti-recipe (find-ferti-recipe date-string))
+ (render-page (ferti-recipe-page date-string ferti-recipe)))
(define (ferti-fertilizers _)
(define fertilizers (get-fertilizer-products))
@@ -91,25 +91,28 @@
(define (destroy-measurement _ id)
(delete-nutrient-measurement! id)
- (redirect-to "/ferti/index"))
+ (redirect-to "/ferti/measurements-and-rotations"))
+
+;; Crop rotations
-;; Nutrient targets
+(define (new-rotation _)
+ (render-page (new-rotation-page)))
-(define (new-target _)
- (render-page (new-target-page)))
+(define (new-rotation-for-date _ date-string)
+ (render-page (new-rotation-page #:date date-string)))
-(define (create-target req)
- (define-values (target-date nutrient-values) (formlet-process (targets-formlet) req))
- (create-nutrient-target! target-date nutrient-values)
- (redirect-to "/ferti/targets"))
+(define (create-rotation req)
+ (define-values (rotation-date req-proportions) (formlet-process (rotation-formlet) req))
+ (create-crop-rotation! rotation-date req-proportions)
+ (redirect-to "/ferti/measurements-and-rotations"))
-(define (show-target _ id)
- (define nt (get-nutrient-target #:id id))
- (render-page (show-target-page nt)))
+(define (show-rotation _ id)
+ (define cr (get-crop-rotation #:id id))
+ (render-page (show-rotation-page cr)))
-(define (destroy-target _ id)
- (delete-nutrient-target! id)
- (redirect-to "/ferti/targets"))
+(define (destroy-rotation _ id)
+ (delete-crop-rotation! id)
+ (redirect-to "/ferti/measurements-and-rotations"))
;; Fertilizer products
Copyright 2019--2026 Marius PETER