From 3b7f77480ab5b5fe1a14bfba7a6f1b486aaa9a0a Mon Sep 17 00:00:00 2001 From: Marius Peter Date: Sat, 13 Dec 2025 17:54:41 +0100 Subject: Add fertilizer product updating logic. --- views.rkt | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) (limited to 'views.rkt') diff --git a/views.rkt b/views.rkt index 75018a4..0695079 100644 --- a/views.rkt +++ b/views.rkt @@ -9,6 +9,7 @@ new-measurement-page new-rotation-page new-fertilizer-page + edit-fertilizer-page show-measurement-page show-rotation-page show-fertilizer-page @@ -16,6 +17,7 @@ (require gregor web-server/formlets + racket/hash "formlets.rkt" "models/user.rkt" "models/nutrient.rkt" @@ -187,9 +189,14 @@ (define (new-measurement-page) (page-template "Nouveau relevé" `((h1 ((class "display-1 mb-3")) "Nouveau relevé") +;; New + +(define (form-page-template title action formlet) + (page-template title + `((h1 ((class "display-1 mb-3")) ,title) (div ((class "mb-3") [style "max-width: 30em"]) - (form ([action "/ferti/measurements/create"] [method "POST"]) - ,@(formlet-display (measurements-formlet))))))) + (form ([action ,action] [method "POST"]) ,@(formlet-display formlet)))))) + (define (new-rotation-page #:date [date-string #f]) (page-template "Nouvel assolement" @@ -204,6 +211,17 @@ (div ((class "mb-3") [style "max-width: 30em"]) (form ([action "/ferti/fertilizers/create"] [method "POST"]) ,@(formlet-display (fertilizer-formlet))))))) +;; Edit + +(define (edit-fertilizer-page fp) + (form-page-template "Modifier intrant" "/ferti/fertilizers/update" (fertilizer-formlet #:value fp))) + +;; (define (new-crop-requirement-page) +;; (page-template "Nouveau profil" +;; `((h1 ((class "display-1 mb-3")) "Nouveau profil") +;; (div ((class "mb-3") [style "max-width: 30em"]) +;; (form ([action "/ferti/crop-requirements/create"] [method "POST"]) +;; ,@(formlet-display (crop-requirement-formlet))))))) (define (show-measurement-page nm) (define title (format "Relevé du ~a" (normal-date (nutrient-measurement-date nm)))) @@ -251,12 +269,18 @@ (match-define (cons n v) nv-pair) `(tr (td ,(nutrient-french-name n)) (td ((class "text-end font-monospace")) ,(round 2 v))))))) + (define button-group + `(div ((class "btn-group")) + (a ((class "btn btn-primary") + [href ,(format "/ferti/fertilizers/~a/edit" (fertilizer-product-id fp))]) + "Modifier") + (a ((class "btn btn-danger") + [href ,(format "/ferti/fertilizers/~a/destroy" (fertilizer-product-id fp))]) + "Supprimer"))) (page-template product-name `((h1 ((class "display-1 mb-3")) ,(or brand-name "Intrant générique")) (h5 ((class "display-5 mb-3")) ,product-name) - (a ((class "btn btn-danger") - [href ,(format "/ferti/fertilizers/destroy/~a" (fertilizer-product-id fp))]) - "Supprimer") + ,button-group ,table))) (define (index-page user) -- cgit v1.2.3