confirmation page after a user orders

This commit is contained in:
Laetitia Getti 2023-05-15 11:16:29 +02:00
parent 27dd27227b
commit 49df3498d9
5 changed files with 52 additions and 4 deletions

View file

@ -24,7 +24,7 @@
<ul> <ul>
{% for order in grouped_order.order_set.all %} {% for order in grouped_order.order_set.all %}
<li> <li>
{{ order }} : {{ order.articles_nb }} {{ order }} : {{ order.articles_nb }} : order_id = {{ order.id }}
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>

View file

@ -0,0 +1,35 @@
{% extends 'base.html' %}
{% block title %}Votre commande{% endblock %}
{% block content_title %}Commande confirmée !{% endblock %}
{% block content %}
<div class="box">
<p class="title">Merci !</p>
<p>Votre participation à la commande groupée "{{ order.grouped_order }}" a bien été confirmée !
Dans une prochaine version de la Chariotte, vous recevrez un mail de confirmation :)</p>
<p>En attendant, vous pouvez bien noter ces infos :</p>
<p><strong>Votre commande</strong></p>
<ul>
{% for item in order.ordered_items.all %}
{% if item.nb > 0 %}
<li>{{ item.nb }} {{ item.item }}</li>
{% endif %}
{% endfor %}
</ul>
<p>Rendez-vous le <strong>{{ order.grouped_order.delivery_date }}</strong> à <strong>{{ order.grouped_order.place }}</strong> pour récupérer vos produits !</p>
<p>Pour toute question, vous pouvez contacter l'organisateur·ice de la commande, <strong>{{ order.grouped_order.orga }}</strong> :
<a href="mailto:{{ order.grouped_order.orga.username }}">Envoyer un mail</a></p>
<div class="buttons">
<a class="button is-primary" href="{% url 'order:grouped_order_detail' order.grouped_order.pk %}">Retour à la page de commande</a>
{% if user == order.grouped_order.orga %}
<a class="button is-primary is-light" href="{% url 'order:grouped_order_overview' order.grouped_order.pk %}">Page de gestion de la commande</a>
{% endif %}
</div>
</div>
{% endblock %}

View file

@ -249,10 +249,12 @@ class TestGroupedOrderDetailView:
}, },
) )
assert response.status_code == 302 assert response.status_code == 302
order = Order.objects.get(grouped_order=grouped_order.pk)
assert response.url == reverse( assert response.url == reverse(
"order:grouped_order_overview", "order:order_confirm",
kwargs={ kwargs={
"pk": grouped_order.pk, "grouped_order_id": grouped_order.pk,
"pk": order.pk,
}, },
) )
item.refresh_from_db() item.refresh_from_db()

View file

@ -14,6 +14,11 @@ urlpatterns = [
name="grouped_order_overview", name="grouped_order_overview",
), ),
path("<int:grouped_order_id>/commander/", views.order, name="order"), path("<int:grouped_order_id>/commander/", views.order, name="order"),
path(
"<int:grouped_order_id>/<int:pk>/confirmation/",
views.OrderDetailView.as_view(),
name="order_confirm",
),
path("creer", views.GroupedOrderCreateView.as_view(), name="create_grouped_order"), path("creer", views.GroupedOrderCreateView.as_view(), name="create_grouped_order"),
path( path(
"<int:pk>/gerer-produits", "<int:pk>/gerer-produits",

View file

@ -156,7 +156,7 @@ def order(request, grouped_order_id):
# with POST data. This prevents data from being posted twice if a # with POST data. This prevents data from being posted twice if a
# user hits the Back button. # user hits the Back button.
return HttpResponseRedirect( return HttpResponseRedirect(
reverse("order:grouped_order_overview", args=(grouped_order.pk,)) reverse("order:order_confirm", args=(grouped_order.pk, order.pk))
) )
@ -176,3 +176,9 @@ def compute_order_articles_nb(order):
articles_nb += ord_item.nb articles_nb += ord_item.nb
order.articles_nb = articles_nb order.articles_nb = articles_nb
order.save() order.save()
class OrderDetailView(generic.DetailView):
"""Confirmation page after a user orders"""
model = Order