Skip to content

Commit e996e5d

Browse files
committed
Leaders can only delete events that have not started
+ update descriptions
1 parent 1a3afb2 commit e996e5d

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

collectives/models/event/role.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from collectives.models.event.event_type import EventType
77
from collectives.models.user import User
88
from collectives.models.registration import RegistrationLevels
9+
from collectives.utils.time import current_time
910

1011

1112
class EventRoleMixin:
@@ -84,12 +85,17 @@ def has_edit_rights(self, user):
8485
def has_delete_rights(self, user: User) -> bool:
8586
"""Check if a user can delete this event.
8687
87-
Equivalent to :func:`has_edit_rights`
88+
For events in the future, equivalent to :func:`has_edit_rights`
89+
For past events, needs supervisor or moderator rights
8890
8991
:param user: User which will be tested.
9092
:return: True if user can delete the event.
9193
"""
92-
return self.has_edit_rights(user)
94+
95+
if self.start > current_time():
96+
return self.has_edit_rights(user)
97+
98+
return user.is_moderator() or self.is_supervisor(user)
9399

94100
def can_remove_leader(self, user, leader):
95101
"""

collectives/models/role.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def display_names(cls) -> Dict["RoleIds", str]:
7171

7272
@classmethod
7373
def descriptions(cls) -> Dict["RoleIds", str]:
74-
"""Display names for all rolesrole
74+
"""Description for all roles
7575
7676
:return: dictionnary role -> role name
7777
"""
@@ -89,10 +89,11 @@ def descriptions(cls) -> Dict["RoleIds", str]:
8989
"nécéssitant pas d'autorisation d'encadrement (soirées ...), mais ne peut "
9090
"pas créer de collectives.",
9191
cls.EventLeader: "Un encadrant peut créer et encadrer tout type d'événement lié à "
92-
"l'activité, dont des collectives.",
93-
cls.ActivitySupervisor: "Un responsable d'activité peut proposer un évènement dans son "
94-
"activité, gérer les encadrants et co encadrants de son "
95-
"activité, et supprimer des évènements.",
92+
"l'activité, dont des collectives. Il peut supprimer ses événements à condition"
93+
"qu'aucun paiement n'ait été effectué et que l'événement n'ait pas débuté.",
94+
cls.ActivitySupervisor: "Un responsable d'activité peut proposer un événement dans son "
95+
"activité, gérer les rôles (encadrement, ...), badges (bénévolat, ...) et documents "
96+
"liés à son activité, et a pouvoir de modération sur tout événement de l'activité.",
9697
cls.Trainee: "Un encadrant en formation peut être noté comme co-encadrant d'un "
9798
"événement auquel il est inscrit. Il peut aussi créer certains "
9899
"types d'événements ne nécéssitant pas d'autorisation d'encadrement "

0 commit comments

Comments
 (0)