Date formlet now takes an optional initial value.

Commit
48b3a00cf6313ea96b3557a88a79b12eeb06cdfe
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
formlets.rkt
index 4d18225e..34082781 100644..100644
@@ -1,17 +1,18 @@
1 1 #lang racket
2 2
3 3 (provide measurements-formlet
4 Removed: targets-formlet
4 Added: rotation-formlet
5 5 fertilizer-formlet)
6 6
7 7 (require gregor
8 8 web-server/formlets
9 9 "models/nutrient.rkt"
10 Added: "models/nutrient-measurement.rkt"
10 11 "models/crop.rkt"
11 12 "models/crop-requirement.rkt")
12 13
13 14 (define (measurements-formlet)
14 Removed: (formlet* (#%# `(div ((class "mb-3")) (h5 "Date du relevé") ,{=>* date-formlet measurement-date*})
15 Added: (formlet* (#%# `(div ((class "mb-3")) (h5 "Date du relevé") ,{=>* (date-formlet) measurement-date*})
15 16 `(div ((class "mb-3"))
16 17 (h5 "Valeurs du relevé")
17 18 ,@(for/list ([nutrient (get-nutrients)])
@@ -22,17 +23,20 @@
22 23 (values (car nv) (cdr nv)))])
23 24 (values measurement-date nutrient-values))))
24 25
25 Removed: (define (targets-formlet)
26 Removed: (formlet* (#%# `(div ((class "mb-3")) (h5 "Date ciblée") ,{=>* date-formlet target-date*})
26 Added: (define (rotation-formlet #:date [date-string #f])
27 Added: (formlet* (#%# `(div ((class "mb-3"))
28 Added: (h5 "Date de l'assolement")
29 Added: ,{=>* (date-formlet #:date date-string) rotation-date*})
27 30 `(div ((class "mb-3"))
28 Removed: (h5 "Valeurs cibles (%)")
31 Added: (h5 "Répartition des cultures (%)")
29 32 ,@(for/list ([requirement (get-crop-requirements)])
30 33 {=>* (crop-requirement-formlet requirement) requirements*}))
31 34 {=>* (submit "Enregistrer la cible" #:attributes '((class "btn btn-primary"))) _})
32 Removed: (let ([target-date (first target-date*)]
33 Removed: [nutrient-values (average-crop-requirement-nutrient-values (filter pair?
34 Removed: requirements*))])
35 Removed: (values target-date nutrient-values))))
35 Added: (let ([rotation-date (first rotation-date*)]
36 Added: [requirement-proportions (for/hash ([rp requirements*])
37 Added: (match-define (cons req proportion) rp)
38 Added: (values req proportion))])
39 Added: (values rotation-date requirement-proportions))))
36 40
37 41 (define (fertilizer-formlet)
38 42 (formlet*
@@ -77,9 +81,9 @@
77 81 (div ((class "form-floating mb-3")) ,{=> percentage-input requirement-percentage} ,input-label)
78 82 (cons requirement requirement-percentage)))
79 83
80 Removed: (define date-formlet
84 Added: (define (date-formlet #:date [date-string #f])
81 85 (to-string (required (input #:type "date"
82 Removed: #:value (date->iso8601 (today))
86 Added: #:value (or date-string (date->iso8601 (today)))
83 87 #:attributes '((class "form-control") [required "required"])))))
84 88
85 89 (define (nutrient-value-formlet nutrient)