mirror of
https://github.com/ae-utbm/sith.git
synced 2026-04-16 08:18:22 +00:00
feat: page to edit and reorder club role
This commit is contained in:
@@ -28,7 +28,11 @@ import csv
|
||||
import itertools
|
||||
from typing import TYPE_CHECKING, Any
|
||||
|
||||
from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMixin
|
||||
from django.contrib.auth.mixins import (
|
||||
LoginRequiredMixin,
|
||||
PermissionRequiredMixin,
|
||||
UserPassesTestMixin,
|
||||
)
|
||||
from django.contrib.messages.views import SuccessMessageMixin
|
||||
from django.core.exceptions import NON_FIELD_ERRORS, PermissionDenied, ValidationError
|
||||
from django.core.paginator import InvalidPage, Paginator
|
||||
@@ -50,6 +54,7 @@ from club.forms import (
|
||||
ClubAdminEditForm,
|
||||
ClubEditForm,
|
||||
ClubOldMemberForm,
|
||||
ClubRoleFormSet,
|
||||
JoinClubForm,
|
||||
MailingForm,
|
||||
SellingsForm,
|
||||
@@ -377,6 +382,28 @@ class ClubOldMembersView(ClubTabsMixin, PermissionRequiredMixin, DetailView):
|
||||
}
|
||||
|
||||
|
||||
class ClubRoleUpdateView(
|
||||
ClubTabsMixin, UserPassesTestMixin, SuccessMessageMixin, UpdateView
|
||||
):
|
||||
form_class = ClubRoleFormSet
|
||||
model = Club
|
||||
template_name = "club/club_roles.jinja"
|
||||
pk_url_kwarg = "club_id"
|
||||
current_tab = "members"
|
||||
success_message = _("Club roles updated")
|
||||
|
||||
def test_func(self):
|
||||
if self.request.user.has_perm("club.change_clubrole"):
|
||||
return True
|
||||
club: Club = self.get_object()
|
||||
return club.members.filter(
|
||||
user=self.request.user, role__is_presidency=True
|
||||
).exists()
|
||||
|
||||
def get_success_url(self):
|
||||
return self.request.path
|
||||
|
||||
|
||||
class ClubSellingView(ClubTabsMixin, CanEditMixin, DetailFormView):
|
||||
"""Sales of a club."""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user