diff options
Diffstat (limited to 'handlers.rkt')
| -rw-r--r-- | handlers.rkt | 37 |
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 _) |