la-chariotte/la_chariotte/order/views/item.py
Alexis Métaireau b4df449bcb Small code & comments changes.
- removed comments when they were not helping understanding the code.
- changed some variable names to ease readability
- make use of dict.update() to ease readability
- use dict comprehensions when possible to ease readability
- changed the naming from intial to origin (bad translation from english)
2023-08-12 21:00:42 +02:00

33 lines
1.1 KiB
Python

from django.contrib.auth.mixins import UserPassesTestMixin
from django.shortcuts import get_object_or_404
from django.urls import reverse_lazy
from django.views import generic
from ..forms import ItemCreateForm
from ..models import GroupedOrder, Item
class ItemCreateView(UserPassesTestMixin, generic.CreateView):
model = Item
form_class = ItemCreateForm
def get_form_kwargs(self):
kwargs = super().get_form_kwargs()
kwargs["grouped_order"] = GroupedOrder.objects.get(code=self.kwargs.get("code"))
return kwargs
def test_func(self):
# Restrict access to the manager
grouped_order = get_object_or_404(GroupedOrder, code=self.kwargs.get("code"))
return grouped_order.orga == self.request.user
class ItemDeleteView(UserPassesTestMixin, generic.DeleteView):
model = Item
def get_success_url(self):
return reverse_lazy("order:manage_items", args=[self.object.grouped_order.code])
def test_func(self):
# Restrict access to the manager
return self.get_object().grouped_order.orga == self.request.user