# 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, ), )