mirror of
https://github.com/ae-utbm/sith.git
synced 2025-10-09 08:14:39 +00:00
Better management of roles in ClubMemberForm
This commit is contained in:
@@ -72,7 +72,7 @@ from core.auth.mixins import (
|
||||
)
|
||||
from core.models import PageRev
|
||||
from core.views import DetailFormView, PageEditViewBase, UseFragmentsMixin
|
||||
from core.views.mixins import FragmentMixin, TabedViewMixin
|
||||
from core.views.mixins import FragmentMixin, FragmentRenderer, TabedViewMixin
|
||||
from counter.models import Selling
|
||||
|
||||
|
||||
@@ -307,17 +307,26 @@ class ClubMembersView(
|
||||
form_class = ClubOldMemberForm
|
||||
template_name = "club/club_members.jinja"
|
||||
current_tab = "members"
|
||||
fragments = {"add_member_fragment": ClubAddMembersFragment}
|
||||
permission_required = "club.view_club"
|
||||
|
||||
def get_fragments(self) -> dict[str, type[FragmentMixin] | FragmentRenderer]:
|
||||
membership = self.object.get_membership_for(self.request.user)
|
||||
if (
|
||||
membership
|
||||
and membership.role <= settings.SITH_MAXIMUM_FREE_ROLE
|
||||
and not self.request.user.has_perm("club.add_membership")
|
||||
):
|
||||
return {}
|
||||
return {"add_member_fragment": ClubAddMembersFragment}
|
||||
|
||||
def get_fragment_data(self) -> dict[str, Any]:
|
||||
return {"add_member_fragment": {"club": self.object}}
|
||||
|
||||
def get_form_kwargs(self):
|
||||
kwargs = super().get_form_kwargs()
|
||||
kwargs["user"] = self.request.user
|
||||
kwargs["club"] = self.object
|
||||
return kwargs
|
||||
return super().get_form_kwargs() | {
|
||||
"user": self.request.user,
|
||||
"club": self.object,
|
||||
}
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
kwargs = super().get_context_data(**kwargs)
|
||||
|
Reference in New Issue
Block a user