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:
@@ -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,
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user