mirror of
https://framagit.org/la-chariotte/la-chariotte.git
synced 2025-05-02 03:42:26 +02:00
only display non null values and sort with alphabetical order
This commit is contained in:
parent
7d1fd312f4
commit
7a65f189fd
3 changed files with 37 additions and 10 deletions
|
@ -95,7 +95,9 @@
|
||||||
</td>
|
</td>
|
||||||
{% for ordered_item in ordered_items %}
|
{% for ordered_item in ordered_items %}
|
||||||
<td>
|
<td>
|
||||||
|
{% if ordered_item > 0 %}
|
||||||
{{ ordered_item }}
|
{{ ordered_item }}
|
||||||
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<td>
|
<td>
|
||||||
|
|
|
@ -27,15 +27,30 @@ def order_items_in_grouped_order(grouped_order):
|
||||||
"""Creates 2 OrderedItems and orders in the given grouped order. Returns the order"""
|
"""Creates 2 OrderedItems and orders in the given grouped order. Returns the order"""
|
||||||
item_1 = grouped_order.item_set.create(name="test item", price="2")
|
item_1 = grouped_order.item_set.create(name="test item", price="2")
|
||||||
item_2 = grouped_order.item_set.create(name="test item 2", price="9")
|
item_2 = grouped_order.item_set.create(name="test item 2", price="9")
|
||||||
author = models.OrderAuthor.objects.create(
|
author_1 = models.OrderAuthor.objects.create(
|
||||||
first_name="bob", last_name="lescargot", phone="000", email="bob@escargot.fr"
|
first_name="bob", last_name="lescargot", phone="000", email="bob@escargot.fr"
|
||||||
)
|
)
|
||||||
order = grouped_order.order_set.create(author=author)
|
author_2 = models.OrderAuthor.objects.create(
|
||||||
|
first_name="bob", last_name="alescargot", phone="000", email="bob2@escargot.fr"
|
||||||
|
)
|
||||||
|
author_3 = models.OrderAuthor.objects.create(
|
||||||
|
first_name="bobby",
|
||||||
|
last_name="alescargot",
|
||||||
|
phone="000",
|
||||||
|
email="bob3@escargot.fr",
|
||||||
|
)
|
||||||
|
order = grouped_order.order_set.create(author=author_1)
|
||||||
|
order_2 = grouped_order.order_set.create(author=author_2)
|
||||||
|
order_3 = grouped_order.order_set.create(author=author_3)
|
||||||
models.OrderedItem.objects.create(order=order, item=item_1, nb=3)
|
models.OrderedItem.objects.create(order=order, item=item_1, nb=3)
|
||||||
models.OrderedItem.objects.create(order=order, item=item_2, nb=2)
|
models.OrderedItem.objects.create(order=order, item=item_2, nb=2)
|
||||||
|
models.OrderedItem.objects.create(order=order_2, item=item_1, nb=1)
|
||||||
|
models.OrderedItem.objects.create(order=order_3, item=item_2, nb=1)
|
||||||
item_1.compute_ordered_nb()
|
item_1.compute_ordered_nb()
|
||||||
item_2.compute_ordered_nb()
|
item_2.compute_ordered_nb()
|
||||||
order.compute_order_price()
|
order.compute_order_price()
|
||||||
|
order_2.compute_order_price()
|
||||||
|
order_3.compute_order_price()
|
||||||
grouped_order.compute_total_price()
|
grouped_order.compute_total_price()
|
||||||
grouped_order.save()
|
grouped_order.save()
|
||||||
return order
|
return order
|
||||||
|
@ -1217,8 +1232,8 @@ class TestGroupedOrderDeleteView:
|
||||||
order = order_items_in_grouped_order(grouped_order)
|
order = order_items_in_grouped_order(grouped_order)
|
||||||
|
|
||||||
assert models.Item.objects.count() == 2
|
assert models.Item.objects.count() == 2
|
||||||
assert models.OrderedItem.objects.count() == 2
|
assert models.OrderedItem.objects.count() == 4
|
||||||
assert models.OrderAuthor.objects.count() == 1
|
assert models.OrderAuthor.objects.count() == 3
|
||||||
|
|
||||||
# get the delete view
|
# get the delete view
|
||||||
delete_view_url = reverse(
|
delete_view_url = reverse(
|
||||||
|
@ -1302,9 +1317,9 @@ class TestGroupedOrderDuplicateView:
|
||||||
assert models.GroupedOrder.objects.count() == 1
|
assert models.GroupedOrder.objects.count() == 1
|
||||||
order = order_items_in_grouped_order(grouped_order)
|
order = order_items_in_grouped_order(grouped_order)
|
||||||
assert models.Item.objects.count() == 2
|
assert models.Item.objects.count() == 2
|
||||||
assert models.OrderedItem.objects.count() == 2
|
assert models.OrderedItem.objects.count() == 4
|
||||||
assert models.OrderAuthor.objects.count() == 1
|
assert models.OrderAuthor.objects.count() == 3
|
||||||
assert grouped_order.item_set.first().ordered_nb == 3
|
assert grouped_order.item_set.first().ordered_nb == 4
|
||||||
|
|
||||||
# duplicate
|
# duplicate
|
||||||
duplicate_view_url = reverse(
|
duplicate_view_url = reverse(
|
||||||
|
@ -1330,7 +1345,7 @@ class TestGroupedOrderDuplicateView:
|
||||||
)
|
)
|
||||||
|
|
||||||
# The initial grouped order did not change
|
# The initial grouped order did not change
|
||||||
assert grouped_order.item_set.first().ordered_nb == 3
|
assert grouped_order.item_set.first().ordered_nb == 4
|
||||||
|
|
||||||
def test_duplicate_grouped_order__not_orga(self, client_log, other_user):
|
def test_duplicate_grouped_order__not_orga(self, client_log, other_user):
|
||||||
"""A user that is not orga gets the duplicate view. They get a 403 error."""
|
"""A user that is not orga gets the duplicate view. They get a 403 error."""
|
||||||
|
@ -1508,7 +1523,15 @@ class TestGroupedOrderSheetView:
|
||||||
assert response.context["grouped_order"] == grouped_order
|
assert response.context["grouped_order"] == grouped_order
|
||||||
assert response.context["items"].count() == 2
|
assert response.context["items"].count() == 2
|
||||||
assert response.context["orders_dict"][order] == [3, 2]
|
assert response.context["orders_dict"][order] == [3, 2]
|
||||||
assert response.context["grouped_order"].total_price == 24
|
assert response.context["grouped_order"].total_price == 35
|
||||||
|
|
||||||
|
# test if the orders are sorted by last names
|
||||||
|
orders = list(response.context["orders_dict"].keys())
|
||||||
|
assert orders[0].author.last_name == "alescargot"
|
||||||
|
assert orders[0].author.first_name == "bob"
|
||||||
|
assert orders[1].author.last_name == "alescargot"
|
||||||
|
assert orders[1].author.first_name == "bobby"
|
||||||
|
assert orders[2].author.last_name == "lescargot"
|
||||||
|
|
||||||
|
|
||||||
class TestExportGroupedOrderEmailAddressesToCSVView:
|
class TestExportGroupedOrderEmailAddressesToCSVView:
|
||||||
|
|
|
@ -240,7 +240,9 @@ class GroupedOrderSheetView(UserPassesTestMixin, generic.DetailView):
|
||||||
|
|
||||||
# Get content of orders as a dict {order : [ordered_nb for item 1, ordered_nb for item 2, ...]}
|
# Get content of orders as a dict {order : [ordered_nb for item 1, ordered_nb for item 2, ...]}
|
||||||
orders_dict = {}
|
orders_dict = {}
|
||||||
for order in grouped_order.order_set.all():
|
for order in grouped_order.order_set.all().order_by(
|
||||||
|
"author__last_name", "author__first_name"
|
||||||
|
):
|
||||||
ordered_values = [] # ordered_values list as value of the dict
|
ordered_values = [] # ordered_values list as value of the dict
|
||||||
for item in items: # items that has actually been ordered
|
for item in items: # items that has actually been ordered
|
||||||
# find the ordered nb of this item in this order
|
# find the ordered nb of this item in this order
|
||||||
|
|
Loading…
Reference in a new issue