mirror of
https://framagit.org/la-chariotte/la-chariotte.git
synced 2025-05-02 11:52:27 +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 %}
|
{% csrf_token %}
|
||||||
<td>{{ item.name }}</td>
|
<td>{{ item.name }}</td>
|
||||||
<td>{{ item.price }} €</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 %}
|
{% if item.get_remaining_nb is not null %}
|
||||||
<span class="is-italic mini-title">
|
<span class="is-italic mini-title">
|
||||||
{% if item.get_remaining_nb == 0 %}Produit épuisé
|
{% if item.get_remaining_nb == 0 %}Produit épuisé
|
||||||
|
@ -104,7 +104,7 @@
|
||||||
<p>{{ item.price }} €</p>
|
<p>{{ item.price }} €</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer-item">
|
<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 %}
|
{% if item.get_remaining_nb is not null %}
|
||||||
<span class="is-italic mini-title">
|
<span class="is-italic mini-title">
|
||||||
{% if item.get_remaining_nb == 0 %}Produit épuisé
|
{% if item.get_remaining_nb == 0 %}Produit épuisé
|
||||||
|
@ -118,24 +118,26 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if error_message %}<p class="has-text-danger">{{ error_message }}</p>{% endif %}
|
{% 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>
|
<br>
|
||||||
<p class="subtitle">Vos informations</p>
|
<p class="subtitle">Vos informations</p>
|
||||||
<div class="columns">
|
<div class="columns">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<p><label for="first_name">Prénom : </label>
|
<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>
|
<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>
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<p><label for="phone">Numéro de téléphone :</label>
|
<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>
|
<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>
|
||||||
</div>
|
</div>
|
||||||
<p><label for="phone">Note à l'organisateur·ice</label>
|
<p><label for="note">Note à l'organisateur·ice</label>
|
||||||
<textarea id="note" rows=3 placeholder="(facultatif)" name="note"></textarea></p>
|
<textarea id="note" rows=3 placeholder="(facultatif)" name="note">{{ note }}</textarea></p>
|
||||||
|
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
<button type="submit" value="Order" class="button is-primary">
|
<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.
|
From the OrderDetailView, we order without having changed any item quantity.
|
||||||
An error is raised.
|
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(
|
grouped_order = create_grouped_order(
|
||||||
days_before_delivery_date=5,
|
days_before_delivery_date=5,
|
||||||
|
@ -351,11 +351,11 @@ class TestGroupedOrderDetailView:
|
||||||
order_url,
|
order_url,
|
||||||
{
|
{
|
||||||
f"quantity_{item.pk}": [0, 0],
|
f"quantity_{item.pk}": [0, 0],
|
||||||
"first_name": "Prénom",
|
"first_name": "Prénom test",
|
||||||
"last_name": "Nom",
|
"last_name": "Nom test",
|
||||||
"phone": "0645632569",
|
"phone": "0645632569",
|
||||||
"email": "test@mail.fr",
|
"email": "test@mail.fr",
|
||||||
"note": "",
|
"note": "test note",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
|
@ -363,6 +363,12 @@ class TestGroupedOrderDetailView:
|
||||||
response.context["error_message"]
|
response.context["error_message"]
|
||||||
== "Veuillez commander au moins un produit"
|
== "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.Order.objects.first()
|
||||||
assert not models.OrderAuthor.objects.first()
|
assert not models.OrderAuthor.objects.first()
|
||||||
|
|
||||||
|
|
|
@ -64,6 +64,11 @@ def order(request, grouped_order_id):
|
||||||
{
|
{
|
||||||
"grouped_order": grouped_order,
|
"grouped_order": grouped_order,
|
||||||
"error_message": error_message,
|
"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,
|
"grouped_order": grouped_order,
|
||||||
"error_message": error_message,
|
"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