mirror of
https://github.com/Crocmagnon/checkout.git
synced 2024-05-20 02:22:51 +02:00
51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
from django.contrib.messages.views import SuccessMessageMixin
|
|
from django.urls import reverse
|
|
from django.utils.translation import gettext_lazy as _
|
|
from django.views.generic import CreateView, DeleteView, ListView, UpdateView
|
|
|
|
from purchase.forms import BasketForm
|
|
from purchase.models import Basket
|
|
from purchase.views.utils import ProtectedViewsMixin
|
|
|
|
|
|
class NewBasketView(ProtectedViewsMixin, SuccessMessageMixin, CreateView):
|
|
permission_required = ["purchase.add_basket"]
|
|
model = Basket
|
|
form_class = BasketForm
|
|
success_message = _("Successfully created basket.")
|
|
|
|
queryset = Basket.objects.priced()
|
|
|
|
def get_success_url(self):
|
|
if self.request.user.has_perm("purchase.change_basket"):
|
|
return super().get_success_url()
|
|
else:
|
|
return reverse("purchase:new")
|
|
|
|
|
|
class UpdateBasketView(ProtectedViewsMixin, SuccessMessageMixin, UpdateView):
|
|
permission_required = ["purchase.change_basket", "purchase.view_basket"]
|
|
model = Basket
|
|
form_class = BasketForm
|
|
success_message = _("Successfully updated basket.")
|
|
queryset = Basket.objects.priced()
|
|
|
|
|
|
class ListBasketsView(ProtectedViewsMixin, ListView):
|
|
permission_required = ["purchase.view_basket"]
|
|
model = Basket
|
|
context_object_name = "baskets"
|
|
ordering = "-id"
|
|
queryset = Basket.objects.priced()
|
|
|
|
|
|
class DeleteBasketView(ProtectedViewsMixin, SuccessMessageMixin, DeleteView):
|
|
permission_required = ["purchase.delete_basket"]
|
|
model = Basket
|
|
success_message = _("Basket successfully deleted.")
|
|
queryset = Basket.objects.priced()
|
|
context_object_name = "basket"
|
|
|
|
def get_success_url(self):
|
|
return reverse("purchase:list")
|