add price and max limit fields for items

This commit is contained in:
Laetitia Getti 2023-05-09 15:58:21 +02:00
parent 417967095f
commit f10ab88dc2
5 changed files with 40 additions and 4 deletions

View file

@ -40,7 +40,7 @@ class GroupedOrderForm(ModelForm):
class ItemCreateForm(ModelForm):
class Meta:
model = Item
fields = ["name"]
fields = ["name", "price", "max_limit"]
def __init__(self, *args, **kwargs):
self.grouped_order = kwargs.pop("grouped_order") # type: GroupedOrder

View file

@ -0,0 +1,23 @@
# Generated by Django 4.2 on 2023-05-09 13:44
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("order", "0013_alter_groupedorder_unique_together"),
]
operations = [
migrations.AddField(
model_name="item",
name="max_limit",
field=models.PositiveSmallIntegerField(blank=True, null=True),
),
migrations.AddField(
model_name="item",
name="price",
field=models.DecimalField(decimal_places=2, default=1, max_digits=10),
preserve_default=False,
),
]

View file

@ -67,13 +67,16 @@ class Item(models.Model):
grouped_order = models.ForeignKey(
GroupedOrder, on_delete=models.CASCADE
) # à transformer en manytomany quand il y aura un catalogue
price = models.DecimalField(max_digits=10, decimal_places=2)
max_limit = models.PositiveSmallIntegerField(null=True, blank=True)
ordered_nb = models.IntegerField(default=0)
def get_absolute_url(self):
return reverse("order:manage_items", kwargs={"pk": self.grouped_order.pk})
def __str__(self): # pragma: no cover
return f"{self.name} dans la commande groupée {self.grouped_order.pk}"
return f"{self.name} ({self.price} €)"
class OrderedItem(models.Model):

View file

@ -16,6 +16,8 @@
<thead>
<tr>
<th>Nom</th>
<th>Prix unitaire</th>
<th>Quantité max (optionnel)</th>
<th>Action</th>
</tr>
</thead>
@ -24,11 +26,15 @@
<form method="post" action="{{ create_item_url }}">
{% csrf_token %}
<td><input name="name" maxlength="100" placeholder="Nom du produit" required></input></td>
<td><input name="price" maxlength="50" placeholder="5,40" required></input></td>
<td><input name="max_limit" maxlength="50" placeholder="42"></input></td>
<td><button type="submit" class="button is-primary">Ajouter</button></td>
</tr>
{% for item in item_list %}
<tr>
<td>{{ item.name }}</td>
<td>{{ item.price }}</td>
<td>{{ item.max_limit }}</td>
<td>Supprimer (pas possible pour l'instant)</td>
</tr>
{% endfor %}

View file

@ -214,7 +214,9 @@ class TestGroupedOrderDetailView:
name="gr order test",
orga_user=other_user,
)
item = Item.objects.create(name="test item", grouped_order=grouped_order)
item = Item.objects.create(
name="test item", grouped_order=grouped_order, price=1
)
detail_url = reverse(
"order:grouped_order_detail",
kwargs={
@ -400,7 +402,9 @@ class TestItemCreateView:
"pk": grouped_order.pk,
},
)
response = client_log.post(create_item_view_url, {"name": "titre item"})
response = client_log.post(
create_item_view_url, {"name": "titre item", "price": 2}
)
assert response.status_code == 302
assert response.url == reverse(
"order:manage_items",