mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-10-31 22:24:30 +01:00 
			
		
		
		
	Add script to create channels per tournament, pools and teams. Put channels in categories
Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
This commit is contained in:
		
							
								
								
									
										0
									
								
								chat/management/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								chat/management/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										0
									
								
								chat/management/commands/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								chat/management/commands/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										144
									
								
								chat/management/commands/create_chat_channels.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								chat/management/commands/create_chat_channels.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,144 @@ | ||||
| # Copyright (C) 2024 by Animath | ||||
| # SPDX-License-Identifier: GPL-3.0-or-later | ||||
|  | ||||
| from django.core.management import BaseCommand | ||||
| from django.utils.translation import activate | ||||
|  | ||||
| from participation.models import Team, Tournament | ||||
| from tfjm.permissions import PermissionType | ||||
|  | ||||
| from ...models import Channel | ||||
|  | ||||
|  | ||||
| class Command(BaseCommand): | ||||
|     def handle(self, *args, **kwargs): | ||||
|         activate('fr') | ||||
|  | ||||
|         Channel.objects.update_or_create( | ||||
|             name="Annonces", | ||||
|             defaults=dict( | ||||
|                 category=Channel.ChannelCategory.GENERAL, | ||||
|                 read_access=PermissionType.AUTHENTICATED, | ||||
|                 write_access=PermissionType.ADMIN, | ||||
|             ), | ||||
|         ) | ||||
|  | ||||
|         Channel.objects.update_or_create( | ||||
|             name="Aide jurys et orgas", | ||||
|             defaults=dict( | ||||
|                 category=Channel.ChannelCategory.GENERAL, | ||||
|                 read_access=PermissionType.VOLUNTEER, | ||||
|                 write_access=PermissionType.VOLUNTEER, | ||||
|             ), | ||||
|         ) | ||||
|  | ||||
|         Channel.objects.update_or_create( | ||||
|             name="Général", | ||||
|             defaults=dict( | ||||
|                 category=Channel.ChannelCategory.GENERAL, | ||||
|                 read_access=PermissionType.AUTHENTICATED, | ||||
|                 write_access=PermissionType.AUTHENTICATED, | ||||
|             ), | ||||
|         ) | ||||
|  | ||||
|         Channel.objects.update_or_create( | ||||
|             name="Je cherche une équipe", | ||||
|             defaults=dict( | ||||
|                 category=Channel.ChannelCategory.GENERAL, | ||||
|                 read_access=PermissionType.AUTHENTICATED, | ||||
|                 write_access=PermissionType.AUTHENTICATED, | ||||
|             ), | ||||
|         ) | ||||
|  | ||||
|         Channel.objects.update_or_create( | ||||
|             name="Détente", | ||||
|             defaults=dict( | ||||
|                 category=Channel.ChannelCategory.GENERAL, | ||||
|                 read_access=PermissionType.AUTHENTICATED, | ||||
|                 write_access=PermissionType.AUTHENTICATED, | ||||
|             ), | ||||
|         ) | ||||
|  | ||||
|         for tournament in Tournament.objects.all(): | ||||
|             Channel.objects.update_or_create( | ||||
|                 name=f"{tournament.name} - Annonces", | ||||
|                 defaults=dict( | ||||
|                     category=Channel.ChannelCategory.TOURNAMENT, | ||||
|                     read_access=PermissionType.TOURNAMENT_MEMBER, | ||||
|                     write_access=PermissionType.TOURNAMENT_ORGANIZER, | ||||
|                     tournament=tournament, | ||||
|                 ), | ||||
|             ) | ||||
|  | ||||
|             Channel.objects.update_or_create( | ||||
|                 name=f"{tournament.name} - Général", | ||||
|                 defaults=dict( | ||||
|                     category=Channel.ChannelCategory.TOURNAMENT, | ||||
|                     read_access=PermissionType.TOURNAMENT_MEMBER, | ||||
|                     write_access=PermissionType.TOURNAMENT_MEMBER, | ||||
|                     tournament=tournament, | ||||
|                 ), | ||||
|             ) | ||||
|  | ||||
|             Channel.objects.update_or_create( | ||||
|                 name=f"{tournament.name} - Détente", | ||||
|                 defaults=dict( | ||||
|                     category=Channel.ChannelCategory.TOURNAMENT, | ||||
|                     read_access=PermissionType.TOURNAMENT_MEMBER, | ||||
|                     write_access=PermissionType.TOURNAMENT_MEMBER, | ||||
|                     tournament=tournament, | ||||
|                 ), | ||||
|             ) | ||||
|  | ||||
|             Channel.objects.update_or_create( | ||||
|                 name=f"{tournament.name} - Juré⋅es", | ||||
|                 defaults=dict( | ||||
|                     category=Channel.ChannelCategory.TOURNAMENT, | ||||
|                     read_access=PermissionType.JURY_MEMBER, | ||||
|                     write_access=PermissionType.JURY_MEMBER, | ||||
|                     tournament=tournament, | ||||
|                 ), | ||||
|             ) | ||||
|  | ||||
|             if tournament.remote: | ||||
|                 Channel.objects.update_or_create( | ||||
|                     name=f"{tournament.name} - Président⋅es de jury", | ||||
|                     defaults=dict( | ||||
|                         category=Channel.ChannelCategory.TOURNAMENT, | ||||
|                         read_access=PermissionType.TOURNAMENT_JURY_PRESIDENT, | ||||
|                         write_access=PermissionType.TOURNAMENT_JURY_PRESIDENT, | ||||
|                         tournament=tournament, | ||||
|                     ), | ||||
|                 ) | ||||
|  | ||||
|                 for pool in tournament.pools.all(): | ||||
|                     Channel.objects.update_or_create( | ||||
|                         name=f"{tournament.name} - Poule {pool.short_name}", | ||||
|                         defaults=dict( | ||||
|                             category=Channel.ChannelCategory.TOURNAMENT, | ||||
|                             read_access=PermissionType.POOL_MEMBER, | ||||
|                             write_access=PermissionType.POOL_MEMBER, | ||||
|                             pool=pool, | ||||
|                         ), | ||||
|                     ) | ||||
|  | ||||
|                     Channel.objects.update_or_create( | ||||
|                         name=f"{tournament.name} - Poule {pool.short_name} - Jury", | ||||
|                         defaults=dict( | ||||
|                             category=Channel.ChannelCategory.TOURNAMENT, | ||||
|                             read_access=PermissionType.JURY_MEMBER, | ||||
|                             write_access=PermissionType.JURY_MEMBER, | ||||
|                             pool=pool, | ||||
|                         ), | ||||
|                     ) | ||||
|  | ||||
|         for team in Team.objects.filter(participation__valid=True).all(): | ||||
|             Channel.objects.update_or_create( | ||||
|                 name=f"Équipe {team.trigram}", | ||||
|                 defaults=dict( | ||||
|                     category=Channel.ChannelCategory.TEAM, | ||||
|                     read_access=PermissionType.TEAM_MEMBER, | ||||
|                     write_access=PermissionType.TEAM_MEMBER, | ||||
|                     team=team, | ||||
|                 ), | ||||
|             ) | ||||
		Reference in New Issue
	
	Block a user