sort items by name

This commit is contained in:
Laetitia Getti 2023-07-25 10:55:54 +02:00
parent d1b58ea5b7
commit c8811f93d0
4 changed files with 49 additions and 3 deletions

View file

@ -0,0 +1,16 @@
# Generated by Django 4.2.1 on 2023-07-25 08:20
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("order", "0023_order_created_date_order_note"),
]
operations = [
migrations.AlterModelOptions(
name="item",
options={"ordering": ["name"]},
),
]

View file

@ -146,6 +146,9 @@ class Item(models.Model):
def __str__(self): # pragma: no cover
return f"{self.name} ({self.price} €)"
class Meta:
ordering = ["name"]
class OrderedItem(models.Model):
"""Item in one specific Order, and the number of articles"""

View file

@ -27,8 +27,8 @@
<form method="post" action="{{ create_item_url }}">
{% csrf_token %}
<td><input name="name" maxlength="100" placeholder="Nom du produit" autofocus required></input></td>
<td><input type="number" min="0" step="0.01" name="price" size="2" placeholder="5,40" required></input></td>
<td><input type="number" min="0" name="max_limit" size="2" placeholder="42"></input></td>
<td><input type="number" min="0" step="0.01" name="price" size="4" placeholder="5,40" required></input></td>
<td><input type="number" min="0" name="max_limit" size="4" placeholder="42"></input></td>
<td><button type="submit" class="button is-primary">
<i class="fa fa-plus-square mr-3" aria-hidden="true"></i>Ajouter
</button></td>

View file

@ -4,7 +4,7 @@ from django.contrib import auth
from django.urls import reverse
from django.utils import timezone
from la_chariotte.order.models import GroupedOrder
from la_chariotte.order.models import GroupedOrder, Item
class TestGroupedOrderModel:
@ -123,3 +123,30 @@ class TestGroupedOrderModel:
)
"La date de livraison ne doit pas être dans le passé" in response.content.decode()
assert GroupedOrder.objects.count() == 0
class TestItemModel:
"""Tests for Item model"""
def test_items_sorted_by_name(self, client_log):
"""On the grouped order detail view and other views where items are listed, they appear in alphabetical order"""
date = timezone.now() + datetime.timedelta(days=3)
grouped_order = GroupedOrder.objects.create(
name="test",
orga=auth.get_user(client_log),
delivery_date=date.date(),
deadline=date,
)
item = Item.objects.create(
name="atest item 1", grouped_order=grouped_order, price=1, max_limit=20
)
item2 = Item.objects.create(
name="ctest item 2", grouped_order=grouped_order, price=5
)
item3 = Item.objects.create(
name="btest item 3", grouped_order=grouped_order, price=5
)
assert grouped_order.item_set.first() == item
assert grouped_order.item_set.all()[1] == item3
assert grouped_order.item_set.all()[2] == item2