checkout/src/purchase/views.py

42 lines
1.3 KiB
Python
Raw Normal View History

2022-04-24 18:59:04 +02:00
from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin
2022-04-25 17:07:37 +02:00
from django.contrib.messages.views import SuccessMessageMixin
2022-04-24 18:59:04 +02:00
from django.urls import reverse
2022-04-25 16:27:59 +02:00
from django.views.generic import CreateView, DeleteView, ListView, UpdateView
2022-04-24 16:21:39 +02:00
2022-04-24 18:59:04 +02:00
from purchase.forms import BasketForm
from purchase.models import Basket
class ProtectedViewsMixin(PermissionRequiredMixin, LoginRequiredMixin):
pass
2022-04-25 17:07:37 +02:00
class NewBasketView(ProtectedViewsMixin, SuccessMessageMixin, CreateView):
2022-04-24 18:59:04 +02:00
permission_required = ["purchase.add_basket"]
model = Basket
form_class = BasketForm
2022-04-25 17:07:37 +02:00
success_message = "Successfully created basket."
2022-04-24 18:59:04 +02:00
2022-04-25 17:07:37 +02:00
class UpdateBasketView(ProtectedViewsMixin, SuccessMessageMixin, UpdateView):
2022-04-24 18:59:04 +02:00
permission_required = ["purchase.change_basket", "purchase.view_basket"]
model = Basket
form_class = BasketForm
2022-04-25 17:07:37 +02:00
success_message = "Successfully updated basket."
2022-04-25 16:27:59 +02:00
class ListBasketsView(ProtectedViewsMixin, ListView):
permission_required = ["purchase.view_basket"]
model = Basket
context_object_name = "baskets"
ordering = "-id"
2022-04-25 17:07:37 +02:00
class DeleteBasketView(ProtectedViewsMixin, SuccessMessageMixin, DeleteView):
2022-04-25 16:27:59 +02:00
permission_required = ["purchase.delete_basket"]
model = Basket
2022-04-25 17:07:37 +02:00
success_message = "Basket successfully deleted."
2022-04-25 16:27:59 +02:00
def get_success_url(self):
return reverse("purchase:list")