From e7e82f2c99fae17d6d48bd8f046b397c66165729 Mon Sep 17 00:00:00 2001 From: Yohan Boniface Date: Sat, 23 Mar 2019 12:01:18 +0100 Subject: [PATCH] More CSS all around --- kaba/models.py | 3 +- kaba/static/app.css | 81 +++++++++++++++++++--- kaba/templates/base.html | 10 ++- kaba/templates/delivery.html | 35 ++++++---- kaba/templates/home.html | 22 +++--- kaba/templates/includes/delivery_head.html | 6 ++ kaba/templates/place_order.html | 16 +++-- tests/conftest.py | 7 +- tests/test_models.py | 22 +++--- 9 files changed, 143 insertions(+), 59 deletions(-) create mode 100644 kaba/templates/includes/delivery_head.html diff --git a/kaba/models.py b/kaba/models.py index 49e679c..06ad69f 100644 --- a/kaba/models.py +++ b/kaba/models.py @@ -1,5 +1,4 @@ import inspect -import os import threading import uuid from datetime import datetime @@ -137,7 +136,7 @@ class Delivery(Base): @property def is_open(self): - return self.order_before > utils.utcnow() + return self.order_before > datetime.now() @classmethod def get_root(cls): diff --git a/kaba/static/app.css b/kaba/static/app.css index e120fd0..db94693 100644 --- a/kaba/static/app.css +++ b/kaba/static/app.css @@ -105,10 +105,6 @@ body { text-rendering: optimizeLegibility; background-color: var(--secondary-background-color); } -header { - border-bottom: 1px solid #eee; - padding: 20px; -} h1, h2, h3, @@ -138,6 +134,24 @@ a:hover { color: #363636; } +header { + border-bottom: 1px solid #eee; + padding: 20px; +} +header section { + display: grid; + grid-template-columns: 2fr auto; +} +header h1, nav { + line-height: 1rem; + vertical-align: middle; +} +header h1 small { + font-size: 0.7rem; + font-weight: 300; + color: #666; +} + main a { padding: 0 .1rem; color: inherit; @@ -217,7 +231,7 @@ input, textarea { display: block; position: relative; - height: 1rem; + height: 2rem; padding: .4rem .8rem; color: #50596c; font-size: .8rem; @@ -225,7 +239,7 @@ textarea { background-color: #fff; border: .05rem solid #bbc; border-radius: .1rem; - transition: all .2s ease; + box-sizing: border-box; } textarea { @@ -293,15 +307,15 @@ th.person { text-overflow: ellipsis; } th.product { - width: 15%; + width: 15rem; text-align: left; } th.price { - width: 5%; + width: 5rem; text-align: center; } th.amount { - width: 5%; + width: 5rem; } td.total, th.total { @@ -316,6 +330,20 @@ tr:nth-child(1) { tr:nth-child(1) * { color: #f1f1f1; } +article.order { + max-width: 1200px; + margin-left: auto; + margin-right: auto; +} +table.order th.product { + width: inherit; +} +td.with-input { + padding: 0; +} +td.with-input input { + width: 100%; +} hr { background-color: #dbdbdb; border: none; @@ -355,6 +383,7 @@ hr { } .toggle-label { cursor: pointer; + color: #00d1b2; } .toggle-container { display: none; @@ -370,3 +399,37 @@ hr { .toggle:checked ~ .toggle-container { display: block; } +ul.delivery { + padding: 10px +} +ul.delivery > li { + list-style: none; + padding: 20px 0; + margin: 0; +} +ul.delivery-head { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px , 1fr)); + grid-gap: 10px; +} +ul.delivery-head li { + list-style: none; + padding: 0; + margin: 0; +} +ul.delivery-head li i{ + float: left; + font-size: 1.5rem; + vertical-align: bottom; + padding-right: 5px; +} +ul.toolbox { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(100px , 1fr)); + grid-gap: 10px; +} +ul.toolbox li { + list-style: none; + padding: 0; + margin: 0; +} diff --git a/kaba/templates/base.html b/kaba/templates/base.html index 5a7da60..a5cd0e0 100644 --- a/kaba/templates/base.html +++ b/kaba/templates/base.html @@ -14,10 +14,14 @@
{% if message %} -
{{ message[0] }}
+
{{ message[0] }}
{% endif %} -

Panio

-
Commandes groupées Épinamap
Nouvelle livraison +
+

Panio Les paniers piano d'Épinamap

+ +
{% block body %} {% endblock body %} diff --git a/kaba/templates/delivery.html b/kaba/templates/delivery.html index 769120f..b791701 100644 --- a/kaba/templates/delivery.html +++ b/kaba/templates/delivery.html @@ -2,10 +2,7 @@ {% block body %}

{{ delivery.producer }}

-

Description: {{ delivery.description }}

-

Lieu: {{ delivery.where }}

-

Date: {{ delivery.when }}

-

Date limite de commande: {{ delivery.order_before.date() }}

+{% include "includes/delivery_head.html" %} @@ -39,13 +36,25 @@

-

Modifier la livraison (admin)

-

Générer un rapport

-

Importer une commande

-

Colonnes: ref*, wanted*

-
- - - -
+ {% endblock body %} diff --git a/kaba/templates/home.html b/kaba/templates/home.html index c614925..5093fb7 100644 --- a/kaba/templates/home.html +++ b/kaba/templates/home.html @@ -1,16 +1,18 @@ {% extends "base.html" %} - {% block body %} +

Livraisons à venir

+ {% endblock body %} diff --git a/kaba/templates/includes/delivery_head.html b/kaba/templates/includes/delivery_head.html new file mode 100644 index 0000000..3392d1e --- /dev/null +++ b/kaba/templates/includes/delivery_head.html @@ -0,0 +1,6 @@ + diff --git a/kaba/templates/place_order.html b/kaba/templates/place_order.html index e6a3740..51cf25a 100644 --- a/kaba/templates/place_order.html +++ b/kaba/templates/place_order.html @@ -1,14 +1,15 @@ {% extends "base.html" %} {% block body %} -

Producteur: {{ delivery.producer }} — Lieu: {{ delivery.where }} — Date: {{ delivery.when }} — Date limite de commande: {{ delivery.order_before }}

-

Commande de «{{ person }}»

+
+

{{ delivery.producer }} — Commande de «{{ person }}»

+{% include "includes/delivery_head.html" %}
- - +
ProduitPrixQuantité
+ {% for product in delivery.products %} - - + {% endfor %}
ProduitPrixQuantité
{{ product.name }} + {{ product.name }}
@@ -21,11 +22,12 @@
{{ product.price }} €
{{ product.price }} €

Total: {{ order.total(delivery.products) if order else 0 }} €

- +
+
{% endblock body %} diff --git a/tests/conftest.py b/tests/conftest.py index 0471f5f..4880efb 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,12 +1,11 @@ import os -from datetime import timedelta +from datetime import datetime, timedelta import pytest from roll.extensions import traceback from kaba import app as kaba_app from kaba import config as kconfig -from kaba import utils from kaba.models import Delivery, Person @@ -31,8 +30,8 @@ def app(): # Requested by Roll testing utilities. def delivery(): return Delivery( producer="Andines", - when=utils.utcnow() + timedelta(days=10), - order_before=utils.utcnow() + timedelta(days=7), + when=datetime.now() + timedelta(days=10), + order_before=datetime.now() + timedelta(days=7), ) diff --git a/tests/test_models.py b/tests/test_models.py index 03cf3fc..eb4126b 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -1,30 +1,30 @@ -from datetime import timedelta +from datetime import datetime, timedelta import pytest -from kaba import utils from kaba.models import Delivery, Product, Person, Order, ProductOrder +now = datetime.now + + def test_can_create_delivery(): - delivery = Delivery( - producer="Andines", when=utils.utcnow(), order_before=utils.utcnow() - ) + delivery = Delivery(producer="Andines", when=now(), order_before=now()) assert delivery.producer == "Andines" assert delivery.where == "Marché de la Briche" - assert delivery.when.year == utils.utcnow().year + assert delivery.when.year == now().year assert delivery.id def test_wrong_datetime_raise_valueerror(): with pytest.raises(ValueError): - Delivery(producer="Andines", order_before=utils.utcnow(), when="pouet") + Delivery(producer="Andines", order_before=now(), when="pouet") def test_delivery_is_open_when_order_before_is_in_the_future(delivery): - delivery.order_before = utils.utcnow() + timedelta(hours=1) + delivery.order_before = now() + timedelta(hours=1) assert delivery.is_open - delivery.order_before = utils.utcnow() - timedelta(hours=1) + delivery.order_before = now() - timedelta(hours=1) assert not delivery.is_open @@ -37,8 +37,8 @@ def test_can_create_product(): def test_can_create_delivery_with_products(): delivery = Delivery( producer="Andines", - when=utils.utcnow(), - order_before=utils.utcnow(), + when=now(), + order_before=now(), products=[Product(name="Lait", ref="123", price=1.5)], ) assert len(delivery.products) == 1