Portail AQDR

National

AD

Admin National

Webmestre

Journal des Modifications

Historique complet des améliorations et corrections du Portail AQDR.

6 versions
v1.6.0Dernière version
2026-05-08
Renommage — Portail AQDR
  • L'application s'appelle maintenant **Portail AQDR** (était AQDR M3) — titre de page, sidebar, dumps SQL, journal des modifications
  • Domaine : `portail.aqdr.org` configuré dans Vercel
Menu Développement (nouveau)
  • Nouvelle section **Développement** dans la navigation latérale (couleur violette, icône Terminal)
  • Page `/admin/dev` — Connexion & Synchronisation BD — protégée par la clé Super Admin
  • **Connexion MySQL source** : formulaire (hôte, port, utilisateur, mot de passe, base de données) avec bouton de test de connexion ; liste toutes les tables avec leur nombre de lignes
  • **Synchronisation vers Railway** : sélection individuelle ou globale des tables, lancement du sync avec journal en temps réel (terminal vert) et progression par table ; les tables absentes dans Railway sont créées automatiquement ; utilise `INSERT IGNORE` pour ne pas écraser les données existantes
  • **Lien rapide** vers la page Sauvegarde BD existante
  • Note explicative sur la destination (DATABASE_URL = Railway) et le comportement du sync
v1.5.0
2026-05-07
Dump SQL — barre de progression + taille illimitée
  • Le dump SQL utilise maintenant un **ReadableStream** (chunked transfer) : les données sont envoyées au navigateur au fur et à mesure sans jamais charger tout le fichier en mémoire serveur
  • Barre de progression en temps réel affichant les octets reçus et une animation pulsante pendant le transfert
  • Taille maximale retirée (anciennement 100 MB) — fonctionne pour des bases de données de plusieurs Go
  • Bouton **Annuler** disponible pendant le transfert ; bouton **Reprendre** affiché si la connexion est coupée
  • La barre vire au vert (succès) ou au rouge (erreur) avec message détaillé
Utilisateurs & Accès — Création d'un nouvel utilisateur
  • Le bouton **Nouvel Utilisateur** ouvre maintenant un modal fonctionnel
  • Champs : identifiant (login), nom d'affichage, courriel, mot de passe (min. 8 caractères), rôle
  • Rôles disponibles : Éditeur, Gestionnaire de section, Administrateur National
  • Création dans `wp_users` + insertion des métadonnées `wp_capabilities` et `wp_user_level`
  • Détection automatique des doublons (login ou courriel déjà existant)
  • La liste se rafraîchit automatiquement après la création
Utilisateurs & Accès — Modification fonctionnelle
  • Le bouton **Modifier** ouvre maintenant un modal permettant de changer : nom d'affichage, courriel, rôle
  • Le bouton **Désactiver / Activer** bascule le compte entre `editor` et `usager_desactive`
Transactions — Données réelles depuis le CPT
  • La page Transactions lit maintenant les enregistrements `post_type='transaction'` dans `wp_posts`/`wp_postmeta` au lieu de la table de résumé `wp_transactions`
  • Affiche : date et heure précise, matricule du membre, section, type (renouvellement/adhésion/don), mode de paiement avec icônes, nombre d'années, montant, numéro de chèque / ID Stripe / ID PayPal
Mode sombre
  • Correction du mode sombre (classe `.dark` maintenant définie explicitement dans `globals.css`)
  • La bascule clavier fonctionne correctement en ajoutant/retirant la classe sur `<html>`
Migration Railway
  • Script `migrate.mjs` amélioré : reprise automatique depuis le dernier point de contrôle (INSERT IGNORE + offset)
  • Inclut maintenant les CPTs `transaction` dans `wp_posts` et leurs `wp_postmeta` associées
  • `SET sql_mode='NO_ENGINE_SUBSTITUTION'` pour compatibilité avec les valeurs de date zéro de WordPress
v1.3.0
2026-04-23
Tableau de bord amélioré (inspiré des widgets WordPress)
  • **Widget Paiement Rapide** — recherche d'un membre par numéro matricule, affiche son dossier et permet d'enregistrer un paiement sans quitter le tableau de bord (inspiré du widget WP `add_paiement_widget`)
  • **Renouvellements du mois** — liste en temps réel des membres dont la date de renouvellement est ce mois-ci (mois + année courants)
  • **Statistiques par section** — graphique à barres proportionnelles montrant le nombre de membres par section (top 8)
  • **Membres expirés** — compteur cliquable vers la liste filtrée
  • Carte de statistique « Renouvellements dus » maintenant calculée en temps réel depuis la base de données
Dossier membre — Impression (inspiré des vues PHP du thème)
  • **Lettre d'abonnement** — page imprimable générée avec adresse, section et numéro de membre
  • **Lettre de renouvellement** — avis de renouvellement avec date d'expiration et montant de cotisation
  • **Deuxième avis de renouvellement** — version avec encadré d'avertissement urgence
  • **Carte de membre** — carte plastifiée imprimable avec matricule en gras
  • Toutes les impressions s'ouvrent dans un nouvel onglet et proposent `Imprimer / Fermer`
Dossier membre — Courriel (inspiré du widget Email WP)
  • Boutons : Courriel d'abonnement, Courriel de renouvellement, Courriel du dernier avis, Courriel TEST
  • Chaque envoi est **loggé automatiquement** dans l'historique des communications (CPT `communication` avec `wpcf-type-de-communication`)
  • Indicateur visuel par bouton (en cours / envoyé / erreur)
  • Section Communications de l'onglet affiche maintenant les vrais enregistrements issus de la base de données
Dossier membre — Sauvegarde automatique
  • Délai de 1,5 seconde après chaque modification d'un champ
  • Badge flottant en bas à droite : « Sauvegarde... / Sauvegardé / Erreur »
  • Fonctionne sur tous les onglets (Général, Démographie, Abonnement)
Transfert de membres (nouvelle fonctionnalité)
  • Page `/transferts` — gestionnaire de demandes de changement de section
  • Un gestionnaire de section soumet une demande (membre, section actuelle → nouvelle section, motif)
  • Un administrateur national peut **Approuver** (applique le changement sur `wpcf-section-du-membre`) ou **Refuser**
  • Historique des demandes avec filtre par statut (En attente / Approuvés / Refusés / Tous)
  • Lien « Transferts » ajouté dans la navigation principale
Corrections
  • **Date de naissance** — était stockée en timestamp Unix (strtotime) dans WordPress. Maintenant convertie correctement en `YYYY-MM-DD` pour l'input HTML, et reconvertie lors de la sauvegarde
  • Onglet Communications du dossier membre affiche maintenant les vraies données filtrées par ID membre
  • Onglet Transactions du dossier affiche un compteur dans l'onglet
  • API route `/api/membres/recherche?matricule=` ajoutée pour la recherche côté client
v1.2.0
2026-04-23
Adaptations depuis le thème WordPress AQDR
  • Modèle de données membres complet (appellation, extension, capitale, newsletter, adresse invalide, décédé, mois/année renouvellement)
  • Logique de statut corrigée (post_status = publish/draft)
  • Formulaire de paiement intégré au dossier membre
  • Sections locales : conseil d'administration, frais, site web, fax
  • MemberTransactionRepository pour les transactions individuelles (CPT `transaction`)
  • Nouveau formulaire membre avec tous les champs WP
v1.1.0
2026-04-23
Améliorations
  • Topbar ajouté dans la mise en page
  • Filtres unifiés dans la liste des membres (recherche + section + statut)
  • Page Transactions : pagination + style + filtre par type
  • Page Communications : style amélioré + pagination
  • Sections : bouton « Voir les membres » fonctionnel
  • Journal des modifications dans la navigation
v1.0.0
2026-04-01
Lancement initial
  • Tableau de bord avec statistiques en temps réel
  • Gestion des membres (liste, création, modification)
  • Sections locales, transactions, communications, utilisateurs
  • Intégration base de données WordPress legacy via Drizzle ORM