mirror of
https://github.com/almet/copanier.git
synced 2025-04-28 19:42:37 +02:00
Allow deletion of a product from the interface
This commit is contained in:
parent
0b6bdfb768
commit
8580c98291
5 changed files with 31 additions and 15 deletions
9
TODO
9
TODO
|
@ -12,17 +12,18 @@ x Faciliter la duplication de distribution
|
|||
x Si un produit est en rupture de stock, alors il n'est pas compté dans les totaux
|
||||
x Permettre la suppression de producteurs
|
||||
x Ajouter une info « prix mis à jour » pour les référent⋅e⋅s
|
||||
|
||||
Permettre la supression des produits (terminer)
|
||||
x Gérer les frais de livraison
|
||||
x Ajouter une note explicative pour la répartition des chèques
|
||||
x Permettre la supression des produits (terminer)
|
||||
|
||||
Gérer le souci d'URL pour l'édition d'Apiluly
|
||||
Rendre le formulaire d'édition producteur plus compact
|
||||
|
||||
Gérer les frais de livraison
|
||||
Faire un refactoring des modèles
|
||||
Repasser sur les tests
|
||||
|
||||
Rendre plus visible l'action de modifier une commande
|
||||
Ajouter la trame (agenda d’une distribution) dans la boite à outil du coordinateur
|
||||
|
||||
Explorer la possibilité de faire des ajustements automatiques
|
||||
Ajouter une note explicative pour la répartition des chèques
|
||||
Éditer directement depuis la vue « distribution »
|
|
@ -439,6 +439,11 @@ class Delivery(PersistedBase):
|
|||
product = self.get_product(ref)
|
||||
if product:
|
||||
self.products.remove(product)
|
||||
|
||||
for order in self.orders.values():
|
||||
if product.ref in order.products:
|
||||
order.products.pop(product.ref)
|
||||
|
||||
return product
|
||||
|
||||
def total_for_producer(self, producer, person=None, include_shipping=True):
|
||||
|
|
|
@ -3,11 +3,22 @@
|
|||
{% block toplink %}<a href="/distribution/{{ delivery.id }}/{{ producer.id }}/éditer">↶ Retourner aux produits de {{ producer.name }}</a>{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
{% if product.ref %}
|
||||
<h1>Modifier le produit « {{ product.name }} »</h1>
|
||||
{% else %}
|
||||
<h1>{{ producer.name }} : Nouveau produit</h1>
|
||||
{% endif %}
|
||||
|
||||
<div class="header">
|
||||
{% if product.ref %}
|
||||
<h1>Modifier le produit « {{ product.name }} »</h1>
|
||||
{% else %}
|
||||
<h1>{{ producer.name }} : Nouveau produit</h1>
|
||||
{% 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>
|
||||
|
||||
<form method="post">
|
||||
<label>
|
||||
<p>Nom</p>
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
<h1>Ajouter un⋅e producteur⋅rice</h1>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if producer.needs_price_update(delivery) %}
|
||||
{% if producer and producer.needs_price_update(delivery) %}
|
||||
<p class="notification info">Les prix pour {{ producer.name }} ont besoin d'être validés.</p>
|
||||
{% endif %}
|
||||
<form method="post">
|
||||
|
@ -36,7 +36,7 @@
|
|||
{% else %}
|
||||
<label>
|
||||
<p>Nom</p>
|
||||
<input type="text" name="name" value="{{ proneeds_price_updateducer.name or '' }}">
|
||||
<input type="text" name="name" value="{{ producer.name or '' }}">
|
||||
</label>
|
||||
{% endif %}
|
||||
<label>
|
||||
|
|
|
@ -123,8 +123,7 @@ async def create_producer(request, response, delivery_id):
|
|||
response.redirect = f"/distribution/{delivery.id}/{producer.id}/éditer"
|
||||
|
||||
response.html(
|
||||
"products/edit_producer.html",
|
||||
{"delivery": delivery, "producer": producer or None},
|
||||
"products/edit_producer.html", {"delivery": delivery, "producer": producer}
|
||||
)
|
||||
|
||||
|
||||
|
@ -164,7 +163,7 @@ async def edit_product(request, response, delivery_id, producer_id, product_ref)
|
|||
|
||||
|
||||
@app.route("/distribution/{delivery_id}/{producer_id}/valider-prix", methods=["GET"])
|
||||
async def mark_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)
|
||||
producer = delivery.producers.get(producer_id)
|
||||
|
||||
|
@ -180,7 +179,7 @@ async def mark_prices_as_ok(request, response, delivery_id, producer_id):
|
|||
|
||||
|
||||
@app.route("/distribution/{delivery_id}/valider-prix", methods=["GET"])
|
||||
async def mark_prices_as_ok(request, response, delivery_id):
|
||||
async def mark_all_prices_as_ok(request, response, delivery_id):
|
||||
delivery = Delivery.load(delivery_id)
|
||||
|
||||
for product in delivery.products:
|
||||
|
|
Loading…
Reference in a new issue