summaryrefslogtreecommitdiff
path: root/handlers.rkt
diff options
context:
space:
mode:
Diffstat (limited to 'handlers.rkt')
-rw-r--r--handlers.rkt36
1 files changed, 36 insertions, 0 deletions
diff --git a/handlers.rkt b/handlers.rkt
index 49e27d9..e38ece8 100644
--- a/handlers.rkt
+++ b/handlers.rkt
@@ -48,6 +48,13 @@
[("ferti" "fertilizers" (integer-arg) "edit") #:method "get" edit-fertilizer]
[("ferti" "fertilizers" "update") #:method "post" update-fertilizer]
[("ferti" "fertilizers" (integer-arg) "destroy") #:method "get" destroy-fertilizer]
+ ;; Crop requirements
+ [("ferti" "crop-requirements" "new") #:method "get" new-requirement]
+ [("ferti" "crop-requirements" "create") #:method "post" create-requirement]
+ [("ferti" "crop-requirements" (integer-arg)) #:method "get" show-requirement]
+ [("ferti" "crop-requirements" (integer-arg) "edit") #:method "get" edit-requirement]
+ [("ferti" "crop-requirements" "update") #:method "post" update-requirement]
+ [("ferti" "crop-requirements" (integer-arg) "destroy") #:method "get" destroy-requirement]
;; Default
[("") #:method "get" index]
[else fallback]))
@@ -158,6 +165,35 @@
(delete-fertilizer-product! id)
(redirect-to "/ferti/fertilizers"))
+;; Crop requirements
+
+(define (new-requirement _)
+ (render-page (new-crop-requirement-page)))
+
+(define (create-requirement req)
+ (define new-requirement (formlet-process (crop-requirements-formlet) req))
+ (if (get-crop-requirement #:profile (crop-requirement-profile new-requirement))
+ (update-crop-requirement! new-requirement)
+ (create-crop-requirement! new-requirement))
+ (redirect-to "/ferti/crop-requirements"))
+
+(define (show-requirement _ id)
+ (define cr (get-crop-requirement #:id id))
+ (render-page (show-crop-requirement-page cr)))
+
+(define (edit-requirement _ id)
+ (define cr (get-crop-requirement #:id id))
+ (render-page (edit-crop-requirement-page cr)))
+
+(define (update-requirement req)
+ (define edited-nutrient-requirement (formlet-process (crop-requirements-formlet) req))
+ (update-crop-requirement! edited-nutrient-requirement)
+ (redirect-to "/ferti/crop-requirements"))
+
+(define (destroy-requirement _ id)
+ (delete-crop-requirement! id)
+ (redirect-to "/ferti/crop-requirements"))
+
;; Fallback
(define (fallback _)
Copyright 2019--2026 Marius PETER