2025-06-13 17:10:56 +02:00
|
|
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
|
|
|
from django.views.generic.detail import DetailView
|
|
|
|
from django.views.generic.edit import CreateView, DeleteView, UpdateView
|
|
|
|
|
2025-06-13 17:32:17 +02:00
|
|
|
from . import forms, models
|
2025-06-13 17:10:56 +02:00
|
|
|
|
|
|
|
|
|
|
|
class OwnerFilterMixin(LoginRequiredMixin):
|
|
|
|
def get_queryset(self):
|
|
|
|
return super().get_queryset().filter(owner=self.request.user)
|
|
|
|
|
|
|
|
|
|
|
|
class GroupMixin:
|
|
|
|
model = models.Group
|
|
|
|
fields = ["name"]
|
|
|
|
|
|
|
|
|
|
|
|
class GroupCreateView(LoginRequiredMixin, GroupMixin, CreateView):
|
|
|
|
def form_valid(self, form):
|
|
|
|
form.instance.owner = self.request.user
|
|
|
|
return super().form_valid(form)
|
|
|
|
|
|
|
|
|
|
|
|
class GroupUpdateView(OwnerFilterMixin, GroupMixin, UpdateView):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class GroupDeleteView(OwnerFilterMixin, GroupMixin, DeleteView):
|
|
|
|
success_url = "/"
|
|
|
|
|
|
|
|
|
|
|
|
class GroupDetailView(OwnerFilterMixin, GroupMixin, DetailView):
|
|
|
|
pass
|
2025-06-13 17:32:17 +02:00
|
|
|
|
|
|
|
|
|
|
|
class GroupAddMembersView(OwnerFilterMixin, GroupMixin, UpdateView):
|
|
|
|
fields = None
|
|
|
|
form_class = forms.GroupAddMembersForm
|