summaryrefslogtreecommitdiff
path: root/handlers.rkt
diff options
context:
space:
mode:
authorMarius Peter <dev@marius-peter.com>2025-12-14 11:07:32 +0100
committerMarius Peter <dev@marius-peter.com>2025-12-14 11:07:32 +0100
commit1e98c940c5a133fc20a05ea9cd5b4a6cf561c349 (patch)
tree5dd74f222fec0cd0ae14193b2805eb234a7b53ec /handlers.rkt
parentbd7f884180efbe0b47aa6de64b86489d0a81be07 (diff)
Add crop requirement new/show/edit logic.
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