From 34d2db862361418ba438a3f1485156c877a4e460 Mon Sep 17 00:00:00 2001 From: xmeunier Date: Fri, 18 Oct 2024 13:06:27 +0200 Subject: [PATCH] Add summed nb of ordered items of each article in a grouped order --- la_chariotte/order/models.py | 6 ++++++ .../order/templates/order/grouped_order_overview.html | 2 +- la_chariotte/order/views/grouped_order.py | 1 + la_chariotte/tests/test_order_views_grouped_order.py | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/la_chariotte/order/models.py b/la_chariotte/order/models.py index 93c0ea3..55dd867 100644 --- a/la_chariotte/order/models.py +++ b/la_chariotte/order/models.py @@ -63,6 +63,12 @@ class GroupedOrder(models.Model): for item in self.item_set.all(): item.compute_ordered_nb() + def get_total_ordered_items(self): + total_nb = 0 + for item in self.item_set.all(): + total_nb += item.ordered_nb + return total_nb + def is_open(self): return self.deadline >= timezone.now() diff --git a/la_chariotte/order/templates/order/grouped_order_overview.html b/la_chariotte/order/templates/order/grouped_order_overview.html index 67077f2..87ebaf0 100644 --- a/la_chariotte/order/templates/order/grouped_order_overview.html +++ b/la_chariotte/order/templates/order/grouped_order_overview.html @@ -126,7 +126,7 @@ Total - + {{ total_ordered_items }} {{ grouped_order.total_price }} € diff --git a/la_chariotte/order/views/grouped_order.py b/la_chariotte/order/views/grouped_order.py index 246a9ea..f2c454b 100644 --- a/la_chariotte/order/views/grouped_order.py +++ b/la_chariotte/order/views/grouped_order.py @@ -167,6 +167,7 @@ class GroupedOrderOverview(UserIsOrgaMixin, generic.DetailView): order__in=self.get_object().order_set.all() ) context["emails_list"] = set(participant.email for participant in participants) + context["total_ordered_items"] = self.get_object().get_total_ordered_items() return context diff --git a/la_chariotte/tests/test_order_views_grouped_order.py b/la_chariotte/tests/test_order_views_grouped_order.py index fa70634..cfce0c4 100644 --- a/la_chariotte/tests/test_order_views_grouped_order.py +++ b/la_chariotte/tests/test_order_views_grouped_order.py @@ -706,6 +706,7 @@ class TestGroupedOrderOverview: assert response.status_code == 200 assert "test item" in response.content.decode() assert {"test@mail.fr"} == response.context["emails_list"] + assert 4 == response.context["total_ordered_items"] assert "gr order test" in response.content.decode() item.refresh_from_db() assert item.get_total_price() == 8