✨ 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(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(Members): Ajoute les entités MembersPage et MembersCosplan et leurs relations.
🔧 fix(caddy): Corrige la redirection des assets Trustpilot dans Caddyfile.
⚙️ chore(vich_uploader): Ajoute les configurations VichUploader pour MembersPage.
✨ 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(sw.js/app.js): Gère les notifications push et l'abonnement
Ajoute la gestion des notifications push avec abonnement via le
service worker et enregistre l'abonnement sur le serveur. Gère
l'affichage d'une bannière pour demander la permission.
```
✨ feat(dons): Ajoute la fonctionnalité de dons avec Stripe et reçus PDF.
Ajoute une page de dons avec formulaire, intégration Stripe, webhooks,
génération de reçus PDF et envoi de mails de confirmation. Ajoute aussi
gestion des erreurs 404/500.
```
✨ feat(security): Utilise l'email pour l'authentification, crée dashboard admin.
Ajoute le dashboard admin, les membres, les events, et les comptes.
Utilise l'email au lieu du username pour l'authentification.
```
✨ feat(Customer): Ajoute relation avec FaultPayment pour suivi des impayés.
🐛 fix(CheckAvisPaymentStateCommand): Crée FaultPayment et relance si nécessaire.
🎨 style(customer.twig): Affiche si le client a des factures impayées.
`
🌐 i18n(messages.fr.yaml): Ajoute la traduction pour l'hébergement de site.
✨ feat(templates/price.twig): Ajoute les prix pour les offres d'hébergement.
✨ feat(AutoCreatedAvisPaymentCommand): Génère les avis de paiement pour l'hébergement.
♻️ refactor(PriceController): Gère la sauvegarde des prix d'hébergement.
📧 feat(avis-payment-wait.twig): Améliore le formatage du mail d'avis de paiement.
✨ feat(EsyWeb): Ajoute gestion des licences et clés DMA pour sites web
Ajoute la gestion des licences pour les sites web EsyWeb, incluant
la génération, le renouvellement et la validation. Intègre aussi
la création et l'utilisation de clés DMA.
```
✨ feat(Website): Ajoute une relation Website-Serveur.
✨ feat(form/website): Ajoute le choix du serveur au formulaire de création de site.
✨ feat(infra/website): Crée un endpoint API pour le déploiement des sites.
✨ feat(twig): Ajoute des filtres twig pour slugify et récupérer la clé API principale.
✨ feat(compute): Ajoute une relation OneToMany vers Website.
♻️ refactor(ApiSubscriber): Gère les préfixes d'API privés séparément.
```
✨ feat(Website): Crée une clé API et DNS principal lors de la création.
🔒 fix(ApiSubscriber): Valide le header EsyWebDns pour l'accès API.
✨ feat(ServerCard): Met à jour l'affichage des métriques serveur.
✨ feat(StatusController): Ajoute un endpoint pour vérifier l'état du site.
🐛 fix(CustomerController): Corrige une faute de frappe dans un flash message.
✨ feat(customer): Ajoute l'entité CustomerWallet et la vue porte-monnaie.
♻️ refactor(template): Renomme external.twig en wallet.twig.
✨ feat(website): Ajoute une option pour afficher les options du site.
🐛 fix(serverCard): Affiche correctement le statut en temps réel via MQTT.
🌐 i18n: Corrige une faute de frappe dans la traduction de "Newsletter".
```
✨ feat(src/Entity/CustomerAdvertPayment.php): Ajoute relation one-to-one avec AvisPaymentState
✨ feat(src/Controller): Crée ValidateAdvertController et template pour validation des avis
✨ feat(translations): Ajoute traduction pour renouvellement nom de domaine
✨ feat(templates): Ajoute lien vers validation des avis de paiement dans intranet
✨ feat(templates): Améliore formulaire prix avec champs dépot, renouvellement, rétablissement et gestion NDD
✨ feat(src/Command): Crée commande pour générer automatiquement les avis de paiement
✨ feat(src/Controller): Ajoute les custom price pour dépot, renouvellement, retablissement, gestion NDD
✨ feat(src/Repository): Ajoute une fonction pour recuperer les ndd expirant bientot
✨ feat(src/Controller): Affiche seulement les avis valider dans les factures client
✨ feat(src/Service): Ajoute fonction pour recuperer les ndd expirant bientot
```
Ajoute une fonctionnalité de partage de fichiers temporaires avec suppression automatique après 30 minutes et génération de QR codes. Ajoute aussi une tâche cron pour supprimer ces fichiers.
Ce commit implémente l'ajout et la visualisation des sites internet.
Il inclut la gestion de formulaires, l'enregistrement en base de données,
et l'affichage des détails.
⚙️ chore(vich_uploader.yaml): Ajoute la configuration pour l'upload des échéances.
✅ feat(CustomerSplit): Ajoute les champs pour gérer l'upload du fichier d'échéance.
✨ feat(esyweb): Ajoute un contrôleur et une page pour les sites web
🐛 fix(register): Corrige l'enregistrement des paiements partiels et complets
✨ feat(Payment): Gère les paiements complets et partiels via Stancer
✨ feat(BillingEvent): Ajoute des listeners pour les paiements complétés
Crée une page pour lister et gérer les tutoriels ESY-WEB dans Artemis.
Ajoute un formulaire pour créer de nouveaux tutoriels.
Gère l'upload de fichiers mp4 pour les tutoriels.
✨ feat(CustomerDnsEmail): Ajoute un champ 'isBilling' à l'entité.
♻️ refactor(.env): Ajoute la clé MAILCOW_KEY pour l'API Mailcow.
✨ feat(CustomerController): Synchronise les boîtes mail Mailcow avec CustomerDnsEmail.
🐛 fix(BackupCommand): Corrige un problème de suppression de fichier SQL.
✨ feat(CustomerDns.php): Ajoute la relation avec les emails du NDD.
✨ feat(email.twig): Crée le template pour afficher les emails du NDD.
✨ feat(CustomerController.php): Récupère les emails du NDD.
✨ feat(Customer): Ajoute la fonction de clonage d'entité Customer.
✨ feat(SignClient): Utilise Docuseal avec PDF pour la signature des devis.
✨ feat(AvatarController): Ajoute un endpoint pour le verrouillage de l'application.
✨ feat(IpWall): Ajoute un composant web pour bloquer l'accès basé sur l'IP.
🎨 style(admin.scss): Ajoute des styles pour le modal de paiement et les murs de sécurité.
✨ feat(RegisterPayment): Ajoute un composant pour enregistrer les paiements.
🐛 fix(DevisPdf): Corrige l'alignement des totaux dans le PDF du devis.
🔥 chore: Ajoute discord_bot/node_modules au .gitignore.
✨ feat(ExportComptable): Ajoute une commande pour exporter les données comptables.
✨ feat(LockdownWall): Ajoute un composant web pour le verrouillage de l'application.
🐛 fix(CustomerController): Corrige la copie des contacts lors du clonage du client.
✨ feat(SecurityWall): Ajoute un composant web pour activer/désactiver le filtre de confidentialité.
Ce commit supprime les fichiers obsolètes liés à la gestion des
newsletters. Ces fichiers ne sont plus utilisés et leur suppression
simplifie le code base. Les fichiers supprimés incluent des
contrôleurs, des templates Twig et des classes JavaScript.
✨ feat(newsletter): Ajoute l'éditeur de template d'email avec Preact
Crée un nouvel éditeur de template d'email en utilisant Preact et
react-email-editor, et l'intègre au contrôleur et aux vues.
```
✨ feat(order/f.twig): Affiche les factures du client avec actions.
✨ feat(CustomerController): Gère l'affichage et l'envoi des factures.
🆕 feat(FacturePdf): Crée un service PDF pour les factures clients.
🆕 feat(ContactListType): Ajoute un formulaire pour créer une liste de contacts.
🆕 feat(ContactController): Gère les listes de contacts pour la newsletter.
✨ feat(base.twig): Ajoute un menu pour la gestion de la newsletter.
✨ feat(CustomerOrder): Ajoute les champs et annotations pour l'upload de facture.
🆕 feat(contact.twig): Affiche la liste des contacts.
🆕 feat(BillingEventSusbriber): Gère la génération de la facture PDF.
🆕 feat(TemplateController): Initialise le controller des templates de newsletter.
🆕 feat(CompaignController): Crée un controller pour les campagnes newsletter.
🎨 style(admin.scss): Ajoute le style css pour la card contact newsletter.
🆕 feat(add.twig): Ajoute le formulaire de création de liste de contact.