summaryrefslogtreecommitdiff
path: root/handlers.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'handlers.rkt')
-rw-r--r--handlers.rkt37
1 files changed, 37 insertions, 0 deletions
diff --git a/handlers.rkt b/handlers.rkt
index e38ece8..d61e942 100644
--- a/handlers.rkt
+++ b/handlers.rkt
@@ -11,6 +11,7 @@
"formlets.rkt"
"models/user.rkt"
"models/nutrient-measurement.rkt"
+ "models/crop.rkt"
"models/crop-requirement.rkt"
"models/crop-rotation.rkt"
"models/fertilizer-product.rkt"
@@ -35,6 +36,13 @@
[("ferti" "measurements" (integer-arg) "edit") #:method "get" edit-measurement]
[("ferti" "measurements" "update") #:method "post" update-measurement]
[("ferti" "measurements" (integer-arg) "destroy") #:method "get" destroy-measurement]
+ ;; Crops
+ [("ferti" "crops" "new") #:method "get" new-crop]
+ [("ferti" "crops" "create") #:method "post" create-crop]
+ [("ferti" "crops" (integer-arg)) #:method "get" show-crop]
+ [("ferti" "crops" (integer-arg) "edit") #:method "get" edit-crop]
+ [("ferti" "crops" "update") #:method "post" update-crop]
+ [("ferti" "crops" (integer-arg) "destroy") #:method "get" destroy-crop]
;; Crop rotations
[("ferti" "rotations" "new") #:method "get" new-rotation]
[("ferti" "rotations" "new" (string-arg)) #:method "get" new-rotation-for-date]
@@ -117,6 +125,35 @@
(delete-nutrient-measurement! id)
(redirect-to "/ferti/measurements-and-rotations"))
+;; Crops
+
+(define (new-crop _)
+ (render-page (new-crop-page)))
+
+(define (create-crop req)
+ (define new-crop (formlet-process (crop-formlet) req))
+ (if (get-crop #:name (crop-name new-crop))
+ (update-crop! new-crop)
+ (create-crop! new-crop))
+ (redirect-to "/ferti/crop-requirements"))
+
+(define (show-crop _ id)
+ (define crop (get-crop #:id id))
+ (render-page (show-crop-page crop)))
+
+(define (edit-crop _ id)
+ (define crop (get-crop #:id id))
+ (render-page (edit-crop-page crop)))
+
+(define (update-crop req)
+ (define edited-crop (formlet-process (crop-formlet) req))
+ (update-crop! edited-crop)
+ (redirect-to "/ferti/crop-requirements"))
+
+(define (destroy-crop _ id)
+ (delete-crop! id)
+ (redirect-to "/ferti/crop-requirements"))
+
;; Crop rotations
(define (new-rotation _)
Copyright 2019--2026 Marius PETER