4110caa25a
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
84 lines
6.3 KiB
Markdown
84 lines
6.3 KiB
Markdown
# Changelog
|
|
|
|
Toutes les modifications notables de MesRelevés sont documentées dans ce fichier.
|
|
Format : [Keep a Changelog](https://keepachangelog.com/fr/1.0.0/) — versionnage [Semver](https://semver.org/lang/fr/).
|
|
|
|
---
|
|
|
|
## [1.0.3] — 2026-06-04
|
|
|
|
### Ajouté
|
|
|
|
- **Numéro de version dans l'assistant d'installation** — affiché sous le titre « Assistant d'installation » dans le layout du wizard (lu depuis le fichier `VERSION`)
|
|
|
|
### Corrigé
|
|
|
|
- **Assistant d'installation — conflit pgsql/mysql (cause racine)** : lors d'un démarrage sur serveur vierge, `public/index.php` auto-crée un `.env` depuis `.env.example` (driver `pgsql`) et Laravel charge cet env via `putenv()` au niveau OS. Les sous-processus `exec()` héritent cet env ; `phpdotenv` en mode immutable refuse d'écraser une variable déjà présente dans l'env OS → le `.env` réécrit avec `DB_CONNECTION=mysql` par le wizard était ignoré par le subprocess de migration, qui tentait une connexion PostgreSQL. Correction : les migrations sont maintenant exécutées via `Artisan::call()` dans le processus courant, après reconfiguration explicite en mémoire (`config(['database.default' => ...]`) + `DB::purge()` — aucun héritage d'env parasite.
|
|
- **`.htaccess`** — suppression des directives `php_flag display_errors on` ajoutées temporairement pour déboguer l'erreur 500 sur hébergement mutualisé.
|
|
|
|
---
|
|
|
|
## [1.0.2] — 2026-06-04
|
|
|
|
### Corrigé
|
|
|
|
- **Assistant d'installation — conflit de connexion pgsql/mysql** : un fichier `bootstrap/cache/config.php` résiduel (produit par `php artisan optimize` sur le poste de développement) était lu en priorité sur le `.env` réécrit par le wizard, forçant une connexion PostgreSQL même quand MySQL était sélectionné. Un appel à `config:clear` est maintenant effectué entre l'écriture du `.env` et l'exécution des migrations.
|
|
- **Archives de déploiement** : `bootstrap/cache/*.php` exclu du build rsync pour éviter qu'un cache de configuration de développement ne soit embarqué dans les distributables.
|
|
|
|
---
|
|
|
|
## [1.0.1] — 2026-06-04
|
|
|
|
### Ajouté
|
|
|
|
- **Page Carte** — carte interactive (Leaflet + OpenStreetMap) affichant les lieux géolocalisés ayant des relevés ; marqueurs proportionnels au nombre de sources, popups avec détail des sources et lien vers la recherche ; compatible mode sombre
|
|
- **Mode sombre** — détection automatique de la préférence système ; sélecteur clair / sombre / automatique dans la barre de navigation (mémorisé dans `localStorage`, sans flash au chargement) ; couverture complète des vues et composants
|
|
- **2FA par e-mail** — code PIN à 6 chiffres envoyé à la connexion dès qu'un serveur SMTP est configuré ; code valable 10 minutes, renvoi possible
|
|
- **Configuration SMTP depuis l'interface** — formulaire dans Administration → Paramètres du site avec test de connexion en temps réel ; activation du 2FA automatique à l'enregistrement
|
|
- **Import / export CSV utilisateurs** — import en masse avec détection automatique du séparateur (`;`/`,`), validation par ligne, génération de mot de passe aléatoire ; export filtré au format CSV UTF-8 BOM (compatible Excel)
|
|
- **Filtre actif / inactif** sur la liste des utilisateurs
|
|
- **Titre du site configurable** depuis les paramètres (sans éditer `.env`)
|
|
- **Version affichée** dans Administration → Paramètres du site avec indicateur de mise à jour disponible
|
|
- **Option de désactivation des mises à jour automatiques** dans les paramètres
|
|
- **Sélecteur d'utilisateur avec recherche** — fenêtre modale remplaçant les `<select>` pour l'ajout de membres aux sections et sources (adapté à plusieurs centaines d'utilisateurs)
|
|
- **`public/servercheck.php`** — outil de diagnostic serveur autonome (PHP, extensions, répertoires, test BDD) pour les environnements de test
|
|
|
|
### Modifié
|
|
|
|
- **Assistant d'installation** — auto-création du `.env` minimal (clé temporaire, drivers fichier) à la première requête si aucun `.env` n'existe, évitant l'erreur 500 sur un serveur vierge
|
|
- **`.htaccess`** — ajout de `FallbackResource /index.php` en fallback pour les hébergements sans `mod_rewrite`
|
|
- **Logo dans la navigation** — contraint par `max-height` inline pour s'adapter à la hauteur de la barre sans débordement
|
|
- **Panneau "Paramètres généraux"** remonté en première position dans la page de paramètres
|
|
- **README** — procédure d'installation mutualisée (PHP + MySQL) mise en avant ; procédure Docker corrigée (stack réelle : PHP-FPM + Nginx + PostgreSQL, sans Redis)
|
|
|
|
### Corrigé
|
|
|
|
- Champs de formulaire illisibles en mode sombre (texte clair sur fond clair) — règle CSS globale `@layer base` couvrant tous les `<input>`, `<select>`, `<textarea>`
|
|
- Composant `lieu-picker` entièrement sans style en mode sombre
|
|
- Erreur 500 à l'ouverture de `/setup` sur un serveur sans `.env` (`MissingAppKeyException`)
|
|
- Menu Administration débordant hors de la zone visible en haut de l'écran
|
|
|
|
---
|
|
|
|
## [1.0.0] — 2026-05-29
|
|
|
|
### Ajouté
|
|
|
|
- Scaffold Laravel 12 + PostgreSQL + authentification Breeze
|
|
- Modèle de données complet : lieux (hiérarchie récursive), sections, dépôts, types de sources, sources, relevés (JSONB), utilisateurs et rôles
|
|
- CRUD Lieux avec arbre hiérarchique et calcul automatique de `nom_long`
|
|
- CRUD Sections, Dépôts, Types de sources (admin)
|
|
- CRUD Sources avec assignation de membres et workflow de statut (`à_faire → en_cours → à_valider → terminé`)
|
|
- Formulaire de saisie dynamique des relevés piloté par `source_type_fields`
|
|
- Calendriers grégorien, julien et républicain avec conversion automatique
|
|
- Recherche plein texte sur les relevés avec filtres (type, lieu, plage d'années)
|
|
- Export GEDCOM 5.5.1 par source ou par sélection de recherche
|
|
- Notifications in-app et par e-mail lors des transitions de statut
|
|
- Interface d'administration : tableau de bord, gestion utilisateurs (actifs/inactifs), sections, types de lieux
|
|
- Comptes actifs / inactifs avec statistiques de section dans le tableau de bord
|
|
- Logo du site, favicon et contrôle des inscriptions publiques
|
|
- Assistant d'installation web en 5 étapes (`/setup`)
|
|
- Système de versioning et de mise à jour automatique (`app:update`, `app:rollback`)
|
|
- Compatibilité MySQL / MariaDB en plus de PostgreSQL
|
|
- Déploiement Docker (PHP-FPM + Nginx + PostgreSQL) via `docker-compose.prod.yml`
|