From 3ea452cc95bd0ab536c79bf0c1ea9cd2ddfd1c4a Mon Sep 17 00:00:00 2001 From: imperosol Date: Thu, 16 Apr 2026 00:05:58 +0200 Subject: [PATCH] add links to club edit page --- club/models.py | 7 +++++++ club/templates/club/club_members.jinja | 9 +++++++++ club/templates/club/club_tools.jinja | 15 +++++++++++++-- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/club/models.py b/club/models.py index 7fe48077..317d625a 100644 --- a/club/models.py +++ b/club/models.py @@ -204,6 +204,13 @@ class Club(models.Model): """Method to see if that object can be edited by the given user.""" return self.has_rights_in_club(user) + def can_roles_be_edited_by(self, user: User) -> bool: + """Return True if the given user can edit the roles of this club""" + return ( + user.has_perm("club.change_clubrole") + or self.members.ongoing().filter(user=user, role__is_presidency=True).exists() + ) + @cached_property def current_members(self) -> list[Membership]: return list( diff --git a/club/templates/club/club_members.jinja b/club/templates/club/club_members.jinja index 18c14e84..b4598099 100644 --- a/club/templates/club/club_members.jinja +++ b/club/templates/club/club_members.jinja @@ -16,6 +16,15 @@

{% trans %}Club members{% endtrans %}

+ {% if club.can_roles_be_edited_by(user) %} + + {% trans %}Manage roles{% endtrans %} + + {% endif %} + {% if add_member_fragment %}
{{ add_member_fragment }} diff --git a/club/templates/club/club_tools.jinja b/club/templates/club/club_tools.jinja index 651cc9bb..a69d5c26 100644 --- a/club/templates/club/club_tools.jinja +++ b/club/templates/club/club_tools.jinja @@ -5,8 +5,19 @@

{% trans %}Communication:{% endtrans %}