mirror of
https://github.com/almet/copanier.git
synced 2025-04-28 11:32:38 +02:00
Merge branch 'multiple-deliveries' into 'master'
Delivery edition See merge request ybon/copanier!11
This commit is contained in:
commit
d62ecbf0af
4 changed files with 16 additions and 17 deletions
|
@ -204,27 +204,25 @@ async def import_products(request, response, id):
|
|||
delivery = Delivery.load(id)
|
||||
delivery.products = []
|
||||
data = request.files.get("data")
|
||||
path = f"/livraison/{delivery.id}"
|
||||
if data.filename.endswith(".csv"):
|
||||
error_path = f"/livraison/{delivery.id}/edit"
|
||||
|
||||
if data.filename.endswith((".csv", ".xlsx")):
|
||||
try:
|
||||
imports.products_from_csv(delivery, data.read().decode())
|
||||
if data.filename.endswith(".csv"):
|
||||
imports.products_from_csv(delivery, data.read().decode())
|
||||
else:
|
||||
imports.products_from_xlsx(delivery, data)
|
||||
except ValueError as err:
|
||||
response.message(err, status="error")
|
||||
response.redirect = path
|
||||
return
|
||||
elif data.filename.endswith(".xlsx"):
|
||||
try:
|
||||
imports.products_from_xlsx(delivery, data)
|
||||
except ValueError as err:
|
||||
response.message(err, status="error")
|
||||
response.redirect = path
|
||||
message = f"Impossible d'importer le fichier. {err.args[0]}"
|
||||
response.message(message, status="error")
|
||||
response.redirect = error_path
|
||||
return
|
||||
else:
|
||||
response.message("Format de fichier inconnu", status="error")
|
||||
response.redirect = path
|
||||
response.redirect = error_path
|
||||
return
|
||||
response.message("Les produits de la livraison ont bien été mis à jour!")
|
||||
response.redirect = path
|
||||
response.redirect = f"/livraison/{delivery.id}"
|
||||
|
||||
|
||||
@app.route("/livraison/{id}/exporter/produits", methods=["GET"])
|
||||
|
|
|
@ -31,7 +31,8 @@ def products_from_xlsx(delivery, data):
|
|||
def products_from_csv(delivery, data):
|
||||
reader = csv.DictReader(data.splitlines(), delimiter=";")
|
||||
if not set(reader.fieldnames) >= PRODUCT_FIELDS:
|
||||
raise ValueError("Colonnes obligatoires: name, ref, price")
|
||||
raise ValueError("Colonnes obligatoires: name, ref, price. "
|
||||
"Assurez-vous que le délimiteur soit bien «;»")
|
||||
delivery.products = []
|
||||
for row in reader:
|
||||
delivery.products.append(Product(**row))
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
</label>
|
||||
<label>
|
||||
<p>Description des produits</p>
|
||||
<input type="text" name="description" value="{{ delivery.description or '' }}" required>
|
||||
<input type="text" name="description" value="{{ delivery.description or '' }}">
|
||||
</label>
|
||||
<label>
|
||||
<p>Référent</p>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<ul class="delivery-head">
|
||||
<li><i class="icon-basket"></i> <strong>Produits</strong> {{ delivery.description }}</li>
|
||||
{% if delivery.description %}<li><i class="icon-basket"></i> <strong>Produits</strong> {{ delivery.description }}</li>{% endif %}
|
||||
<li><i class="icon-streetsign"></i> <strong>Lieu</strong> {{ delivery.where }}</li>
|
||||
<li><i class="icon-strategy"></i> <strong>Référent</strong> <a href="mailto:{{ delivery.contact }}">{{ delivery.contact }}</a></li>
|
||||
<li><i class="icon-clock"></i> <strong>Date de livraison</strong> <time datetime="{{ delivery.from_date }}">{{ delivery.from_date|date }} de {{ delivery.from_date|time }} à {{ delivery.to_date|time }}</time></li>
|
||||
|
|
Loading…
Reference in a new issue