mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-05-15 15:02:47 +00:00
Merge branch 'food_bugs' into 'main'
Corrections de quelques bugs (par Quark) See merge request bde/nk20!315
This commit is contained in:
commit
a62cad9a3f
@ -168,7 +168,8 @@ class BasicFoodCreateView(ProtectQuerysetMixin, ProtectedCreateView):
|
||||
template_name = "food/food_update.html"
|
||||
|
||||
def get_sample_object(self):
|
||||
return BasicFood(
|
||||
# We choose a club which may work or BDE else
|
||||
food = BasicFood(
|
||||
name="",
|
||||
owner_id=1,
|
||||
expiry_date=timezone.now(),
|
||||
@ -177,6 +178,14 @@ class BasicFoodCreateView(ProtectQuerysetMixin, ProtectedCreateView):
|
||||
date_type='DLC',
|
||||
)
|
||||
|
||||
for membership in self.request.user.memberships.all():
|
||||
club_id = membership.club.id
|
||||
food.owner_id = club_id
|
||||
if PermissionBackend.check_perm(self.request, "food.add_basicfood", food):
|
||||
return food
|
||||
|
||||
return food
|
||||
|
||||
@transaction.atomic
|
||||
def form_valid(self, form):
|
||||
if QRCode.objects.filter(qr_code_number=self.kwargs['slug']).count() > 0:
|
||||
@ -227,13 +236,22 @@ class TransformedFoodCreateView(ProtectQuerysetMixin, ProtectedCreateView):
|
||||
template_name = "food/food_update.html"
|
||||
|
||||
def get_sample_object(self):
|
||||
return TransformedFood(
|
||||
# We choose a club which may work or BDE else
|
||||
food = TransformedFood(
|
||||
name="",
|
||||
owner_id=1,
|
||||
expiry_date=timezone.now(),
|
||||
is_ready=True,
|
||||
)
|
||||
|
||||
for membership in self.request.user.memberships.all():
|
||||
club_id = membership.club.id
|
||||
food.owner_id = club_id
|
||||
if PermissionBackend.check_perm(self.request, "food.add_transformedfood", food):
|
||||
return food
|
||||
|
||||
return food
|
||||
|
||||
@transaction.atomic
|
||||
def form_valid(self, form):
|
||||
form.instance.expiry_date = timezone.now() + timedelta(days=3)
|
||||
@ -248,7 +266,7 @@ class TransformedFoodCreateView(ProtectQuerysetMixin, ProtectedCreateView):
|
||||
MAX_FORMS = 10
|
||||
|
||||
|
||||
class ManageIngredientsView(ProtectQuerysetMixin, LoginRequiredMixin, UpdateView):
|
||||
class ManageIngredientsView(LoginRequiredMixin, UpdateView):
|
||||
"""
|
||||
A view to manage ingredient for a transformed food
|
||||
"""
|
||||
@ -279,6 +297,14 @@ class ManageIngredientsView(ProtectQuerysetMixin, LoginRequiredMixin, UpdateView
|
||||
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()
|
||||
|
||||
for ingredient in self.object.ingredients.iterator():
|
||||
if not (ingredient.polymorphic_ctype.model == 'basicfood' and ingredient.date_type == 'DDM'):
|
||||
self.object.expiry_date = min(self.object.expiry_date, ingredient.expiry_date)
|
||||
self.object.allergens.set(self.object.allergens.union(ingredient.allergens.all()))
|
||||
|
||||
self.object.save(old_ingredients=old_ingredients, old_allergens=old_allergens)
|
||||
return HttpResponseRedirect(self.get_success_url())
|
||||
|
Loading…
x
Reference in New Issue
Block a user