From 2aeceeca3ce8ae5f38e964d5325338a3a4d84b07 Mon Sep 17 00:00:00 2001 From: Yohan Boniface Date: Wed, 22 May 2019 15:31:58 +0200 Subject: [PATCH] Display user order info on home page (total + unpaid) --- copanier/models.py | 5 ++ copanier/static/app.css | 80 ++++++++++--------- .../templates/includes/delivery_head.html | 2 +- copanier/templates/includes/order_button.html | 6 ++ 4 files changed, 53 insertions(+), 40 deletions(-) diff --git a/copanier/models.py b/copanier/models.py index 8d9a123..bdb5f36 100644 --- a/copanier/models.py +++ b/copanier/models.py @@ -290,3 +290,8 @@ class Delivery(Base): def has_order(self, person): return person.email in self.orders + + def total_for(self, person): + if person.email not in self.orders: + return 0 + return self.orders[person.email].total(self.products) diff --git a/copanier/static/app.css b/copanier/static/app.css index 94aef00..4c86438 100644 --- a/copanier/static/app.css +++ b/copanier/static/app.css @@ -1,23 +1,14 @@ :root { --primary-color: #0062b7; - --primary-color-light: #e6f0fa; - --secondary-color: #e10055; + --link-color: #00d1b2; --text-color: #414664; - --border-color: #e6e6eb; - --primary-background-color: #fff; - --secondary-background-color: #fafafb; - --disease: #7846af; - --disease-light: #f5ebfa; - --country: #0f8796; - --country-light: #e6f5f5; - --group: #d03800; - --group-light: #fff5eb; - --keyword: #8c5a2d; - --keyword-light: #f5f0eb; - --kind: #cd0073; - --kind-light: #faf0f5; - --ern: #32009b; - --ern-light: #ebebf5; + --light-text-color: #fafafb; + --background-color: #fafafb; + --flag-color: #A87CA0; + --warning-color: #FFA631; + --danger-color: #d9534f; + --neutral-color: #4D8FAC; + --success-color: #0f8796; } @@ -103,7 +94,7 @@ body { font-size: .8rem; font-family: 'Work Sans', sans-serif; text-rendering: optimizeLegibility; - background-color: var(--secondary-background-color); + background-color: var(--background-color); padding: 0; margin: 0; } @@ -113,7 +104,6 @@ h3, h4, h5, legend { - /*margin: 0;*/ color: #444; line-height: 1; font-weight: 300; @@ -125,7 +115,7 @@ h3 { font-size: 1.4rem } h4 { font-size: 1.1rem } a { - color: #00d1b2; + color: var(--link-color); cursor: pointer; text-decoration: none; -webkit-transition: none 86ms ease-out; @@ -165,6 +155,7 @@ main { padding: 1rem; } +.flag, button, a.button, input[type=submit] { @@ -196,7 +187,7 @@ input[type=submit] + a.button { input[type=submit]:hover, .button:hover { - color: #fff; + color: var(--light-text-color); background-color: var(--primary-color); } @@ -204,29 +195,40 @@ input[type=submit]:hover, button.primary, a.button.primary, input[type=submit].primary { - color: #fff; + color: var(--background-color); background: var(--primary-color); } button.primary:hover, a.button.primary:hover, input[type=submit].primary:hover { - background-color: #fff; + background-color: var(--background-color); color: var(--primary-color); } button.danger, a.button.danger, input[type=submit].danger { - color: #d9534f; - border-color: #d9534f; + color: var(--danger-color); + border-color: var(--danger-color); } button.danger:hover, a.button.danger:hover, input[type=submit].danger:hover { - background-color: #d9534f; - color: #fff; + background-color: var(--danger-color); + color: var(--light-text-color); +} +.flag { + border-color: var(--flag-color); + color: var(--light-text-color); + background-color: var(--flag-color); + cursor: help; +} +.flag.warning { + background-color: var(--warning-color); + border-color: var(--warning-color); + font-weight: 600; } @@ -247,10 +249,10 @@ textarea { position: relative; height: 2rem; padding: .4rem .8rem; - color: #50596c; + color: var(--text-color); font-size: .8rem; line-height: 1rem; - background-color: #fff; + background-color: var(--background-color); border: .05rem solid #bbc; box-sizing: border-box; } @@ -354,10 +356,10 @@ tr:nth-child(even) { background-color: #ddd; } thead tr { - background-color: #3498db; + background-color: var(--neutral-color); } thead tr * { - color: #f1f1f1; + color: var(--light-text-color); } thead th + th { border-left: 1px solid white; @@ -387,11 +389,11 @@ article.delivery th.person { } td.missing, th.missing { - background-color: #db7734; + background-color: var(--warning-color); } .missing a { - color: #f1f1f1; - border-color: #f1f1f1; + color: var(--light-text-color); + border-color: var(--light-text-color); height: 1rem; } hr { @@ -427,26 +429,26 @@ hr { vertical-align: middle; } .notification.success { - background-color: #0f8796; + background-color: var(--success-color); } .notification.error { - background-color: #e10055; + background-color: var(--danger-color); } .notification.warning { - background-color: #f9b42d; + background-color: var(--warning-color); } .notification i { font-size: 2rem; } .not-paid { - background-color: #db7734; + background-color: var(--warning-color); } .toggle { display: none; } .toggle-label { cursor: pointer; - color: #00d1b2; + color: var(--link-color); } .toggle-container { display: none; diff --git a/copanier/templates/includes/delivery_head.html b/copanier/templates/includes/delivery_head.html index c982934..d99d478 100644 --- a/copanier/templates/includes/delivery_head.html +++ b/copanier/templates/includes/delivery_head.html @@ -3,7 +3,7 @@
  • Lieu {{ delivery.where }}
  • Référent {{ delivery.contact }}
  • Date de livraison
  • -
  • {% if delivery.status == delivery.OPEN %}Date limite de commande {% elif delivery.status == delivery.ADJUSTMENT %}Ajustement en cours{% elif delivery.status == delivery.CLOSED %}{% if delivery.is_foreseen %}Fermée{% else %}À solder{% endif %}{% else %}Archivée{% endif %}
  • +
  • {% if delivery.status == delivery.OPEN %}Date limite de commande {% elif delivery.status == delivery.ADJUSTMENT %}Ajustement en cours{% elif delivery.status == delivery.CLOSED %}{% if delivery.is_foreseen %}Fermée{% else %}Solde en cours{% endif %}{% else %}Archivée{% endif %}
  • {% if delivery.instructions %}
  • À savoir {{ delivery.instructions }}
  • {% endif %} {% if delivery.infos_url %}
  • Plus d'infos {{ delivery.infos_url|truncate(20)}}
  • {% endif %} diff --git a/copanier/templates/includes/order_button.html b/copanier/templates/includes/order_button.html index bd45f48..b1401d9 100644 --- a/copanier/templates/includes/order_button.html +++ b/copanier/templates/includes/order_button.html @@ -7,3 +7,9 @@ {% endif %} {% endif %} +{% if request.user.email in delivery.orders %} +  {{ delivery.total_for(request.user) }} € + {% if delivery.status == delivery.CLOSED and delivery.is_passed and not delivery.orders[request.user.email].paid %} +  Commande à solder + {% endif %} +{% endif %}