@@ -109,7 +109,9 @@ async def create_club(self, club: ClubSchema, guild: Guild):
109109 # create the clubs category
110110 overwrites = {
111111 guild .default_role : PermissionOverwrite (read_messages = False ),
112- president : PermissionOverwrite (read_messages = True , manage_channels = True ),
112+ president : PermissionOverwrite (
113+ read_messages = True , manage_channels = True , manage_permissions = True
114+ ),
113115 member : PermissionOverwrite (read_messages = True ),
114116 treasurer : PermissionOverwrite (read_messages = True ),
115117 former_member : PermissionOverwrite (read_messages = True ),
@@ -151,8 +153,8 @@ async def add_member(self, club: DiscordClub, member: Member):
151153 async def remove_member (self , club : DiscordClub , member : Member ):
152154 role = utils .get (member .guild .roles , id = club .member_role_id )
153155 former = utils .get (member .guild .roles , id = club .former_member_role_id )
154- await member .remove_roles (role , reason = f"{ member .name } leaved club { club .name } " )
155- await member .add_roles (former , reason = f"{ member .name } leaved club { club .name } " )
156+ await member .remove_roles (role , reason = f"{ member .name } left club { club .name } " )
157+ await member .add_roles (former , reason = f"{ member .name } left club { club .name } " )
156158 club .save ()
157159
158160 async def handover (
@@ -179,3 +181,30 @@ async def handover(
179181 )
180182 await new_pres .add_roles (role_pres , reason = f"Passation du club : { club .name } " )
181183 await new_treso .add_roles (role_treso , reason = f"Passation du club : { club .name } " )
184+ category = utils .get (guild .categories , id = club .category_id )
185+ if category .name .endswith ("[inactif]" ):
186+ await category .edit (name = club .name )
187+ highest_inactive = utils .find (
188+ lambda c : c .name .endswith ("[inactif]" ),
189+ sorted (guild .categories , key = lambda c : c .position ),
190+ )
191+ await category .move (above = highest_inactive )
192+
193+ async def stop_club (self , club : DiscordClub , guild : Guild ):
194+ role_pres = utils .get (guild .roles , id = club .president_role_id )
195+ role_treso = utils .get (guild .roles , id = club .treasurer_role_id )
196+ role_member = utils .get (guild .roles , id = club .member_role_id )
197+ role_former = utils .get (guild .roles , id = club .former_member_role_id )
198+ old_member = {* role_pres .members , * role_treso .members , * role_member .members }
199+ total_channels = len (guild .channels )
200+ category = utils .get (guild .categories , id = club .category_id )
201+ await category .edit (position = total_channels - 1 , name = club .name + " [inactif]" )
202+
203+ for e in old_member :
204+ await e .remove_roles (
205+ role_pres ,
206+ role_treso ,
207+ role_member ,
208+ reason = f"Arrêt du club : { club .name } " ,
209+ )
210+ await e .add_roles (role_former , reason = f"Arrêt du club : { club .name } " )
0 commit comments