add note to grouped order orga

This commit is contained in:
Laetitia Getti 2023-07-24 17:48:39 +02:00
parent a6189e9bd6
commit 5c7bcac49b
7 changed files with 67 additions and 8 deletions

View file

@ -0,0 +1,28 @@
# Generated by Django 4.2.1 on 2023-07-24 14:58
from django.db import migrations, models
import django.utils.timezone
class Migration(migrations.Migration):
dependencies = [
("order", "0022_alter_groupedorder_unique_together"),
]
operations = [
migrations.AddField(
model_name="order",
name="created_date",
field=models.DateTimeField(
auto_now_add=True,
default=django.utils.timezone.now,
verbose_name="Date de la commande",
),
preserve_default=False,
),
migrations.AddField(
model_name="order",
name="note",
field=models.TextField(blank=True, max_length=200, null=True),
),
]

View file

@ -90,6 +90,8 @@ class Order(models.Model):
author = models.ForeignKey(OrderAuthor, on_delete=models.CASCADE)
articles_nb = models.PositiveIntegerField(default=0)
price = models.DecimalField(max_digits=10, decimal_places=2, default=0)
created_date = models.DateTimeField("Date de la commande", auto_now_add=True)
note = models.TextField(max_length=200, null=True, blank=True)
def compute_order_articles_nb(self):
"""Computes the number of articles in this order"""

View file

@ -134,6 +134,8 @@
<input id="email" type="email" placeholder="exemple@mail.fr" name="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>
<div class="buttons">
<button type="submit" value="Order" class="button is-primary">

View file

@ -153,9 +153,12 @@
<td>{{ order.author }}</td>
<td>{{ order.price }} €</td>
<td><a href="mailto:{{ order.author.email }}">{{ order.author.email }}</a></td>
<td><button class="button is-info is-small js-modal-trigger" data-target="order-detail-{{ order.id }}">
<td>
<button class="button is-info is-small js-modal-trigger" data-target="order-detail-{{ order.id }}">
Voir
</button></td>
</button>
{% if order.note %}<i class="fa fa-comment ml-3" title="{{ order.note }}" aria-hidden="true"></i>{% endif %}
</td>
</tr>
<!-- Order detail modal -->
@ -169,10 +172,20 @@
<button class="delete" aria-label="close"></button>
</header>
<section class="modal-card-body">
<div class="columns">
<div class="column">
{% for item in order.ordered_items.all %}
{{ item.nb }} {{ item.item.name }}
{{ item.nb }} x {{ item.item.name }}
<hr class="mb-0 mt-1">
{% endfor %}
</div>
{% if order.note %}
<div class="column is-4">
<p class="mini-title">Note à l'organisateur·ice</p>
<p>{{ order.note }}</p>
</div>
</div>
{% endif %}
</section>
<footer class="modal-card-foot">
<p class="mini-title">Total à payer</p>

View file

@ -15,7 +15,7 @@
<p><strong>Votre commande</strong></p>
<ul>
{% for item in order.ordered_items.all %}
<li>{{ item.nb }} {{ item.item }} : {{ item.get_price }} €</li>
<li>{{ item.nb }} x {{ item.item }} : {{ item.get_price }} €</li>
{% endfor %}
</ul>
<p>Prix total de la commande : <strong>{{ order.price }} €</strong>

View file

@ -286,6 +286,7 @@ class TestGroupedOrderDetailView:
"last_name": "Nom",
"phone": "0645632569",
"email": "test@mail.fr",
"note": "note test",
},
)
assert response.status_code == 302
@ -302,6 +303,8 @@ class TestGroupedOrderDetailView:
assert models.OrderAuthor.objects.first().first_name == "Prénom"
assert models.OrderAuthor.objects.first().email == "test@mail.fr"
assert models.OrderAuthor.objects.first().phone == "0645632569"
assert models.Order.objects.first().note == "note test"
assert models.Order.objects.first().created_date.date() == timezone.now().date()
assert item.ordered_nb == 4
assert item2.ordered_nb == 1
order = models.Order.objects.first()
@ -352,6 +355,7 @@ class TestGroupedOrderDetailView:
"last_name": "Nom",
"phone": "0645632569",
"email": "test@mail.fr",
"note": "",
},
)
assert response.status_code == 200
@ -454,6 +458,7 @@ class TestGroupedOrderDetailView:
"last_name": "Nom",
"phone": "0645632569",
"email": "test@mail.fr",
"note": "",
},
)
assert response.status_code == 200
@ -500,6 +505,7 @@ class TestGroupedOrderDetailView:
"last_name": "Nom",
"phone": "0645632569",
"email": "test@mail.fr",
"note": "",
},
)
assert response.status_code == 200
@ -546,6 +552,7 @@ class TestGroupedOrderDetailView:
"last_name": "Nom",
"phone": "0645632569",
"email": "test@mail.fr",
"note": "",
},
)
assert response.status_code == 302 # success : first order
@ -557,6 +564,7 @@ class TestGroupedOrderDetailView:
"last_name": "Nom",
"phone": "0645632569",
"email": "test@mail.fr",
"note": "",
},
)
assert response.status_code == 200 # error
@ -611,6 +619,7 @@ class TestGroupedOrderDetailView:
"last_name": "Nom",
"phone": "0645632569",
"email": "test@mail.fr",
"note": "",
},
)
assert response.status_code == 302
@ -673,6 +682,7 @@ class TestGroupedOrderOverview:
"last_name": "Nom",
"phone": "0645632569",
"email": "test@mail.fr",
"note": "",
},
)
response = client_log.get(overview_url)
@ -817,6 +827,7 @@ class TestOrder:
"last_name": "Nom",
"phone": "0645632569",
"email": "test@mail.fr",
"note": "",
},
)
assert response.status_code == 403
@ -864,6 +875,7 @@ class TestOrder:
"last_name": "Nom",
"phone": "0645632569",
"email": "test@mail.fr",
"note": "",
},
)
assert response.status_code == 200
@ -922,6 +934,7 @@ class TestOrder:
"last_name": "Nom",
"phone": "0645632569",
"email": "test@mail.fr",
"note": "",
},
)
assert response.status_code == 302

View file

@ -35,10 +35,11 @@ def order(request, grouped_order_id):
last_name = request.POST["last_name"]
phone = request.POST["phone"]
email = request.POST["email"]
note = request.POST["note"]
author = OrderAuthor.objects.create(
first_name=first_name, last_name=last_name, email=email, phone=phone
)
order = Order.objects.create(author=author, grouped_order=grouped_order)
order = Order.objects.create(author=author, grouped_order=grouped_order, note=note)
# add items to the order
error_message = None