mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-11-07 07:29:45 +01:00
'Add all identical food' also for QRcode input
This commit is contained in:
@@ -297,29 +297,26 @@ class ManageIngredientsView(LoginRequiredMixin, UpdateView):
|
|||||||
self.object.ingredients.clear()
|
self.object.ingredients.clear()
|
||||||
for i in range(self.object.ingredients.all().count() + 1 + MAX_FORMS):
|
for i in range(self.object.ingredients.all().count() + 1 + MAX_FORMS):
|
||||||
prefix = 'form-' + str(i) + '-'
|
prefix = 'form-' + str(i) + '-'
|
||||||
|
|
||||||
|
ingredient = None
|
||||||
if form.data[prefix + 'qrcode'] not in ['0', '']:
|
if form.data[prefix + 'qrcode'] not in ['0', '']:
|
||||||
ingredient = QRCode.objects.get(pk=form.data[prefix + 'qrcode']).food_container
|
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)
|
self.object.ingredients.add(ingredient)
|
||||||
if (prefix + 'fully_used') in form.data and form.data[prefix + 'fully_used'] == 'on':
|
if (prefix + 'fully_used') in form.data and form.data[prefix + 'fully_used'] == 'on':
|
||||||
ingredient.end_of_life = _('Fully used in {meal}'.format(
|
ingredient.end_of_life = _('Fully used in {meal}'.format(
|
||||||
meal=self.object.name))
|
meal=self.object.name))
|
||||||
ingredient.save()
|
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
|
# We recalculate new expiry date and allergens
|
||||||
self.object.expiry_date = self.object.creation_date + self.object.shelf_life
|
self.object.expiry_date = self.object.creation_date + self.object.shelf_life
|
||||||
self.object.allergens.clear()
|
self.object.allergens.clear()
|
||||||
@@ -848,12 +845,12 @@ class KitchenView(ProtectQuerysetMixin, LoginRequiredMixin, SingleTableView):
|
|||||||
extra_context = {'title': _('Kitchen')}
|
extra_context = {'title': _('Kitchen')}
|
||||||
|
|
||||||
def get_queryset(self):
|
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):
|
def get_context_data(self, **kwargs):
|
||||||
context = super().get_context_data(**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}
|
context["orders"] = {o['dish__main__name']: o['quantity'] for o in orders_count}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user