✨ feat(login): Ajoute l'authentification SSO via Keycloak et Discord
Cette modification implémente l'authentification unique (SSO) via
Keycloak et Discord, permettant aux utilisateurs de se connecter
facilement. Ajoute les trads FR.
```
✨ feat(PagesController): Ajoute la vérification de disponibilité du slug.
Ajoute une route pour vérifier la disponibilité d'un slug d'EPage.
Utilise EpageService pour vérifier si le slug est disponible.
Retourne une réponse JSON indiquant la disponibilité et le slug.
```
✨ feat(templates): Style Neubrutaliste, refonte complète des templates
Refactorise les templates principaux avec un style Neubrutaliste.
Ajoute des animations, des filigranes et améliore la responsivité.
Traduit en français.
```
✨ feat(Admin/Dashboard): Affiche le nombre de candidatures en cours.
🐛 fix(JoinController): Corrige l'envoi de mail et ajoute un état Discord.
✨ feat(JoinController): Ajoute l'état Discord et corrige les templates de mail.
```
🎨 style(app): Ajoute du style pour l'affichage des rôles dans le formulaire d'adhésion.
🌐 i18n(translations): Adapte les textes pour le formulaire d'adhésion.
🐛 fix(JoinController): Corrige une erreur d'affichage des données du formulaire.
✨ feat(PaymentClient): Crée une fonction pour créer des abonnements Stripe.
🎨 refactor(prestation.twig): Cache le bloc de tarification EPage.
➕ feat(PayAbonementCommand): Crée une commande pour initialiser les abonnements.
🚀 chore(ansible/playbook.yml): Ajoute l'exécution de la commande ecosplay:abonement.
```
✨ feat(EventsController): Affiche la liste des événements et les détails
Ajoute l'affichage des événements et de leurs détails. Ajoute aussi la gestion des affiches.
```
✨ feat(deps): Ajoute Sentry pour le suivi des erreurs et MobileDetect.
🐛 fix(template): Corrige l'affichage des badges Stripe sur mobile et ajoute le réalisateur.
⚙️ chore(config): Active le bundle Sentry dans la configuration.
```
✨ feat(templates): Ajoute badge Stripe Climate au pied de page et CSP
Ajoute les badges Stripe Climate pour afficher nos actions et met à jour la
CSP pour autoriser climate.stripe.com.
```
✨ feat(doc): Ajoute la page de documents et les AGs au sitemap.
♻️ refactor(.env): Met à jour l'URL de développement Ngrok.
✨ feat(SitemapSubscriber): Ajoute les URLs contact et doc au sitemap.
✨ feat(AgGenerator): Ajoute l'option de largeur à la signature PDF.
✨ feat(Ag/Main): Ajoute le champ de signature de l'adhésion à l'AG.
✨ feat(AgTypeEdit): Crée le formulaire d'édition du type d'AG.
🌐 i18n: Ajoute des traductions chinoises pour la page documents.
✨ feat(Mailer): Ajoute le contenu texte aux e-mails.
✨ feat(DocumentController): Ajoute le contrôleur de documents.
✨ feat(txt-mails): Ajoute les templates de mails en texte.
✨ feat(AdController): Ajoute le contrôleur d'adhésion.
✨ feat(Service/Pdf): Crée le service PDF pour l'adhésion à l'AG.
✨ feat(AdminController): Ajoute la gestion de l'AG à l'admin.
🌐 i18n: Ajoute les traductions françaises pour la page documents.
✨ feat(Members): Ajoute la relation avec la signature de l'AG.
```
✨ feat(Ag/MainVote): Ajoute relation ManyToOne vers Main et les votes.
Ajoute la relation ManyToOne entre MainVote et Main.
Ajoute les champs pour et contre dans la classe MainVote.
Ajoute les champs civ, name, surname dans la classe Members.
```
✨ feat(security): Ajoute la route de déconnexion et configure la redirection.
✨ feat(Dto/Ag): Crée les DTOs AgType, AgMembersType et AgOrderType.
✨ feat(Controller/Admin): Implémente la gestion des AG (CRUD complet).
✨ feat(templates/admin): Ajoute les templates pour la gestion des AG.
```
✨ feat(sitemap/who): Ajoute des villes et routes pour la page "Qui sommes-nous ?"
Ajoute des villes à la sitemap et aux traductions, crée une route
supplémentaire pour la page "Qui sommes-nous ?" et traduit le nom de la
ville affichée.
```