mirror of
https://framagit.org/la-chariotte/la-chariotte.git
synced 2025-05-01 11:22:24 +02:00
sort items by name
This commit is contained in:
parent
d1b58ea5b7
commit
c8811f93d0
4 changed files with 49 additions and 3 deletions
16
la_chariotte/order/migrations/0024_alter_item_options.py
Normal file
16
la_chariotte/order/migrations/0024_alter_item_options.py
Normal 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"]},
|
||||
),
|
||||
]
|
|
@ -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"""
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue