mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-11-04 11:12:18 +01:00 
			
		
		
		
	Mailing lists are working
This commit is contained in:
		@@ -3,8 +3,8 @@
 | 
			
		||||
 | 
			
		||||
from django.core.management import BaseCommand
 | 
			
		||||
from django.db.models import Q
 | 
			
		||||
from participation.models import Team
 | 
			
		||||
from registration.models import CoachRegistration, StudentRegistration
 | 
			
		||||
from participation.models import Team, Tournament
 | 
			
		||||
from registration.models import AdminRegistration, ParticipantRegistration, VolunteerRegistration
 | 
			
		||||
from tfjm.lists import get_sympa_client
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -15,29 +15,60 @@ class Command(BaseCommand):
 | 
			
		||||
        """
 | 
			
		||||
        sympa = get_sympa_client()
 | 
			
		||||
 | 
			
		||||
        sympa.create_list("equipes", "Équipes du TFJM²", "hotline",
 | 
			
		||||
                          "Liste de diffusion pour contacter toutes les équipes validées du TFJM².",
 | 
			
		||||
        sympa.create_list("equipes", "Equipes du TFJM2", "hotline",
 | 
			
		||||
                          "Liste de diffusion pour contacter toutes les equipes validees du TFJM2.",
 | 
			
		||||
                          "education", raise_error=False)
 | 
			
		||||
        sympa.create_list("equipes-non-valides", "Équipes du TFJM²", "hotline",
 | 
			
		||||
                          "Liste de diffusion pour contacter toutes les équipes non validées du TFJM².",
 | 
			
		||||
        sympa.create_list("equipes-non-valides", "Equipes non valides du TFJM2", "hotline",
 | 
			
		||||
                          "Liste de diffusion pour contacter toutes les equipes non validees du TFJM2.",
 | 
			
		||||
                          "education", raise_error=False)
 | 
			
		||||
 | 
			
		||||
        for problem in range(1, 4):
 | 
			
		||||
            sympa.create_list(f"probleme-{problem}",
 | 
			
		||||
                              f"Équipes du TFJM² participant au problème {problem}", "hotline",
 | 
			
		||||
                              f"Liste de diffusion pour contacter les équipes participant au problème {problem}"
 | 
			
		||||
                              f" du TFJM².", "education", raise_error=False)
 | 
			
		||||
        sympa.create_list("admins", "Administrateurs du TFJM2", "hotline",
 | 
			
		||||
                          "Liste de diffusion pour contacter tous les administrateurs du TFJM2.",
 | 
			
		||||
                          "education", raise_error=False)
 | 
			
		||||
        sympa.create_list("organisateurs", "Organisateurs du TFJM2", "hotline",
 | 
			
		||||
                          "Liste de diffusion pour contacter tous les organisateurs du TFJM2.",
 | 
			
		||||
                          "education", raise_error=False)
 | 
			
		||||
        sympa.create_list("jurys", "Jurys du TFJM2", "hotline",
 | 
			
		||||
                          "Liste de diffusion pour contacter tous les jurys du TFJM2.",
 | 
			
		||||
                          "education", raise_error=False)
 | 
			
		||||
 | 
			
		||||
        for tournament in Tournament.objects.all():
 | 
			
		||||
            slug = tournament.name.lower().replace(" ", "-")
 | 
			
		||||
            sympa.create_list(f"equipes-{slug}", f"Equipes du tournoi {tournament.name}", "hotline",
 | 
			
		||||
                              f"Liste de diffusion pour contacter toutes les equipes du tournoi {tournament.name}"
 | 
			
		||||
                              " du TFJM2.", "education", raise_error=False)
 | 
			
		||||
            sympa.create_list(f"organisateurs-{slug}", f"Organisateurs du tournoi {tournament.name}", "hotline",
 | 
			
		||||
                              "Liste de diffusion pour contacter tous les organisateurs du tournoi "
 | 
			
		||||
                              f"{tournament.name} du TFJM2.", "education", raise_error=False)
 | 
			
		||||
            sympa.create_list(f"jurys-{slug}", f"Jurys du tournoi {tournament.name}", "hotline",
 | 
			
		||||
                              f"Liste de diffusion pour contacter tous les jurys du tournoi {tournament.name}"
 | 
			
		||||
                              f" du TFJM2.", "education", raise_error=False)
 | 
			
		||||
 | 
			
		||||
            sympa.subscribe(tournament.teams_email, "equipes", True)
 | 
			
		||||
            sympa.subscribe(tournament.organizers_email, "organisateurs", True)
 | 
			
		||||
            sympa.subscribe(tournament.jurys_email, "jurys", True)
 | 
			
		||||
 | 
			
		||||
        for team in Team.objects.filter(participation__valid=True).all():
 | 
			
		||||
            team.create_mailing_list()
 | 
			
		||||
            sympa.subscribe(team.email, "equipes", f"Equipe {team.name}", True)
 | 
			
		||||
            sympa.subscribe(team.email, f"probleme-{team.participation.problem}", f"Equipe {team.name}", True)
 | 
			
		||||
            sympa.unsubscribe(team.email, "equipes-non-valides", True)
 | 
			
		||||
            sympa.subscribe(team.email, f"equipes-{team.participation.tournament.name.lower().replace(' ', '-')}",
 | 
			
		||||
                            True, f"Equipe {team.name}")
 | 
			
		||||
 | 
			
		||||
        for team in Team.objects.filter(Q(participation__valid=False) | Q(participation__valid__isnull=True)).all():
 | 
			
		||||
            team.create_mailing_list()
 | 
			
		||||
            sympa.subscribe(team.email, "equipes-non-valides", f"Equipe {team.name}", True)
 | 
			
		||||
 | 
			
		||||
        for student in StudentRegistration.objects.filter(team__isnull=False).all():
 | 
			
		||||
            sympa.subscribe(student.user.email, f"equipe-{student.team.trigram.lower}", True, f"{student}")
 | 
			
		||||
        for coach in CoachRegistration.objects.filter(team__isnull=False).all():
 | 
			
		||||
            sympa.subscribe(coach.user.email, f"equipe-{coach.team.trigram.lower}", True, f"{coach}")
 | 
			
		||||
        for participant in ParticipantRegistration.objects.filter(team__isnull=False).all():
 | 
			
		||||
            sympa.subscribe(participant.user.email, f"equipe-{participant.team.trigram.lower}", True, f"{participant}")
 | 
			
		||||
 | 
			
		||||
        for volunteer in VolunteerRegistration.objects.all():
 | 
			
		||||
            for organized_tournament in volunteer.organized_tournaments.all():
 | 
			
		||||
                slug = organized_tournament.name.lower().replace(" ", "-")
 | 
			
		||||
                sympa.subscribe(volunteer.user.email, f"organisateurs-{slug}", True)
 | 
			
		||||
 | 
			
		||||
            for jury_in in volunteer.jury_in.all():
 | 
			
		||||
                slug = jury_in.tournament.name.lower().replace(" ", "-")
 | 
			
		||||
                sympa.subscribe(volunteer.user.email, f"jurys-{slug}", True)
 | 
			
		||||
 | 
			
		||||
        for admin in AdminRegistration.objects.all():
 | 
			
		||||
            sympa.subscribe(admin.user.email, f"admins", True)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user