diff options
| author | Marius Peter <dev@marius-peter.com> | 2025-12-13 22:50:05 +0100 |
|---|---|---|
| committer | Marius Peter <dev@marius-peter.com> | 2025-12-13 22:51:42 +0100 |
| commit | fc64ba9e3f119b3e283bd3750385c477381d549a (patch) | |
| tree | a1db6761bf9a3bdc95b0cc8050f1b7ffc33801ce /formlets.rkt | |
| parent | 0071a7fdf3c171ffa5a4fb562fd7d29c10251790 (diff) | |
Add measurement editing + updating logic.
Diffstat (limited to 'formlets.rkt')
| -rw-r--r-- | formlets.rkt | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/formlets.rkt b/formlets.rkt index 116db81..7ebd0b9 100644 --- a/formlets.rkt +++ b/formlets.rkt @@ -12,17 +12,30 @@ "models/crop.rkt" "models/crop-requirement.rkt") -(define (measurements-formlet) - (formlet* (#%# `(div ((class "mb-3")) (h5 "Date du relevé") ,{=>* (date-formlet) measurement-date*}) +(define (measurements-formlet #:value [nm #f]) + (formlet* (#%# (=>* (to-string (required (hidden (if nm + (number->string (nutrient-measurement-id nm)) + "")))) + id*) + `(div ((class "mb-3")) + (h5 "Date du relevé") + ,(=>* (date-formlet #:value (if nm + (nutrient-measurement-date nm) + (date->iso8601 (today)))) + measurement-date*)) `(div ((class "mb-3")) (h5 "Valeurs du relevé") - ,@(for/list ([nutrient (get-nutrients)]) - {=>* (nutrient-value-formlet nutrient) nutrient-values*})) + ,@(for/list ([n (get-nutrients)]) + (define v + (if nm + (nutrient-measurement-value nm n) + 0)) + (=>* (nutrient-value-formlet n v) nutrient-values*))) {=>* (submit "Enregistrer le relevé" #:attributes '((class "btn btn-primary"))) _}) - (values measurement-date nutrient-values)))) (let ([id (first id*)] [measurement-date (first measurement-date*)] [nutrient-values (make-immutable-hash nutrient-values*)]) + (nutrient-measurement id measurement-date nutrient-values)))) (define (rotation-formlet #:date [date-string #f]) (formlet* (#%# `(div ((class "mb-3")) |