mirror of
https://github.com/almet/copanier.git
synced 2025-04-28 19:42:37 +02:00
Reorganize URLs and templates.
Reorganizing the URLs seems to fix an issue with namespace collision in the URLs. - URLs for product related operations are now in the /produits/ namespace ; - Templates are now using a formalism of action_subject.html, which makes it simpler to find find them.
This commit is contained in:
parent
8e3e31f98d
commit
80a61066a0
24 changed files with 92 additions and 133 deletions
|
@ -12,7 +12,7 @@
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<li class="pure-menu-item">
|
<li class="pure-menu-item">
|
||||||
<a class="pure-menu-link" href="/distribution/{{ delivery.id }}/produits"><i class="icon-pencil"></i> Gérer les produits / product⋅eur⋅rice⋅s</a>
|
<a class="pure-menu-link" href="/produits/{{ delivery.id }}"><i class="icon-pencil"></i> Gérer les produits / product⋅eur⋅rice⋅s</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
|
@ -21,7 +21,7 @@
|
||||||
<li class="pure-menu-item pure-menu-has-children pure-menu-allow-hover">
|
<li class="pure-menu-item pure-menu-has-children pure-menu-allow-hover">
|
||||||
<a href="#" class="pure-menu-link"><i class="icon-printer"></i> Imprimer…</a>
|
<a href="#" class="pure-menu-link"><i class="icon-printer"></i> Imprimer…</a>
|
||||||
<ul class="pure-menu-children">
|
<ul class="pure-menu-children">
|
||||||
<li class="pure-menu-item"><a href="/distribution/{{ delivery.id }}/produits.pdf" class="pure-menu-link"><i class="icon-ribbon"></i> Commande producteurs⋅rices</a></li>
|
<li class="pure-menu-item"><a href="/produits/{{ delivery.id }}/produits.pdf" class="pure-menu-link"><i class="icon-ribbon"></i> Commande producteurs⋅rices</a></li>
|
||||||
<li class="pure-menu-item"><a href="/distribution/{{ delivery.id }}/émargement" class="pure-menu-link"><i class="icon-grid"></i> Résumé de commande par groupe</a></li>
|
<li class="pure-menu-item"><a href="/distribution/{{ delivery.id }}/émargement" class="pure-menu-link"><i class="icon-grid"></i> Résumé de commande par groupe</a></li>
|
||||||
<li class="pure-menu-item"><a href="/distribution/{{ delivery.id }}/solde" class="pure-menu-link"><i class="icon-wallet"></i> Répartition des paiements</a></li>
|
<li class="pure-menu-item"><a href="/distribution/{{ delivery.id }}/solde" class="pure-menu-link"><i class="icon-wallet"></i> Répartition des paiements</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
<a class="pure-menu-link" href="/distribution/{{ delivery.id }}/edit"><i class="icon-adjustments"></i> Modifier la distrib</a>
|
<a class="pure-menu-link" href="/distribution/{{ delivery.id }}/edit"><i class="icon-adjustments"></i> Modifier la distrib</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pure-menu-item">
|
<li class="pure-menu-item">
|
||||||
<a class="pure-menu-link" href="/distribution/{{ delivery.id }}/produits"><i class="icon-pricetags"></i> Produits</a>
|
<a class="pure-menu-link" href="/produits/{{ delivery.id }}"><i class="icon-pricetags"></i> Produits</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul
|
</ul
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
{% if delivery.has_products %}
|
{% if delivery.has_products %}
|
||||||
{% for (id, producer) in delivery.get_producers_for_referent(request.user.email).items() %}
|
{% for (id, producer) in delivery.get_producers_for_referent(request.user.email).items() %}
|
||||||
{% if producer.needs_price_update(delivery) %}
|
{% if producer.needs_price_update(delivery) %}
|
||||||
<p class="notification info">Merci de <a href="/distribution/{{ delivery.id}}/{{ producer.id}}/éditer">mettre à jour les prix pour « {{ producer.name }} ».</a></p>
|
<p class="notification info">Merci de <a href="/produits/{{ delivery.id }}/producteurs/{{ producer.id}}">mettre à jour les prix pour « {{ producer.name }} ».</a></p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% include "includes/delivery_table.html" %}
|
{% include "includes/delivery_table.html" %}
|
||||||
|
@ -64,8 +64,8 @@
|
||||||
{% if request.user and request.user.is_staff %}
|
{% if request.user and request.user.is_staff %}
|
||||||
Occupons-nous donc de ça ! Deux options :
|
Occupons-nous donc de ça ! Deux options :
|
||||||
<ol>
|
<ol>
|
||||||
<li><a href="/producteurices/créer/{{ delivery.id }}">Ajouter les product⋅eurs⋅rices</a> à la main ;</li>
|
<li><a href="/produits/{{ delivery.id }}/producteurs/créer">Ajouter les product⋅eurs⋅rices</a> à la main ;</li>
|
||||||
<li>Ou bien <a href="/distribution/{{ delivery.id }}/copier">copier les produits d'une autre distribution</a>.</li>
|
<li>Ou bien <a href="/produits/{{ delivery.id }}/copier">copier les produits d'une autre distribution</a>.</li>
|
||||||
</ol>
|
</ol>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
|
@ -14,11 +14,11 @@
|
||||||
|
|
||||||
<h3>Avant et pendant la distribution</h3>
|
<h3>Avant et pendant la distribution</h3>
|
||||||
<a class="button" href="/distribution/{{ delivery.id }}/edit"><i class="icon-pencil"></i> Modifier la commande (dates, lieu, référent⋅e, etc)</a>
|
<a class="button" href="/distribution/{{ delivery.id }}/edit"><i class="icon-pencil"></i> Modifier la commande (dates, lieu, référent⋅e, etc)</a>
|
||||||
<a class="button" href="/distribution/{{ delivery.id }}/products"><i class="icon-pencil"></i> Modifier les produits, les product⋅rices⋅eurs</a>
|
<a class="button" href="/produits/{{ delivery.id }}"><i class="icon-pencil"></i> Modifier les produits, les product⋅rices⋅eurs</a>
|
||||||
<a class="button" href="/groupes"><i class="icon-globe"></i> Gérer les groupes / colocs</a>
|
<a class="button" href="/groupes"><i class="icon-globe"></i> Gérer les groupes / colocs</a>
|
||||||
|
|
||||||
<h3>Une fois les commandes passées (après le {{ delivery.order_before|date }})</h3>
|
<h3>Une fois les commandes passées (après le {{ delivery.order_before|date }})</h3>
|
||||||
<a class="button" href="/distribution/{{ delivery.id }}/products.pdf"><i class="icon-download"></i> Télécharger les bons de distribution</a>
|
<a class="button" href="/produits/{{ delivery.id }}/produits.pdf"><i class="icon-download"></i> Télécharger les bons de distribution</a>
|
||||||
<a class="button" href="/distribution/{{ delivery.id }}/rapport-complet.xlsx"><i class="icon-download"></i> Télécharger le tableau des commandes</a>
|
<a class="button" href="/distribution/{{ delivery.id }}/rapport-complet.xlsx"><i class="icon-download"></i> Télécharger le tableau des commandes</a>
|
||||||
<a class="button" href="/distribution/{{ delivery.id }}/envoi-email-referentes"><i class="icon-envelope"></i> Envoyer les infos de commande aux référent⋅e⋅s</a>
|
<a class="button" href="/distribution/{{ delivery.id }}/envoi-email-referentes"><i class="icon-envelope"></i> Envoyer les infos de commande aux référent⋅e⋅s</a>
|
||||||
|
|
|
@ -9,13 +9,13 @@
|
||||||
{% if producer_obj.needs_price_update(delivery) %}*{% endif %}
|
{% if producer_obj.needs_price_update(delivery) %}*{% endif %}
|
||||||
{% if edit_mode or request.user.is_staff or producer_obj.referent == request.user.email %}
|
{% if edit_mode or request.user.is_staff or producer_obj.referent == request.user.email %}
|
||||||
<span class="edit">
|
<span class="edit">
|
||||||
<a class="button" href="/distribution/{{ delivery.id }}/{{ producer_obj.id }}/éditer"><i class="icon-ribbon"></i> Gérer ce⋅tte producteur⋅rice</a>
|
<a class="button" href="/produits/{{ delivery.id }}/producteurs/{{ producer_obj.id }}"><i class="icon-ribbon"></i> Gérer ce⋅tte producteur⋅rice</a>
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</h2>
|
</h2>
|
||||||
<h5>{% if producer_obj.description %}{{ producer_obj.description }}{% endif %}. Référent⋅e : <a href="mailto:{{ producer_obj.referent }}">{{ producer_obj.referent_name }}</a> / {{ producer_obj.referent_tel }}</h5>
|
<h5>{% if producer_obj.description %}{{ producer_obj.description }}{% endif %}. Référent⋅e : <a href="mailto:{{ producer_obj.referent }}">{{ producer_obj.referent_name }}</a> / {{ producer_obj.referent_tel }}</h5>
|
||||||
{% if not delivery.get_products_by(producer) %}
|
{% if not delivery.get_products_by(producer) %}
|
||||||
😔 Ce⋅tte producteur⋅rice n'a pas encore de produits. Voulez vous <a href="/distribution/{{ delivery.id }}/{{ producer }}/ajouter-produit">en rajouter un ?</a>
|
😔 Ce⋅tte producteur⋅rice n'a pas encore de produits. Voulez vous <a href="/produits/{{ delivery.id }}/producteurs/{{ producer }}/produits/créer">en rajouter un ?</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<table class="delivery pure-table">
|
<table class="delivery pure-table">
|
||||||
<thead>
|
<thead>
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for product in delivery.get_products_by(producer) %}
|
{% for product in delivery.get_products_by(producer) %}
|
||||||
<tr>
|
<tr>
|
||||||
<th class="product {% if product.rupture %}rupture{% endif %}">{% if edit_mode %}<a href="/distribution/{{ delivery.id }}/{{ product.producer }}/produit/{{ product.ref }}/éditer">{% endif %}{% if edit_mode %}<i class="icon-pencil"></i> {% endif %}{{ product }}{% if edit_mode %}</a>{% endif %}{% if product.rupture %} {{ product.rupture }}{% endif %}
|
<th class="product {% if product.rupture %}rupture{% endif %}">{% if edit_mode %}<a href="/produits/{{ delivery.id }}/producteurs/{{ product.producer }}/produits/{{ product.ref }}">{% endif %}{% if edit_mode %}<i class="icon-pencil"></i> {% endif %}{{ product }}{% if edit_mode %}</a>{% endif %}{% if product.rupture %} {{ product.rupture }}{% endif %}
|
||||||
<td>{{ product.price | round(2) }} €</td>
|
<td>{{ product.price | round(2) }} €</td>
|
||||||
{% if delivery.has_packing %}
|
{% if delivery.has_packing %}
|
||||||
<td class="packing">{% if product.packing %}{{ product.packing }} x {% endif %} {{ product.unit }}</td>
|
<td class="packing">{% if product.packing %}{{ product.packing }} x {% endif %} {{ product.unit }}</td>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block toplink %}<a href="/distribution/{{ delivery.id }}/{{producer.id}}/éditer">↶ Retourner a « {{producer.name}} »</a>{% endblock %}
|
{% block toplink %}<a href="/produits/{{ delivery.id }}/producteurs/{{producer.id}}">↶ Retourner a « {{producer.name}} »</a>{% endblock %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<div class="header">
|
<div class="header">
|
||||||
|
|
|
@ -51,13 +51,13 @@
|
||||||
</thead>
|
</thead>
|
||||||
{% for product in products %}
|
{% for product in products %}
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/distribution/{{ delivery.id }}/produit/{{ product.ref }}/éditer">{{ product.name }}</a></td>
|
<td><a href="/produits/{{ delivery.id }}/producteurs/{{ producer.id }}/produits/{{ product.ref }}">{{ product.name }}</a></td>
|
||||||
<td>{{ product.price }}€</td>
|
<td>{{ product.price }}€</td>
|
||||||
<td>{{ product.unit }}</td>
|
<td>{{ product.unit }}</td>
|
||||||
<td>{{ product.description }}</td>
|
<td>{{ product.description }}</td>
|
||||||
<td>{% if product.packing %}{{ product.packing }}{% endif %}</td>
|
<td>{% if product.packing %}{{ product.packing }}{% endif %}</td>
|
||||||
<td>{% if product.rupture %}RUPTURE !!{% endif %}</td>
|
<td>{% if product.rupture %}RUPTURE !!{% endif %}</td>
|
||||||
<td><a href="/distribution/{{ delivery.id }}/produit/{{ product.ref }}/éditer">éditer</a></td>
|
<td><a href="/produits/{{ delivery.id }}/producteurs/{{ producer.id }}/produits/{{ product.ref }}">éditer</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</table>
|
</table>
|
|
@ -1,5 +1,5 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block toplink %}<a href="/distribution/{{ delivery.id }}/produits">↶ Retourner aux produits</a>{% endblock %}
|
{% block toplink %}<a href="/produits/{{ delivery.id }}">↶ Retourner aux produits</a>{% endblock %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<div class="header">
|
<div class="header">
|
||||||
|
@ -8,17 +8,17 @@
|
||||||
<div class="pure-menu pure-menu-horizontal">
|
<div class="pure-menu pure-menu-horizontal">
|
||||||
<ul class="pure-menu-list">
|
<ul class="pure-menu-list">
|
||||||
<li class="pure-menu-item">
|
<li class="pure-menu-item">
|
||||||
<a class="pure-menu-link" href="/distribution/{{ delivery.id}}/{{ producer.id }}/ajouter-produit">Ajouter un produit</a>
|
<a class="pure-menu-link" href="/produits/{{ delivery.id}}/producteurs/{{ producer.id }}/produits/créer">Ajouter un produit</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pure-menu-item">
|
<li class="pure-menu-item">
|
||||||
<a class="pure-menu-link" href="/distribution/{{ delivery.id}}/{{ producer.id }}/supprimer">Supprimer</a>
|
<a class="pure-menu-link" href="/produits/{{ delivery.id}}/producteurs/{{ producer.id }}/supprimer">Supprimer</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pure-menu-list">
|
<li class="pure-menu-list">
|
||||||
<a class="pure-menu-link" href="/distribution/{{ delivery.id}}/{{ producer.id }}/frais-de-livraison">Gérer des frais de livraison</a>
|
<a class="pure-menu-link" href="/produits/{{ delivery.id}}/producteurs/{{ producer.id }}/frais-de-livraison">Gérer des frais de livraison</a>
|
||||||
</li>
|
</li>
|
||||||
{% if producer.needs_price_update(delivery) %}
|
{% if producer.needs_price_update(delivery) %}
|
||||||
<li class="pure-menu-item">
|
<li class="pure-menu-item">
|
||||||
<a class="pure-menu-link" href="/distribution/{{ delivery.id}}/{{ producer.id }}/valider-prix">Marquer les prix comme OK</a>
|
<a class="pure-menu-link" href="/produits/{{ delivery.id}}/producteurs/{{ producer.id }}/valider-prix">Marquer les prix comme OK</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -67,14 +67,14 @@
|
||||||
{% if delivery.shipping.get(producer.id) %}
|
{% if delivery.shipping.get(producer.id) %}
|
||||||
<h3>Frais de livraison</h3>
|
<h3>Frais de livraison</h3>
|
||||||
Des frais de livraison de {{ delivery.shipping[producer.id] }}€ ont été enregistrés pour ce producteur.
|
Des frais de livraison de {{ delivery.shipping[producer.id] }}€ ont été enregistrés pour ce producteur.
|
||||||
<a class="button" href="/distribution/{{ delivery.id}}/{{ producer.id }}/frais-de-livraison">Modifier</a>
|
<a class="button" href="/produits/{{ delivery.id}}/producteurs/{{ producer.id }}/frais-de-livraison">Modifier</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if products %}
|
{% if products %}
|
||||||
<h3>Produits
|
<h3>Produits
|
||||||
<a class="button" href="/distribution/{{ delivery.id}}/{{ producer.id }}/ajouter-produit">Ajouter un produit</a>
|
<a class="button" href="/produits/{{ delivery.id}}/producteurs/{{ producer.id }}/produits/créer">Ajouter un produit</a>
|
||||||
{% if producer.needs_price_update(delivery) %}
|
{% if producer.needs_price_update(delivery) %}
|
||||||
<a class="button" href="/distribution/{{ delivery.id}}/{{ producer.id }}/valider-prix">Marquer les prix comme OK</a>
|
<a class="button" href="/produits/{{ delivery.id}}/producteurs/{{ producer.id }}/valider-prix">Marquer les prix comme OK</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</h3>
|
</h3>
|
||||||
<p>Vous pouvez éditer les produits en cliquant sur leur nom.</p>
|
<p>Vous pouvez éditer les produits en cliquant sur leur nom.</p>
|
||||||
|
@ -92,13 +92,13 @@ Des frais de livraison de {{ delivery.shipping[producer.id] }}€ ont été enre
|
||||||
</thead>
|
</thead>
|
||||||
{% for product in products %}
|
{% for product in products %}
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="/distribution/{{ delivery.id }}/{{ producer.id }}/produit/{{ product.ref }}/éditer">{{ product.name }}</a></td>
|
<td><a href="/produits/{{ delivery.id }}/producteurs/{{ producer.id }}/produits/{{ product.ref }}">{{ product.name }}</a></td>
|
||||||
<td>{{ product.price }}€</td>
|
<td>{{ product.price }}€</td>
|
||||||
<td>{{ product.unit }}</td>
|
<td>{{ product.unit }}</td>
|
||||||
<td>{{ product.description }}</td>
|
<td>{{ product.description }}</td>
|
||||||
<td>{% if product.packing %}{{ product.packing }}{% endif %}</td>
|
<td>{% if product.packing %}{{ product.packing }}{% endif %}</td>
|
||||||
<td>{% if product.rupture %}RUPTURE !!{% endif %}</td>
|
<td>{% if product.rupture %}RUPTURE !!{% endif %}</td>
|
||||||
<td><a href="/distribution/{{ delivery.id }}/{{ producer.id }}/{{ product.ref }}/supprimer">supprimer</a></td>
|
<td><a href="/produits/{{ delivery.id }}/producteurs/{{ producer.id }}/produits/{{ product.ref }}/supprimer">supprimer</a></td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -1,22 +1,22 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
|
|
||||||
{% block toplink %}<a href="/distribution/{{ delivery.id }}/{{ producer.id }}/éditer">↶ Retourner aux produits de {{ producer.name }}</a>{% endblock %}
|
{% block toplink %}<a href="/produits/{{ delivery.id }}/producteurs/{{ producer.id }}">↶ Retourner aux produits de {{ producer.name }}</a>{% endblock %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
|
|
||||||
<div class="header">
|
<div class="header">
|
||||||
{% if product.ref %}
|
{% if product.ref %}
|
||||||
<h1>Modifier le produit « {{ product.name }} »</h1>
|
<h1>Modifier le produit « {{ product.name }} »</h1>
|
||||||
|
<div class="pure-menu pure-menu-horizontal">
|
||||||
|
<ul class="pure-menu-list">
|
||||||
|
<li class="pure-menu-item">
|
||||||
|
<a class="pure-menu-link" href="/produits/{{ delivery.id}}/producteurs/{{ producer.id }}/produits/{{ product.ref }}/supprimer">Supprimer ce produit</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<h1>{{ producer.name }} : Nouveau produit</h1>
|
<h1>{{ producer.name }} : Nouveau produit</h1>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="pure-menu pure-menu-horizontal">
|
|
||||||
<ul class="pure-menu-list">
|
|
||||||
<li class="pure-menu-item">
|
|
||||||
<a class="pure-menu-link" href="/distribution/{{ delivery.id}}/{{ producer.id }}/{{ product.ref }}/supprimer">Supprimer ce produit</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form method="post">
|
<form method="post">
|
||||||
|
@ -51,34 +51,5 @@
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
{% if products %}
|
|
||||||
<h3>Produits</h3>
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Produit</th>
|
|
||||||
<th>Prix</th>
|
|
||||||
<th>Unité</th>
|
|
||||||
<th>Description</th>
|
|
||||||
<th>Packaging</th>
|
|
||||||
<th>Rupture ?</th>
|
|
||||||
<th></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
{% for product in products %}
|
|
||||||
<tr>
|
|
||||||
<td><a href="/distribution/{{ delivery.id }}/produit/{{ product.ref }}/éditer">{{ product.name }}</a></td>
|
|
||||||
<td>{{ product.price }}€</td>
|
|
||||||
<td>{{ product.unit }}</td>
|
|
||||||
<td>{{ product.description }}</td>
|
|
||||||
<td>{% if product.packing %}{{ product.packing }}{% endif %}</td>
|
|
||||||
<td>{% if product.rupture %}RUPTURE !!{% endif %}</td>
|
|
||||||
<td><a href="/distribution/{{ delivery.id }}/produit/{{ product.ref }}/éditer">éditer</a></td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
{% endblock body %}
|
{% endblock body %}
|
|
@ -1,5 +1,5 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block toplink %}<a href="/distribution/{{ delivery.id }}/produits">↶ Retourner aux produits</a>{% endblock %}
|
{% block toplink %}<a href="/produits/{{ delivery.id }}">↶ Retourner aux produits</a>{% endblock %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<div class="header">
|
<div class="header">
|
|
@ -6,19 +6,19 @@
|
||||||
<div class="pure-menu pure-menu-horizontal">
|
<div class="pure-menu pure-menu-horizontal">
|
||||||
<ul class="pure-menu-list">
|
<ul class="pure-menu-list">
|
||||||
<li class="pure-menu-item">
|
<li class="pure-menu-item">
|
||||||
<a class="pure-menu-link" href="/producteurices/créer/{{ delivery.id }}"><i class="icon-heart"></i> Ajouter un⋅e producteur⋅rice</a>
|
<a class="pure-menu-link" href="/produits/{{ delivery.id }}/producteurs/créer"><i class="icon-heart"></i> Ajouter un⋅e producteur⋅rice</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="pure-menu-item">
|
<li class="pure-menu-item">
|
||||||
<a class="pure-menu-link" href="/distribution/{{ delivery.id }}/copier"><i class="icon-hotairballoon"></i> Réutiliser les produits d'une autre distrib</a>
|
<a class="pure-menu-link" href="/produits/{{ delivery.id }}/copier"><i class="icon-hotairballoon"></i> Réutiliser les produits d'une autre distrib</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="hide-on-print">
|
<p class="hide-on-print">
|
||||||
{% if producers %}
|
{% if producers %}
|
||||||
<a href="/distribution/{{ delivery.id }}/producteurices.pdf{% if referent %}?referent={{ referent }}{% endif %}">Télécharger la liste des commandes en PDF</a>
|
<a href="/produits/{{ delivery.id }}/produits.pdf{% if referent %}?referent={{ referent }}{% endif %}">Télécharger la liste des commandes en PDF</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if referent %}Voici la liste des product⋅eurs⋅rices dont {{ referent }} est référent⋅e. <a class="button" href="/distribution/{{delivery.id}}/producteurices">voir tous les produits</a>{% endif %}
|
{% if referent %}Voici la liste des product⋅eurs⋅rices dont {{ referent }} est référent⋅e. <a class="button" href="/produits/{{delivery.id}}">voir tous les produits</a>{% endif %}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<article class="delivery">
|
<article class="delivery">
|
|
@ -20,7 +20,7 @@ async def home(request, response):
|
||||||
response.redirect = "/groupes"
|
response.redirect = "/groupes"
|
||||||
return
|
return
|
||||||
response.html(
|
response.html(
|
||||||
"delivery/list.html",
|
"delivery/list_deliveries.html",
|
||||||
incoming=Delivery.incoming(),
|
incoming=Delivery.incoming(),
|
||||||
former=Delivery.former(),
|
former=Delivery.former(),
|
||||||
archives=list(Delivery.all(is_archived=True)),
|
archives=list(Delivery.all(is_archived=True)),
|
||||||
|
@ -30,7 +30,7 @@ async def home(request, response):
|
||||||
@app.route("/archives", methods=["GET"])
|
@app.route("/archives", methods=["GET"])
|
||||||
async def view_archives(request, response):
|
async def view_archives(request, response):
|
||||||
response.html(
|
response.html(
|
||||||
"delivery/archives.html", {"deliveries": Delivery.all(is_archived=True)}
|
"delivery/list_archives.html", {"deliveries": Delivery.all(is_archived=True)}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ async def unarchive_delivery(request, response, id):
|
||||||
|
|
||||||
@app.route("/distribution", methods=["GET"])
|
@app.route("/distribution", methods=["GET"])
|
||||||
async def new_delivery(request, response):
|
async def new_delivery(request, response):
|
||||||
response.html("delivery/edit.html", delivery={})
|
response.html("delivery/edit_delivery.html", delivery={})
|
||||||
|
|
||||||
|
|
||||||
@app.route("/distribution", methods=["POST"])
|
@app.route("/distribution", methods=["POST"])
|
||||||
|
@ -83,7 +83,7 @@ async def create_delivery(request, response):
|
||||||
async def pdf_for_producer(request, response, id, producer):
|
async def pdf_for_producer(request, response, id, producer):
|
||||||
delivery = Delivery.load(id)
|
delivery = Delivery.load(id)
|
||||||
response.pdf(
|
response.pdf(
|
||||||
"product_list.html",
|
"list_products.html",
|
||||||
{"list_only": True, "delivery": delivery, "producers": [producer]},
|
{"list_only": True, "delivery": delivery, "producers": [producer]},
|
||||||
filename=utils.prefix(f"bon-de-commande-{producer}.pdf", delivery),
|
filename=utils.prefix(f"bon-de-commande-{producer}.pdf", delivery),
|
||||||
)
|
)
|
||||||
|
@ -93,7 +93,7 @@ async def pdf_for_producer(request, response, id, producer):
|
||||||
async def delivery_toolbox(request, response, id):
|
async def delivery_toolbox(request, response, id):
|
||||||
delivery = Delivery.load(id)
|
delivery = Delivery.load(id)
|
||||||
response.html(
|
response.html(
|
||||||
"delivery/toolbox.html",
|
"delivery/show_toolbox.html",
|
||||||
{
|
{
|
||||||
"delivery": delivery,
|
"delivery": delivery,
|
||||||
"referents": [p.referent for p in delivery.producers.values()],
|
"referents": [p.referent for p in delivery.producers.values()],
|
||||||
|
@ -155,7 +155,7 @@ async def export_products(request, response, id):
|
||||||
@staff_only
|
@staff_only
|
||||||
async def edit_delivery(request, response, id):
|
async def edit_delivery(request, response, id):
|
||||||
delivery = Delivery.load(id)
|
delivery = Delivery.load(id)
|
||||||
response.html("delivery/edit.html", {"delivery": delivery})
|
response.html("delivery/edit_delivery.html", {"delivery": delivery})
|
||||||
|
|
||||||
|
|
||||||
@app.route("/distribution/{id}/edit", methods=["POST"])
|
@app.route("/distribution/{id}/edit", methods=["POST"])
|
||||||
|
@ -176,7 +176,7 @@ async def post_delivery(request, response, id):
|
||||||
@app.route("/distribution/{id}", methods=["GET"])
|
@app.route("/distribution/{id}", methods=["GET"])
|
||||||
async def view_delivery(request, response, id):
|
async def view_delivery(request, response, id):
|
||||||
delivery = Delivery.load(id)
|
delivery = Delivery.load(id)
|
||||||
response.html("delivery/show.html", {"delivery": delivery})
|
response.html("delivery/show_delivery.html", {"delivery": delivery})
|
||||||
|
|
||||||
|
|
||||||
@app.route("/distribution/{id}/commander", methods=["POST", "GET"])
|
@app.route("/distribution/{id}/commander", methods=["POST", "GET"])
|
||||||
|
@ -276,7 +276,7 @@ async def place_order(request, response, id):
|
||||||
async def signing_sheet(request, response, id):
|
async def signing_sheet(request, response, id):
|
||||||
delivery = Delivery.load(id)
|
delivery = Delivery.load(id)
|
||||||
response.pdf(
|
response.pdf(
|
||||||
"delivery/signing_sheet.html",
|
"delivery/show_signing_sheet.html",
|
||||||
{"delivery": delivery},
|
{"delivery": delivery},
|
||||||
css="signing-sheet.css",
|
css="signing-sheet.css",
|
||||||
filename=utils.prefix("commandes-par-groupe.pdf", delivery),
|
filename=utils.prefix("commandes-par-groupe.pdf", delivery),
|
||||||
|
@ -316,7 +316,9 @@ async def adjust_product(request, response, id, ref):
|
||||||
response.message(f"Le produit «{product.ref}» a bien été ajusté!")
|
response.message(f"Le produit «{product.ref}» a bien été ajusté!")
|
||||||
response.redirect = delivery_url
|
response.redirect = delivery_url
|
||||||
else:
|
else:
|
||||||
response.html("adjust_product.html", {"delivery": delivery, "product": product})
|
response.html(
|
||||||
|
"delivery/adjust_product.html", {"delivery": delivery, "product": product}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@app.route("/distribution/{id}/solde", methods=["GET"])
|
@app.route("/distribution/{id}/solde", methods=["GET"])
|
||||||
|
@ -364,7 +366,7 @@ async def delivery_balance(request, response, id):
|
||||||
for debiter, amount, crediter in results:
|
for debiter, amount, crediter in results:
|
||||||
results_dict[debiter][crediter] = amount
|
results_dict[debiter][crediter] = amount
|
||||||
|
|
||||||
template_name = "delivery/balance.html"
|
template_name = "delivery/compute_balance.html"
|
||||||
template_args = {
|
template_args = {
|
||||||
"delivery": delivery,
|
"delivery": delivery,
|
||||||
"debiters": debiters,
|
"debiters": debiters,
|
||||||
|
|
|
@ -10,7 +10,7 @@ async def on_startup():
|
||||||
|
|
||||||
@app.route("/groupes", methods=["GET"])
|
@app.route("/groupes", methods=["GET"])
|
||||||
async def handle_groups(request, response):
|
async def handle_groups(request, response):
|
||||||
response.html("groups/list.html", {"groups": request["groups"]})
|
response.html("groups/list_groups.html", {"groups": request["groups"]})
|
||||||
|
|
||||||
|
|
||||||
@app.route("/groupes/{id}/rejoindre", method=["GET"])
|
@app.route("/groupes/{id}/rejoindre", method=["GET"])
|
||||||
|
@ -43,7 +43,7 @@ async def create_group(request, response):
|
||||||
request["groups"].persist()
|
request["groups"].persist()
|
||||||
response.message(f"Le groupe {group.name} à bien été créé")
|
response.message(f"Le groupe {group.name} à bien été créé")
|
||||||
response.redirect = "/"
|
response.redirect = "/"
|
||||||
response.html("groups/edit.html", group=group)
|
response.html("groups/edit_group.html", group=group)
|
||||||
|
|
||||||
|
|
||||||
@app.route("/groupes/{id}/éditer", methods=["GET", "POST"])
|
@app.route("/groupes/{id}/éditer", methods=["GET", "POST"])
|
||||||
|
@ -60,7 +60,7 @@ async def edit_group(request, response, id):
|
||||||
request["groups"].groups[id] = group
|
request["groups"].groups[id] = group
|
||||||
request["groups"].persist()
|
request["groups"].persist()
|
||||||
response.redirect = "/groupes"
|
response.redirect = "/groupes"
|
||||||
response.html("groups/edit.html", group=group)
|
response.html("groups/edit_group.html", group=group)
|
||||||
|
|
||||||
|
|
||||||
@app.route("/groupes/{id}/supprimer", methods=["GET"])
|
@app.route("/groupes/{id}/supprimer", methods=["GET"])
|
||||||
|
|
|
@ -18,7 +18,7 @@ async def auth_required(request, response):
|
||||||
decoded = utils.read_token(token)
|
decoded = utils.read_token(token)
|
||||||
email = decoded.get("sub")
|
email = decoded.get("sub")
|
||||||
if not email:
|
if not email:
|
||||||
response.redirect = f"/sésame?next={request.path}"
|
response.redirect = f"/connexion?next={request.path}"
|
||||||
return response
|
return response
|
||||||
|
|
||||||
groups = Groups.load()
|
groups = Groups.load()
|
||||||
|
@ -33,12 +33,12 @@ async def auth_required(request, response):
|
||||||
session.user.set(user)
|
session.user.set(user)
|
||||||
|
|
||||||
|
|
||||||
@app.route("/sésame", methods=["GET"], unprotected=True)
|
@app.route("/connexion", methods=["GET"], unprotected=True)
|
||||||
async def sesame(request, response):
|
async def sesame(request, response):
|
||||||
response.html("sesame.html")
|
response.html("login.html")
|
||||||
|
|
||||||
|
|
||||||
@app.route("/sésame", methods=["POST"], unprotected=True)
|
@app.route("/connexion", methods=["POST"], unprotected=True)
|
||||||
async def send_sesame(request, response):
|
async def send_sesame(request, response):
|
||||||
email = request.form.get("email").lower()
|
email = request.form.get("email").lower()
|
||||||
token = utils.create_token(email)
|
token = utils.create_token(email)
|
||||||
|
@ -61,7 +61,7 @@ async def send_sesame(request, response):
|
||||||
response.redirect = "/"
|
response.redirect = "/"
|
||||||
|
|
||||||
|
|
||||||
@app.route("/sésame/{token}", methods=["GET"], unprotected=True)
|
@app.route("/connexion/{token}", methods=["GET"], unprotected=True)
|
||||||
async def set_sesame(request, response, token):
|
async def set_sesame(request, response, token):
|
||||||
decoded = utils.read_token(token)
|
decoded = utils.read_token(token)
|
||||||
if not decoded:
|
if not decoded:
|
||||||
|
|
|
@ -6,11 +6,11 @@ from ..models import Delivery, Product, Producer
|
||||||
from .. import utils
|
from .. import utils
|
||||||
|
|
||||||
|
|
||||||
@app.route("/distribution/{id}/produits")
|
@app.route("/produits/{id}")
|
||||||
@app.route("/distribution/{id}/produits.pdf")
|
@app.route("/produits/{id}/produits.pdf")
|
||||||
async def list_products(request, response, id):
|
async def list_products(request, response, id):
|
||||||
delivery = Delivery.load(id)
|
delivery = Delivery.load(id)
|
||||||
template_name = "products/list.html"
|
template_name = "products/list_products.html"
|
||||||
template_params = {
|
template_params = {
|
||||||
"edit_mode": True,
|
"edit_mode": True,
|
||||||
"list_only": True,
|
"list_only": True,
|
||||||
|
@ -29,7 +29,7 @@ async def list_products(request, response, id):
|
||||||
response.html(template_name, template_params)
|
response.html(template_name, template_params)
|
||||||
|
|
||||||
|
|
||||||
@app.route("/distribution/{delivery_id}/{producer_id}/éditer", methods=["GET", "POST"])
|
@app.route("/produits/{delivery_id}/producteurs/{producer_id}", methods=["GET", "POST"])
|
||||||
async def edit_producer(request, response, delivery_id, producer_id):
|
async def edit_producer(request, response, delivery_id, producer_id):
|
||||||
delivery = Delivery.load(delivery_id)
|
delivery = Delivery.load(delivery_id)
|
||||||
producer = delivery.producers.get(producer_id)
|
producer = delivery.producers.get(producer_id)
|
||||||
|
@ -48,13 +48,14 @@ async def edit_producer(request, response, delivery_id, producer_id):
|
||||||
{
|
{
|
||||||
"delivery": delivery,
|
"delivery": delivery,
|
||||||
"producer": producer,
|
"producer": producer,
|
||||||
"products": delivery.get_products_by(producer.id),
|
"products": delivery.get_products_by(producer_id),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@app.route(
|
@app.route(
|
||||||
"/distribution/{delivery_id}/{producer_id}/supprimer", methods=["GET", "POST"]
|
"/produits/{delivery_id}/producteurs/{producer_id}/supprimer",
|
||||||
|
methods=["GET", "POST"],
|
||||||
)
|
)
|
||||||
async def delete_producer(request, response, delivery_id, producer_id):
|
async def delete_producer(request, response, delivery_id, producer_id):
|
||||||
# Delete the producer and all the related products.
|
# Delete the producer and all the related products.
|
||||||
|
@ -70,7 +71,7 @@ async def delete_producer(request, response, delivery_id, producer_id):
|
||||||
delivery.persist()
|
delivery.persist()
|
||||||
|
|
||||||
response.message(f"{producer.name} à bien été supprimé !")
|
response.message(f"{producer.name} à bien été supprimé !")
|
||||||
response.redirect = f"/distribution/{delivery.id}/produits"
|
response.redirect = f"/produits/{delivery.id}"
|
||||||
|
|
||||||
response.html(
|
response.html(
|
||||||
"products/delete_producer.html",
|
"products/delete_producer.html",
|
||||||
|
@ -82,26 +83,7 @@ async def delete_producer(request, response, delivery_id, producer_id):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@app.route("/distribution/{delivery_id}/{producer_id}/frais", methods=["GET", "POST"])
|
@app.route("/produits/{delivery_id}/producteurs/créer", methods=["GET", "POST"])
|
||||||
async def handle_shipping_fees(request, response, delivery_id, producer_id):
|
|
||||||
delivery = Delivery.load(delivery_id)
|
|
||||||
producer = delivery.producers.get(producer_id)
|
|
||||||
if request.method == "POST":
|
|
||||||
form = request.form
|
|
||||||
producer.referent = form.get("referent")
|
|
||||||
producer.referent_tel = form.get("referent_tel")
|
|
||||||
producer.referent_name = form.get("referent_name")
|
|
||||||
producer.description = form.get("description")
|
|
||||||
producer.contact = form.get("contact")
|
|
||||||
delivery.producers[producer_id] = producer
|
|
||||||
delivery.persist()
|
|
||||||
|
|
||||||
response.html(
|
|
||||||
"products/shipping_fees.html", {"delivery": delivery, "producer": producer}
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@app.route("/producteurices/créer/{delivery_id}", methods=["GET", "POST"])
|
|
||||||
async def create_producer(request, response, delivery_id):
|
async def create_producer(request, response, delivery_id):
|
||||||
delivery = Delivery.load(delivery_id)
|
delivery = Delivery.load(delivery_id)
|
||||||
producer = None
|
producer = None
|
||||||
|
@ -120,7 +102,7 @@ async def create_producer(request, response, delivery_id):
|
||||||
delivery.producers[producer_id] = producer
|
delivery.producers[producer_id] = producer
|
||||||
delivery.persist()
|
delivery.persist()
|
||||||
response.message(f"« {producer.name} » à bien été créé !")
|
response.message(f"« {producer.name} » à bien été créé !")
|
||||||
response.redirect = f"/distribution/{delivery.id}/{producer.id}/éditer"
|
response.redirect = f"/produits/{delivery.id}/producteurs/{producer.id}"
|
||||||
|
|
||||||
response.html(
|
response.html(
|
||||||
"products/edit_producer.html", {"delivery": delivery, "producer": producer}
|
"products/edit_producer.html", {"delivery": delivery, "producer": producer}
|
||||||
|
@ -128,7 +110,7 @@ async def create_producer(request, response, delivery_id):
|
||||||
|
|
||||||
|
|
||||||
@app.route(
|
@app.route(
|
||||||
"/distribution/{delivery_id}/{producer_id}/produit/{product_ref}/éditer",
|
"/produits/{delivery_id}/producteurs/{producer_id}/produits/{product_ref}",
|
||||||
methods=["GET", "POST"],
|
methods=["GET", "POST"],
|
||||||
)
|
)
|
||||||
async def edit_product(request, response, delivery_id, producer_id, product_ref):
|
async def edit_product(request, response, delivery_id, producer_id, product_ref):
|
||||||
|
@ -153,16 +135,18 @@ async def edit_product(request, response, delivery_id, producer_id, product_ref)
|
||||||
product.rupture = None
|
product.rupture = None
|
||||||
delivery.persist()
|
delivery.persist()
|
||||||
response.message("Le produit à bien été modifié")
|
response.message("Le produit à bien été modifié")
|
||||||
response.redirect = f"/distribution/{delivery_id}/{producer_id}/éditer"
|
response.redirect = f"/produits/{delivery_id}/producteurs/{producer_id}"
|
||||||
return
|
return
|
||||||
|
|
||||||
response.html(
|
response.html(
|
||||||
"products/edit.html",
|
"products/edit_product.html",
|
||||||
{"delivery": delivery, "product": product, "producer": producer},
|
{"delivery": delivery, "product": product, "producer": producer},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@app.route("/distribution/{delivery_id}/{producer_id}/valider-prix", methods=["GET"])
|
@app.route(
|
||||||
|
"/produits/{delivery_id}/producteurs/{producer_id}/valider-prix", methods=["GET"]
|
||||||
|
)
|
||||||
async def mark_producer_prices_as_ok(request, response, delivery_id, producer_id):
|
async def mark_producer_prices_as_ok(request, response, delivery_id, producer_id):
|
||||||
delivery = Delivery.load(delivery_id)
|
delivery = Delivery.load(delivery_id)
|
||||||
producer = delivery.producers.get(producer_id)
|
producer = delivery.producers.get(producer_id)
|
||||||
|
@ -175,10 +159,10 @@ async def mark_producer_prices_as_ok(request, response, delivery_id, producer_id
|
||||||
response.message(
|
response.message(
|
||||||
f"Les prix ont été marqués comme OK pour « { producer.name } », merci !"
|
f"Les prix ont été marqués comme OK pour « { producer.name } », merci !"
|
||||||
)
|
)
|
||||||
response.redirect = f"/distribution/{delivery_id}/{producer_id}/éditer"
|
response.redirect = f"/produits/{delivery_id}/producteurs/{producer_id}"
|
||||||
|
|
||||||
|
|
||||||
@app.route("/distribution/{delivery_id}/valider-prix", methods=["GET"])
|
@app.route("/produits/{delivery_id}/valider-prix", methods=["GET"])
|
||||||
async def mark_all_prices_as_ok(request, response, delivery_id):
|
async def mark_all_prices_as_ok(request, response, delivery_id):
|
||||||
delivery = Delivery.load(delivery_id)
|
delivery = Delivery.load(delivery_id)
|
||||||
|
|
||||||
|
@ -187,22 +171,24 @@ async def mark_all_prices_as_ok(request, response, delivery_id):
|
||||||
delivery.persist()
|
delivery.persist()
|
||||||
|
|
||||||
response.message(f"Les prix ont été marqués comme OK pour toute la distribution !")
|
response.message(f"Les prix ont été marqués comme OK pour toute la distribution !")
|
||||||
response.redirect = f"/distribution/{delivery_id}/produits"
|
response.redirect = f"/produits/{delivery_id}"
|
||||||
|
|
||||||
|
|
||||||
@app.route(
|
@app.route(
|
||||||
"/distribution/{delivery_id}/{producer_id}/{product_ref}/supprimer", methods=["GET"]
|
"/produits/{delivery_id}/producteurs/{producer_id}/produits/{product_ref}/supprimer",
|
||||||
|
methods=["GET"],
|
||||||
)
|
)
|
||||||
async def delete_product(request, response, delivery_id, producer_id, product_ref):
|
async def delete_product(request, response, delivery_id, producer_id, product_ref):
|
||||||
delivery = Delivery.load(delivery_id)
|
delivery = Delivery.load(delivery_id)
|
||||||
product = delivery.delete_product(product_ref)
|
product = delivery.delete_product(product_ref)
|
||||||
delivery.persist()
|
delivery.persist()
|
||||||
response.message(f"Le produit « { product.name } » à bien été supprimé.")
|
response.message(f"Le produit « { product.name } » à bien été supprimé.")
|
||||||
response.redirect = f"/distribution/{delivery_id}/{producer_id}/éditer"
|
response.redirect = f"/produits/{delivery_id}/producteurs/{producer_id}"
|
||||||
|
|
||||||
|
|
||||||
@app.route(
|
@app.route(
|
||||||
"/distribution/{delivery_id}/{producer_id}/ajouter-produit", methods=["GET", "POST"]
|
"/produits/{delivery_id}/producteurs/{producer_id}/produits/créer",
|
||||||
|
methods=["GET", "POST"],
|
||||||
)
|
)
|
||||||
async def create_product(request, response, delivery_id, producer_id):
|
async def create_product(request, response, delivery_id, producer_id):
|
||||||
delivery = Delivery.load(delivery_id)
|
delivery = Delivery.load(delivery_id)
|
||||||
|
@ -218,17 +204,17 @@ async def create_product(request, response, delivery_id, producer_id):
|
||||||
delivery.products.append(product)
|
delivery.products.append(product)
|
||||||
delivery.persist()
|
delivery.persist()
|
||||||
response.message("Le produit à bien été créé")
|
response.message("Le produit à bien été créé")
|
||||||
response.redirect = f"/distribution/{delivery_id}/{producer_id}/éditer"
|
response.redirect = f"/produits/{delivery_id}/producteurs/{producer_id}"
|
||||||
return
|
return
|
||||||
|
|
||||||
response.html(
|
response.html(
|
||||||
"products/edit.html",
|
"products/edit_product.html",
|
||||||
{"delivery": delivery, "producer": producer, "product": product},
|
{"delivery": delivery, "producer": producer, "product": product},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@app.route(
|
@app.route(
|
||||||
"/distribution/{delivery_id}/{producer_id}/frais-de-livraison",
|
"/produits/{delivery_id}/producteurs/{producer_id}/frais-de-livraison",
|
||||||
methods=["GET", "POST"],
|
methods=["GET", "POST"],
|
||||||
)
|
)
|
||||||
async def set_shipping_price(request, response, delivery_id, producer_id):
|
async def set_shipping_price(request, response, delivery_id, producer_id):
|
||||||
|
@ -242,11 +228,11 @@ async def set_shipping_price(request, response, delivery_id, producer_id):
|
||||||
delivery.shipping[producer_id] = shipping
|
delivery.shipping[producer_id] = shipping
|
||||||
delivery.persist()
|
delivery.persist()
|
||||||
response.message("Les frais de livraison ont bien été enregistrés, merci !")
|
response.message("Les frais de livraison ont bien été enregistrés, merci !")
|
||||||
response.redirect = f"/distribution/{delivery_id}/produits"
|
response.redirect = f"/produits/{delivery_id}"
|
||||||
return
|
return
|
||||||
|
|
||||||
response.html(
|
response.html(
|
||||||
"products/shipping_fees.html",
|
"products/edit_shipping_fees.html",
|
||||||
{
|
{
|
||||||
"delivery": delivery,
|
"delivery": delivery,
|
||||||
"producer": producer,
|
"producer": producer,
|
||||||
|
@ -255,17 +241,17 @@ async def set_shipping_price(request, response, delivery_id, producer_id):
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@app.route("/distribution/{id}/copier", methods=["GET"])
|
@app.route("/produits/{id}/copier", methods=["GET"])
|
||||||
async def copy_products(request, response, id):
|
async def copy_products_get(request, response, id):
|
||||||
deliveries = Delivery.all()
|
deliveries = Delivery.all()
|
||||||
response.html("delivery/copy.html", {"deliveries": deliveries})
|
response.html("products/copy_products.html", {"deliveries": deliveries})
|
||||||
|
|
||||||
|
|
||||||
@app.route("/distribution/{id}/copier", methods=["POST"])
|
@app.route("/produits/{id}/copier", methods=["POST"])
|
||||||
async def copy_products(request, response, id):
|
async def copy_products_post(request, response, id):
|
||||||
delivery = Delivery.load(id)
|
delivery = Delivery.load(id)
|
||||||
to_copy = delivery.load(request.form.get("to_copy"))
|
to_copy = delivery.load(request.form.get("to_copy"))
|
||||||
delivery.producers = to_copy.producers
|
delivery.producers = to_copy.producers
|
||||||
delivery.products = to_copy.products
|
delivery.products = to_copy.products
|
||||||
delivery.persist()
|
delivery.persist()
|
||||||
response.redirect = f"/distribution/{id}"
|
response.redirect = f"/produits/{id}"
|
||||||
|
|
Loading…
Reference in a new issue