diff options
Diffstat (limited to 'views.rkt')
| -rw-r--r-- | views.rkt | 39 | 
1 files changed, 29 insertions, 10 deletions
@@ -2,12 +2,14 @@  (provide index-page           new-measurement-page +         new-target-page           fallback-page)  (require web-server/formlets           "formlets.rkt"           "models/nutrient.rkt" -         "models/nutrient-measurement.rkt") +         "models/nutrient-measurement.rkt" +         "models/nutrient-target.rkt")  (define (page-template title body-xexpr) @@ -77,19 +79,26 @@       (a ([class "btn btn-primary mb-3"] [href "/target/new"]) "Créer une cible")       (table ([class "table"])              (tr (th "Nutriment") -                (th ([class "text-end"]) "Dernière Cible")                  (th ([class "text-end"]) "Dernier Relevé") +                (th ([class "text-end"]) "Dernière Cible")                  (th ([class "text-end"]) "Delta (%)"))              ,@(for/list ([n (get-nutrients)]) -                (define latest-target (+ (get-latest-nutrient-measurement-value n) 1)) -                (define latest-value (get-latest-nutrient-measurement-value n)) -                (define delta (* 100 -                                 (/ (- latest-target latest-value) -                                    latest-target))) +                (define latest-target (get-latest-nutrient-target-value n)) +                (define latest-measurement (get-latest-nutrient-measurement-value n)) +                (define delta-percentage (cond +                                           [(zero? latest-target) +                                            -100] +                                           [(zero? latest-measurement) +                                            100] +                                           [(number? latest-target) +                                            (* 100 +                                               (/ (- latest-target latest-measurement) +                                                  latest-measurement))] +                                           [else #f]))                  `(tr (td ,(nutrient-name n)) -                     (td ([class "text-end"]) ,(round 2 latest-target)) -                     (td ([class "text-end"]) ,(round 2 latest-value)) -                     (td ([class "text-end"]) ,(round 1 delta))))) +                     (td ([class "text-end"]) ,(if latest-measurement (round 2 latest-measurement) "—")) +                     (td ([class "text-end"]) ,(if latest-target (round 2 latest-target) "—")) +                     (td ([class "text-end"]) ,(if delta-percentage (round 1 delta-percentage) "—")))))       (a ([class "btn btn-primary mb-3"] [href "/measurement/new"]) "Ajouter un relevé")       (table ([class "table table-striped"]) @@ -122,6 +131,16 @@              [method "POST"])             ,@(formlet-display (measurements-formlet))))))) +(define (new-target-page) +  (page-template +   "Nouvelle cible" +   `((h1 ([class "display-1 mb-3"]) "Nouvelle cible") +     (div ([class "mb-3"] [style "max-width: 30em"]) +          (form +           ([action "/target/create"] +            [method "POST"]) +           ,@(formlet-display (targets-formlet))))))) +  (define (fallback-page request-code)    (page-template     (format "Réponse: ~a" request-code)  |