From 4f016fed381aca274cec968cc598ed7fc68ab82e Mon Sep 17 00:00:00 2001 From: Ehouarn Date: Sun, 2 Nov 2025 18:28:27 +0100 Subject: [PATCH] 'Add all identical food' also for QRcode input --- apps/food/views.py | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/apps/food/views.py b/apps/food/views.py index 517142ff..3bb08a02 100644 --- a/apps/food/views.py +++ b/apps/food/views.py @@ -297,29 +297,26 @@ class ManageIngredientsView(LoginRequiredMixin, UpdateView): self.object.ingredients.clear() for i in range(self.object.ingredients.all().count() + 1 + MAX_FORMS): prefix = 'form-' + str(i) + '-' + + ingredient = None if form.data[prefix + 'qrcode'] not in ['0', '']: ingredient = QRCode.objects.get(pk=form.data[prefix + 'qrcode']).food_container + + elif form.data[prefix + 'name'] != '': + ingredient = Food.objects.get(pk=form.data[prefix + 'name']) + + if form.data.get(prefix + 'add_all_same_name') == 'on': + ingredients = Food.objects.filter(name=ingredient.name, owner=ingredient.owner, end_of_life='') + else: + ingredients = [ingredient] + + for ingredient in ingredients: self.object.ingredients.add(ingredient) if (prefix + 'fully_used') in form.data and form.data[prefix + 'fully_used'] == 'on': ingredient.end_of_life = _('Fully used in {meal}'.format( meal=self.object.name)) ingredient.save() - elif form.data[prefix + 'name'] != '': - ingredient = Food.objects.get(pk=form.data[prefix + 'name']) - if form.data.get(prefix + 'add_all_same_name') == 'on': - ingredients = Food.objects.filter(name=ingredient.name, owner=ingredient.owner, end_of_life='') - for ingredient in ingredients: - self.object.ingredients.add(ingredient) - if form.data.get(prefix + 'fully_used') == 'on': - ingredient.end_of_life = _('Fully used in {meal}'.format(meal=self.object.name)) - ingredient.save() - else: - self.object.ingredients.add(ingredient) - if (prefix + 'fully_used') in form.data and form.data[prefix + 'fully_used'] == 'on': - ingredient.end_of_life = _('Fully used in {meal}'.format( - meal=self.object.name)) - ingredient.save() # We recalculate new expiry date and allergens self.object.expiry_date = self.object.creation_date + self.object.shelf_life self.object.allergens.clear() @@ -848,12 +845,12 @@ class KitchenView(ProtectQuerysetMixin, LoginRequiredMixin, SingleTableView): extra_context = {'title': _('Kitchen')} def get_queryset(self): - return super().get_queryset().filter(~Q(supplements__isnull=True, request=''), activity__pk=self.kwargs["activity_pk"]) + return super().get_queryset().filter(~Q(supplements__isnull=True, request=''), activity__pk=self.kwargs["activity_pk"], served=False) def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) - orders_count = Order.objects.values('dish__main__name').annotate(quantity=Count('id')) + orders_count = Order.objects.filter(activity__pk=self.kwargs["activity_pk"], served=False).values('dish__main__name').annotate(quantity=Count('id')) context["orders"] = {o['dish__main__name']: o['quantity'] for o in orders_count}