1
0
mirror of https://gitlab.crans.org/bde/nk20 synced 2025-11-01 16:14:30 +01:00

'Add all identical food' on ManageIngredients

This commit is contained in:
Ehouarn
2025-10-31 23:49:14 +01:00
parent 78372807f8
commit 6cffe94bae
3 changed files with 20 additions and 5 deletions

View File

@@ -181,6 +181,11 @@ class ManageIngredientsForm(forms.Form):
) )
qrcode.label = _('QR code number') qrcode.label = _('QR code number')
add_all_same_name = forms.BooleanField(
required=False,
label=_("Add all identical food")
)
ManageIngredientsFormSet = forms.formset_factory( ManageIngredientsFormSet = forms.formset_factory(
ManageIngredientsForm, ManageIngredientsForm,

View File

@@ -22,6 +22,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
<th>{{ form.name.label }}</th> <th>{{ form.name.label }}</th>
<th>{{ form.qrcode.label }}</th> <th>{{ form.qrcode.label }}</th>
<th>{{ form.fully_used.label }}</th> <th>{{ form.fully_used.label }}</th>
<th>{{ form.add_all_same_name.label }}</th>
</tr> </tr>
</thead> </thead>
<tbody id="form_body"> <tbody id="form_body">
@@ -34,6 +35,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
<td>{{ form.name }}</td> <td>{{ form.name }}</td>
<td>{{ form.qrcode }}</td> <td>{{ form.qrcode }}</td>
<td>{{ form.fully_used }}</td> <td>{{ form.fully_used }}</td>
<td>{{ form.add_all_same_name }}</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>

View File

@@ -307,11 +307,19 @@ class ManageIngredientsView(LoginRequiredMixin, UpdateView):
elif form.data[prefix + 'name'] != '': elif form.data[prefix + 'name'] != '':
ingredient = Food.objects.get(pk=form.data[prefix + 'name']) ingredient = Food.objects.get(pk=form.data[prefix + 'name'])
self.object.ingredients.add(ingredient) if form.data.get(prefix + 'add_all_same_name') == 'on':
if (prefix + 'fully_used') in form.data and form.data[prefix + 'fully_used'] == 'on': ingredients = Food.objects.filter(name=ingredient.name, owner=ingredient.owner, end_of_life='')
ingredient.end_of_life = _('Fully used in {meal}'.format( for ingredient in ingredients:
meal=self.object.name)) self.object.ingredients.add(ingredient)
ingredient.save() 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()