mirror of
https://framagit.org/la-chariotte/la-chariotte.git
synced 2025-05-01 03:12:26 +02:00
values remain in the form when an error is raised
This commit is contained in:
parent
5c7bcac49b
commit
d1b58ea5b7
3 changed files with 30 additions and 12 deletions
|
@ -79,7 +79,7 @@
|
|||
{% csrf_token %}
|
||||
<td>{{ item.name }}</td>
|
||||
<td>{{ item.price }} €</td>
|
||||
<td><input name="quantity_{{ item.id }}" size="2" type="number" value="0" min="0" {% if item.get_remaining_nb == 0 %}disabled{% endif %}></input>
|
||||
<td><input name="quantity_{{ item.id }}" size="4" type="number" value="0" min="0" {% if item.get_remaining_nb == 0 %}disabled{% endif %}></input>
|
||||
{% if item.get_remaining_nb is not null %}
|
||||
<span class="is-italic mini-title">
|
||||
{% if item.get_remaining_nb == 0 %}Produit épuisé
|
||||
|
@ -104,7 +104,7 @@
|
|||
<p>{{ item.price }} €</p>
|
||||
</div>
|
||||
<div class="card-footer-item">
|
||||
<td><input name="quantity_{{ item.id }}" size="2" type="number" value="0" min="0" {% if item.get_remaining_nb == 0 %}disabled{% endif %}></input></td>
|
||||
<td><input name="quantity_{{ item.id }}" size="4" type="number" value="0" min="0" {% if item.get_remaining_nb == 0 %}disabled{% endif %}></input></td>
|
||||
{% if item.get_remaining_nb is not null %}
|
||||
<span class="is-italic mini-title">
|
||||
{% if item.get_remaining_nb == 0 %}Produit épuisé
|
||||
|
@ -118,24 +118,26 @@
|
|||
</div>
|
||||
|
||||
{% if error_message %}<p class="has-text-danger">{{ error_message }}</p>{% endif %}
|
||||
{% comment %} The value attribute is used when the form is redered with error messages,
|
||||
in order not to loose entered values {% endcomment %}
|
||||
<br>
|
||||
<p class="subtitle">Vos informations</p>
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<p><label for="first_name">Prénom : </label>
|
||||
<input id="first_name" type="text" name="first_name" placeholder="Votre prénom" required></p>
|
||||
<input id="first_name" type="text" name="first_name" placeholder="Votre prénom" value="{{ first_name }}" required></p>
|
||||
<p><label for="first_name">Nom : </label>
|
||||
<input id="last_name" type="text" name="last_name" placeholder="Votre nom" required></p>
|
||||
<input id="last_name" type="text" name="last_name" placeholder="Votre nom" value="{{ last_name }}" required></p>
|
||||
</div>
|
||||
<div class="column">
|
||||
<p><label for="phone">Numéro de téléphone :</label>
|
||||
<input id="phone" type="text" placeholder="0601020304" name="phone" required></p>
|
||||
<input id="phone" type="text" placeholder="0601020304" name="phone" value="{{ phone }}" required></p>
|
||||
<p><label for="email">Adresse mail : </label>
|
||||
<input id="email" type="email" placeholder="exemple@mail.fr" name="email" required></p>
|
||||
<input id="email" type="email" placeholder="exemple@mail.fr" name="email" value="{{ email }}" required></p>
|
||||
</div>
|
||||
</div>
|
||||
<p><label for="phone">Note à l'organisateur·ice</label>
|
||||
<textarea id="note" rows=3 placeholder="(facultatif)" name="note"></textarea></p>
|
||||
<p><label for="note">Note à l'organisateur·ice</label>
|
||||
<textarea id="note" rows=3 placeholder="(facultatif)" name="note">{{ note }}</textarea></p>
|
||||
|
||||
<div class="buttons">
|
||||
<button type="submit" value="Order" class="button is-primary">
|
||||
|
|
|
@ -319,7 +319,7 @@ class TestGroupedOrderDetailView:
|
|||
"""
|
||||
From the OrderDetailView, we order without having changed any item quantity.
|
||||
An error is raised.
|
||||
The order is deleted
|
||||
The order is deleted, and the form is displayed without deleting entered values
|
||||
"""
|
||||
grouped_order = create_grouped_order(
|
||||
days_before_delivery_date=5,
|
||||
|
@ -351,11 +351,11 @@ class TestGroupedOrderDetailView:
|
|||
order_url,
|
||||
{
|
||||
f"quantity_{item.pk}": [0, 0],
|
||||
"first_name": "Prénom",
|
||||
"last_name": "Nom",
|
||||
"first_name": "Prénom test",
|
||||
"last_name": "Nom test",
|
||||
"phone": "0645632569",
|
||||
"email": "test@mail.fr",
|
||||
"note": "",
|
||||
"note": "test note",
|
||||
},
|
||||
)
|
||||
assert response.status_code == 200
|
||||
|
@ -363,6 +363,12 @@ class TestGroupedOrderDetailView:
|
|||
response.context["error_message"]
|
||||
== "Veuillez commander au moins un produit"
|
||||
)
|
||||
assert response.context["first_name"] == "Prénom test"
|
||||
assert "Prénom test" in response.content.decode()
|
||||
assert "Nom test" in response.content.decode()
|
||||
assert "0645632569" in response.content.decode()
|
||||
assert "test@mail.fr" in response.content.decode()
|
||||
assert "test note" in response.content.decode()
|
||||
assert not models.Order.objects.first()
|
||||
assert not models.OrderAuthor.objects.first()
|
||||
|
||||
|
|
|
@ -64,6 +64,11 @@ def order(request, grouped_order_id):
|
|||
{
|
||||
"grouped_order": grouped_order,
|
||||
"error_message": error_message,
|
||||
"first_name": author.first_name,
|
||||
"last_name": author.last_name,
|
||||
"phone": author.phone,
|
||||
"email": author.email,
|
||||
"note": order.note,
|
||||
},
|
||||
)
|
||||
|
||||
|
@ -80,6 +85,11 @@ def order(request, grouped_order_id):
|
|||
{
|
||||
"grouped_order": grouped_order,
|
||||
"error_message": error_message,
|
||||
"first_name": author.first_name,
|
||||
"last_name": author.last_name,
|
||||
"phone": author.phone,
|
||||
"email": author.email,
|
||||
"note": order.note,
|
||||
},
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in a new issue