diff options
| author | Marius Peter <dev@marius-peter.com> | 2025-12-14 11:07:32 +0100 |
|---|---|---|
| committer | Marius Peter <dev@marius-peter.com> | 2025-12-14 11:07:32 +0100 |
| commit | 1e98c940c5a133fc20a05ea9cd5b4a6cf561c349 (patch) | |
| tree | 5dd74f222fec0cd0ae14193b2805eb234a7b53ec /handlers.rkt | |
| parent | bd7f884180efbe0b47aa6de64b86489d0a81be07 (diff) | |
Add crop requirement new/show/edit logic.
Diffstat (limited to 'handlers.rkt')
| -rw-r--r-- | handlers.rkt | 36 |
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 _) |