Changelog

Découvrez les dernières évolutions de la plateforme S-PASS Territoires

Amélioration des démarches participatives

✨ Nouveau format participatif : « Actualité »

Le format Actualité est désormais disponible dans les démarches participatives.

  • Les animateurs peuvent créer et modifier des démarches de type actualité, au même titre que les autres démarches existantes.
  • L’intégration s’aligne sur les autres types de contributions, sans changement des parcours ou des règles d’édition.

Amélioration des démarches participatives

🔧 Nouvelles fonctionnalités et ajustements

  • Correction d’un bug sur les conditions d’affichage des acteurs
    Dans le formulaire de contribution de type Publication, les conditions v-if des champs acteurs ont été corrigées pour utiliser les bons identifiants. :
    author, editor, personality.
    Cela permet de corriger la logique d’affichage avec la configuration demandée.
  • Révision des libellés et des composants du formulaire de contribution
    • Le libellé « Auteur des photographies, des médias ou des pièces jointes » a été renommé en « Crédits des pièces jointes ».
    • Le libellé « Je ne suis pas l’auteur » a été renommé en « Autre ».
    • La section « Crédits des pièces jointes » est désormais placée avant « Mes informations personnelles », afin de renforcer la cohérence avec les pièces jointes associées.
  • Ajout du champ « Crédits des pièces jointes »
    Le champ est également disponible dans le paramétrage des textes d’aide à la saisie pour aider les utilisateurs sur les attentes de cette section.

Mise à jour de MapLibre vers la version 5.13

🗺️ Mise à jour de la bibliothèque MapLibre

La bibliothèque MapLibre GL JS utilisée dans le backoffice et sur les portails a été mise à jour de la version 3.6 vers la version 5.13.
Cette évolution assure une meilleure compatibilité avec les navigateurs récents, de meilleures performances et un support amélioré des fonctionnalités modernes de rendu.

🔧 Détails de la mise à jour

  • Migration de MapLibre 3.6 → 5.13.
  • Ajustements des composants du backoffice et portail utilisant MapLibre.
  • Adaptation des appels API et des options de rendu désormais modifiées ou dépréciées dans MapLibre 5.x.

🎯 Impact

  • Performances de rendu améliorées sur toutes les cartes.
  • Meilleure stabilité sur les navigateurs modernes (Chrome, Firefox, Safari).
  • Préparation aux futures évolutions (support WebGL2, options avancées, compatibilités globe).
  • Aucun impact fonctionnel majeur attendu pour les utilisateurs finaux.

Mode enrichi : intégration des story maps S-PASS Labs

🧪 Intégration des story maps Labs S-PASS

Le bloc d’intégration du mode enrichi prend désormais en charge l’embarquement des story maps hébergées sur S-PASS Labs.
Cela permet d’intégrer directement, dans les contenus éditoriaux, des cartes expérimentales ou spécialisées construites sur la plateforme Labs.

🔧 Détails de la mise à jour

  • Ajout d’un nouveau service d’intégration S-PASS Labs dédié aux URL du type :
    • https://labs.s-pass.org/story-maps?mc=qkFYrK&ct=hcyelL&gh=u0cgg3-8.0
    • https://labs.s-pass.org/story-maps/viewer?mc=qkFYrK&ct=hcyelL&gh=u0cgg3-8.0
  • Définition d’un schéma de configuration (regex + URL d’embed) pour reconnaître et transformer ces liens en iframe intégrée.
  • Mise à jour du *bloc d’intégration afin d’afficher un badge de service spécifique pour S-PASS Labs.

Décommissionnement de l’Atlas Dynamique

🗺️ Décommissionnement de l’Atlas Dynamique

L’ancien Atlas Dynamique (technologie Flash, abandonnée depuis plusieurs années) est désormais retiré de la plateforme.
Le visualiseur JavaScript historiquement utilisé pour la lecture seule a été archivé afin de conserver l’accès aux anciennes cartes.

🔁 Archivage du visualiseur

  • Ancienne URL : https://s-pass.org/mapviewer/index.html?mapid=XXXX
  • Nouvelle URL archivée : https://archives.s-pass.org/mapviewer/index.html?mapid=XXXX

Le paramètre mapid reste identique pour permettre la continuité de consultation.

📦 Sauvegarde des contenus existants

Pour garantir la pérennité des ressources :

  • Les vignettes ont été importées comme pièces jointes / images des ressources “Carte”.
  • Les notes de carte (dessins) ont été converties en GeoJSON et ajoutées comme pièces jointes / documents des ressources “Carte”. :
  • Un lien vers le visualiseur archivé a été automatiquement ajouté à l’onglet Liens.

🧹 Suppression programmée des blocs « carte dynamique » dans les publications

Un email a été envoyé aux utilisateurs concernés pour les informer de la suppression automatique des blocs carte dynamique dans les publications numériques le 31 janvier 2026.

🎯 Recommandation avant suppression

Les utilisateurs peuvent, s’ils le souhaitent, mettre à jour leurs publications :

  1. Ouvrir les carnets concernés.
  2. Remplacer le bloc carte dynamique par un bloc image.
  3. Ajouter un lien externe vers la carte (IGN Ma Carte, uMap, etc.).

🕊️ Si aucune action n’est faite

Les blocs seront simplement retirés, sans impact sur le reste du contenu.

🎯 Impact

  • Suppression d’une technologie obsolète (Flash).
  • Archivage des cartes existantes dans des formats ouverts et réutilisables.
  • Transition vers des solutions modernes et pérennes (IGN Ma Carte, uMap…).
  • Allègement du code historique et amélioration de la maintenabilité.

Mise à niveau des clusters Kubernetes et augmentation du stockage

🔄 Mise à niveau du cluster Kubernetes

Mise à jour du cluster Kubernetes de production vers la version 1.31, conformément au cycle de support du provider cloud.
Cette opération a été réalisée de manière planifiée, avec une interruption temporaire contrôlée des services afin d’assurer une montée de version propre et sécurisée.

🆕 Changements réalisés

  • Passage du cluster de 1.29 vers 1.31, en anticipation de la fin de support officielle.
  • Vérification de la compatibilité applicative et mise à jour des workloads associés.
  • Reprise contrôlée des services après validation du bon fonctionnement.

📦 Augmentation de l’espace de stockage

Profitant de cette maintenance, l’espace de stockage associé aux volumes persistants a été augmenté afin d’accompagner la croissance des données (médias, documents, caches).

  • Taille des volumes revue à la hausse pour renforcer la capacité et prévenir les risques de saturation.
  • Aucun changement fonctionnel pour les utilisateurs.

🎯 Impact

  • Brève indisponibilité planifiée le temps de l’opération.
  • Le cluster bénéficie désormais des correctifs, optimisations et évolutions de Kubernetes 1.31.
  • Les volumes disposent d’une capacité étendue, garantissant la continuité de service et l’évolution des usages.

Migration des load balancers MKS vers Octavia

🔄 Migration vers les nouveaux Load Balancers Octavia

Les load balancers historiques du Managed Kubernetes Service (MKS) d’OVHcloud ont été migrés vers la nouvelle solution Public Cloud LoadBalancer (Octavia).

Cette évolution garantit une meilleure disponibilité, une gestion réseau modernisée et la conformité avec les changements introduits à partir de Kubernetes 1.31, où l’ancien load balancer MKS n’est plus utilisé par défaut.

🔧 Détails de la mise à jour

  • Migration des services exposés via type: LoadBalancer vers la technologie Octavia.
  • Suppression des anciennes annotations propres au MKS LB.
  • Vérification de la compatibilité et des adresses IP externes associées.
  • Mise à jour de la configuration réseau et des règles de sécurité associées.

⚡️ Impact sur les performances

Le passage au modèle Octavia apporte une amélioration notable :

  • débit réseau supérieur,
  • meilleure gestion des connexions simultanées,
  • montée en charge optimisée sous forte activité,
  • latence plus stable sur les flux applicatifs (assets, médias, API).

🎯 Résultat

La plateforme bénéficie désormais d’une infrastructure réseau plus robuste, alignée sur les dernières évolutions du provider cloud et capable d’absorber les usages croissants de S-PASS Territoires, notamment sur les flux multimédias et cartographiques.

Mise en ligne de l’application Changelog S-PASS

✨ Lancement de l’application Changelog

Mise en ligne de la nouvelle application Changelog S-PASS, dédiée au suivi des évolutions techniques et fonctionnelles de la plateforme.
Cette interface permet de centraliser les mises à jour des différents modules et d’offrir une lecture transparente de la progression du projet.

🚀 Objectifs

  • Informer les partenaires et utilisateurs des évolutions clés de la plateforme.
  • Valoriser la traçabilité des versions et la cohérence du cycle de publication (CalVer).
  • Offrir une présentation claire, illustrée et consultable en ligne via changelog.s-pass.org.

🎯 Impact

La plateforme dispose désormais d’un espace public dédié au suivi des versions.

Nouveaux formats participatifs et dates flexibles

✨ Points forts

  • Introduction de nouveaux formats de posts participatifs dans les categories Observatoire et Médiathèque.
  • Évolution du modèle de données des dates : les champs de type date peuvent désormais être renseignés de manière flexible (jour, mois, année ou période) pour mieux s’adapter à la diversité des contenus.

🚀 Nouvelles fonctionnalités

  • Ajout des nouveaux types de posts participatifs :
    • Observatoire : Marqueur, Projet, Réalisation, Action
    • Médiathèque : Publication
  • Introduction du format date flexible :
    • Le champ date de publication dans toutes les sous-catégories de l'Observatoire peut désormais être saisi en jour, mois, année ou période.
    • Le champ date de prise de vue pour la sous-catégorie Image utilise désormais le même principe.

Amélioration du comparateur d’images

🚀 Nouvelles fonctionnalités

  • Ajout d’un bouton d’agrandissement sur le comparateur d’images du mode enrichi, permettant d’afficher la vue en quasi plein écran via une fenêtre modale.
    Cette évolution améliore la lisibilité et le confort d’utilisation lors de la comparaison de visuels détaillés.

Mise en ligne du site S-PASS Labs

🧪 Lancement de S-PASS Labs

Mise en ligne de S-PASS Labs, l’espace d’exploration et d’innovation de la plateforme S-PASS Territoires.
S-PASS Labs a pour vocation d’expérimenter de nouvelles approches, de tester des technologies émergentes et de transformer les idées en prototypes concrets qui préparent les évolutions futures de la plateforme.

🚀 Une vision pour l’innovation

Accélérer l’innovation

Transformer rapidement des idées en démonstrateurs concrets afin d’en évaluer le potentiel avant intégration en production.

Explorer de nouvelles approches

Tester des technologies émergentes — IA, cartographie avancée, interopérabilité — et mesurer leur impact sur les métiers du réseau CAUE.

Impliquer nos partenaires

Encourager la co-construction avec les CAUE et la communauté S-PASS, en recueillant retours, besoins et propositions pour orienter les développements à venir.

🎯 Objectif

Inventer aujourd’hui les outils des territoires de demain, en plaçant l’expérimentation et le partage au cœur de l’écosystème S-PASS.

Test d’intégration POP Culture

🧪 Contexte

Mise en place d’un test d’intégration pour la connexion à l’API POP Culture.
Ces essais visent à valider la structure des données importées, le bon fonctionnement de la commande d’import et la compatibilité du module Observatoire.

⚙️ Éléments testés

  • Intégration POP Culture API
    • Vérification de la récupération et de l’affichage des ressources culturelles liées (monuments, œuvres, etc.).
  • Utilitaire GeocodeHelper
    • Validation du géocodage automatique sur les fiches importées.
    • Vérification de la cohérence entre adresse, coordonnées et territoire.
  • Commande CaueImportPopCultureCommand
    • Exécution en environnement de test pour valider le flux complet d’import POP → Base S-PASS.

🔎 Résultat attendu

  • Import et enrichissement des fiches Observatoire avec les données issues de POP Culture.
  • Géocodage fonctionnel des nouveaux enregistrements.
  • Aucun impact sur les performances observé en mode préproduction.

📋 Prochaine étape

Finaliser les tests de performance et d’indexation en préproduction.

Ajout du champ date de mise en ligne

✨ Points forts

Un nouveau champ date de mise en ligne a été ajouté aux ressources afin de distinguer clairement la date de création de la date de mise en ligne.
Les documents sont désormais triés par date de mise en ligne lorsqu’elle est renseignée, ce qui offre un affichage plus cohérent et plus intuitif des contenus récents sur les portails.
Pour les enregistrements existants, la date de création reste utilisée par défaut.

🚀 Nouvelles fonctionnalités

  • Ajout du champ date de mise en ligne dans la base de données et migration des données existantes.
  • Adaptation de la logique de tri dans les contrôleurs, vues et modèles.
  • Actualisation des libellés et traductions dans l’interface (Date de mise en ligne).
  • Harmonisation du tri sur les pages d’index, de recherche et de consultation.

Amélioration du bloc Image

🚀 Nouvelles fonctionnalités

  • Le bloc Image prend désormais en charge les liens cliquables, permettant d’associer une URL ou une action directement à une image insérée dans le mode enrichi.
    Cette amélioration renforce l’interactivité des fiches et des pages éditoriales, tout en garantissant une compatibilité complète avec les contenus existants.

Ajout de la commande d’import ArchiRès

🧪 Intégration et validation technique

Ajout d’une nouvelle commande CaueImportArchiResCommand pour l’import des données ArchiRès dans la base de données.
Cette implémentation vise à valider le flux d’intégration et la structure des entités avant automatisation complète du traitement.

⚙️ Détails techniques

  • Développement d’une commande Symfony dédiée pour importer les données ArchiRès.
  • Prise en charge de paramètres CLI : --limit, --batch-size, --offset pour un contrôle précis des volumes d’import.
  • Traitement des fichiers JSON et gestion des relations complexes entre entités (projets, établissements, auteurs, etc.).
  • Mise à jour conditionnelle des templates d’affichage pour exposer les ressources ArchiRès lorsque disponibles.

Mise en ligne de la Documentation Technique

📘 Lancement de la Documentation Technique

Mise en ligne de la Documentation Technique S-PASS Territoires, le site de référence destiné à l’ensemble des acteurs techniques de la plateforme.
Elle regroupe les informations nécessaires à la mise en œuvre, la maintenance et l’évolution des différents modules applicatifs et composants d’infrastructure.

Cette documentation est produite dans le cadre de la convention de partenariat entre le CAUE du Nord et l’Association S-PASS Territoires, assurant la continuité et la mutualisation des compétences techniques.

🚀 Objectifs

  • Fournir une documentation centralisée et versionnée pour les développeurs, administrateurs et prestataires.
  • Garantir la traçabilité des choix techniques et la cohérence des déploiements dans l’écosystème S-PASS.
  • Faciliter l’onboarding des partenaires techniques et la montée en compétence des équipes.

🔐 Accès restreint

La documentation n’est pas en consultation publique.
Elle est protégée par Cloudflare Access, nécessitant une authentification sécurisée pour les membres habilités (équipe technique S-PASS, CAUE partenaires et prestataires agréés).

🎯 Public visé

Cette documentation s’adresse aux :

  • Développeurs intégrant ou maintenant les applications S-PASS.
  • Administrateurs systèmes gérant les environnements Kubernetes, bases de données et CI/CD.
  • Prestataires et partenaires techniques impliqués dans la maintenance et les évolutions de la plateforme.

💡 Accès

Disponible en ligne à l’adresse :
👉 docs.s-pass.org

Renforcement de la protection anti-spam

✨ Amélioration de la fiabilité des formulaires

Le champ téléphone du formulaire de contact a été remplacé par un champ site web (website_url) servant de leurre anti-spam (honeypot).
Cette évolution a pour objectif de réduire les soumissions automatiques par des robots sur les portails S-PASS, tout en conservant un comportement transparent pour les utilisateurs légitimes.

Parallèlement, la logique de détection linguistique (Igbo) a été corrigée afin d’améliorer la reconnaissance des textes multilingues dans les messages entrants.

🚀 Détails de la mise à jour

Formulaire de contact

  • Remplacement du champ phone par website_url
  • Le champ website_url agit désormais comme champ piège (honeypot) pour bloquer les soumissions automatisées.

Détection linguistique (Igbo)

  • Correction du motif des diacritiques :
    igboPattern/[ịụọọ]/iu
  • Ajustement de la liste de mots-clés :
    igboWords/\b(ndewo|achọrọ|ịmara|ọnụahịa|gị)\b/iu

Mise à jour des traductions

🌐 Traductions

Correction et harmonisation des libellés dans les fichiers de traduction allemand, anglais, français et néerlandais.
Ajout de nouvelles clés à traduire pour les futures fonctionnalités.

Prise en charge des liens YouTube Shorts

🎬 Intégration vidéo

Le composant bloc d'intégration de contenu du mode enrichi prend désormais en charge les liens YouTube Shorts.
La détection des URLs YouTube a été élargie pour inclure le format youtube.com/shorts/, permettant l’intégration automatique de ces vidéos dans les blocs embarqués.

Correction du comportement des modales dans le composant Galerie

✨ Amélioration du composant Galerie

Correction du comportement du fond de modale et de la fermeture dans le composant Galerie du mode enrichi.
La modale ne se ferme plus au clic extérieur et sa transition est désormais gérée de manière plus fluide lors de la sélection de médias.

Ajout de nouvelles catégories CAP et refactorisation Docker

✨ Mise à jour des listes pour la ressource CAP

Ajout de nouvelles valeurs dans les champs type de construction, problématiques et orienté vers.

  • Champ type de construction : ajout de Équipement
  • Champ problématique : ajout de Biodiversité
  • Champ orienté vers : ajout de conseiller CAUE

🐳 Refactorisation de la configuration Docker

Refonte de la configuration Docker pour améliorer la persistance des données et simplifier la maintenance :

  • Suppression de l’ancien fichier docker/docker-compose.yml obsolète
  • Mise à jour du docker-compose.yml principal :
    • ajout d’un volume persistant MariaDB (./docker/mariadb → /bitnami/mariadb)
    • ajout du montage ./docker/dump pour les scripts d’initialisation de base
  • Suppression de la configuration Mutagen (synchronisation de fichiers)
  • Ajout du répertoire /docker/mariadb/* au .gitignore

Ces changements garantissent la pérennité des données locales entre les redémarrages de conteneurs et clarifient la structure du projet Docker.

Suppression de la fonctionnalité d'administration des applications

🗑️ Suppression de l’interface d’administration des applications dans le backoffice

Suppression complète de la fonctionnalité d’administration des applications dans le backoffice.
Cette évolution vise à retirer un code devenu obsolète et non utilisé, en supprimant les contrôleurs, routes et modèles associés à cette partie de l’interface.

Modification de la réponse de l’API GeoJSON

✨ Évolution de l’API GeoJSON

Les réponses GeoJSON intègrent désormais un champ applicant, alimenté à partir de l’association request_organisme en base de données.
Ce champ permet aux consommateurs de l’API d’accéder directement au nom du demandeur associé à chaque ressource.

{
  "type": "Feature",
  "properties": {
    "id": 84191,
    "step": 6,
    "contribution": false,
    "moderate": true,
    "overhaul": true,
    "abstract": "Encadrement et suivi du stage franco-palestinien dans le cadre de la coop\u00e9ration Lille-Naplouse du 15 avril 2024 au 30 septembre 2024",
    "category": "mission",
    "subcategory": "conseilcollectivite",
    "titre": "Observer le territoire pour imaginer un projet de ville durable - Stage LinkUP",
    "thumbnail": "SPASSDATA\/attachments\/2025_05\/16\/216608-20240711-180351.jpg",
    "tags": "#Communication,#EspaceDInterpretation,#RefonderLesVillesEtLesBourgs,#RevelerLaVilleHistorique,#VieDeLAssociation,#VillePatrimoineVilleDurable,COOPERATION INTERNATIONALE,PROJET URBAIN",
    "applicant": "Ville de Lille",
    "award": false
  },
  "geometry": {
    "type": "Point",
    "coordinates": [
      3.0425411947722,
      50.626547314465
    ]
  }
}

Ajustement des niveaux d’accès

🔒 Harmonisation des niveaux d’accès

Mise à jour des valeurs numériques des constantes de partage afin d’unifier la logique de contrôle d’accès des ressources.

  • PARTAGE_GROUPE30 → 40
  • PARTAGE_COMMUNAUTE40 → 45

Ces ajustements garantissent une meilleure cohérence des droits d’accès et une visibilité adaptée des contenus.

Refactorisation interne

Amélioration interne

Le service CaueSecurity intègre désormais le RouterInterface pour permettre la génération d’URL et les redirections internes sans dépendance externe.

Mise à jour mineure

Correctif mineur

Ajout de l’import de la classe RedirectResponse dans CaueSecurity.php pour permettre son utilisation directe dans la logique de redirection.

Redirection à la connexion et sécurisation des images

Redirection des utilisateurs non authentifiés

Les utilisateurs non connectés tentant d’accéder à une ressource protégée sont désormais redirigés automatiquement vers la page de connexion.
Après authentification, ils sont renvoyés vers la ressource initialement demandée, améliorant la cohérence de l’expérience utilisateur.

Sécurisation de la macro image_caption

Le macro Twig image_caption.html.twig a été renforcé pour prévenir les erreurs et les injections de contenu.

Détails techniques

  • Vérification de la présence de l’objet image avant l’accès à ses attributs.
  • Échappement HTML des champs name, description, et credits.
  • Valeurs par défaut ajoutées pour éviter les erreurs null ou undefined.
  • Rendu conditionnel uniquement si des données de légende sont disponibles.

Redirection à la connexion et sécurisation des images

Légendes d’images unifiées

Création d’un macro Twig image_caption.html.twig pour générer les légendes d’images de manière centralisée dans toute les interfaces
Ce changement réduit la duplication de code et garantit une cohérence visuelle.

Amélioration des modales et du rendu

Optimisation du composant Galerie pour un affichage plus stable :

  • déplacement de la modale en fin de <body> pour éviter les erreurs de superposition ;
  • activation du data-backdrop="true" pour un comportement homogène ;
  • ajout de la propriété blockClass pour personnaliser le conteneur de galerie.

Refactorisation du template item_detail.html.twig afin de rendre la structure plus lisible et logique.

Ajout de la gestion des utilisateurs invités

✨ Gestion des utilisateurs invités

Introduction du concept d’utilisateurs invités (guest users) dans la gestion des ressources, permettant un contrôle d’accès plus fin et plus flexible.
Les documents peuvent désormais être partagés avec des membres spécifiques, même s’ils n’appartiennent pas au groupe d’origine de la ressource.

🚀 Détails de la mise à jour

  • Base de données : création de la table document_guests pour gérer la relation many-to-many entre documents et membres invités.
  • Entité Document : ajout de la propriété guests (collection de Membre) avec configuration des groupes de sérialisation.
  • Formulaire : ajout du champ guests dans DocumentType pour permettre la sélection des utilisateurs invités.
  • Permissions : mise à jour de SpassFilter et CaueSecurity pour inclure les invités dans les contrôles d’accès.
  • API : mise à jour de OrganismeRestController pour filtrer sur hide_geo_coordinates = 0.
  • Traduction : ajout du libellé « Invités » dans les fichiers de traduction français.
  • Interface : adaptation des vues component-base-document-item.html.twig, component-partage-ressource.html.twig, subheader.html.twig et tab-wrapper.html.twig pour afficher et gérer les utilisateurs invités.

🎯 Impact

  • Les documents peuvent désormais être partagés avec des utilisateurs invités disposant d’autorisations dédiées.
  • Les contrôles de sécurité prennent en compte ces guests dans la logique d’accès.
  • Les interfaces affichent les membres invités et leur statut d’accès.
  • Des tests complémentaires sont requis pour valider la bonne application des nouveaux droits et le filtrage API.

Renforcement du contrôle d’accès à l’édition des ressources

🔒 Correctif de sécurité mineur

Ajout d’une vérification d’authentification avant l’autorisation d’édition des ressources, afin d’éviter les erreurs pour les utilisateurs non connectés.

Centralisation de la logique de sécurité

🔐 Centralisation de la logique de sécurité

La gestion de l’authentification et de l’autorisation est désormais confiée à un service dédié :
Caue_SPASSPHP.security, en remplacement de Caue_SPASSPHP.utils.spass.
Ce changement améliore la clarté du code, la séparation des responsabilités et la cohérence des contrôles d’accès sur l’ensemble des API.

🎯 Impact

  • Les contrôleurs utilisent désormais le service Caue_SPASSPHP.security pour toutes les opérations d’accès utilisateur.
  • Meilleure isolation du code métier et réduction des dépendances obsolètes.
  • Aucun changement visible côté utilisateur, mais un socle de sécurité plus robuste.

Amélioration du composant Galerie

✨ Évolution du composant Galerie

Les images du bloc galerie (mode enrichi) peuvent désormais être associées à un lien externe et configurées via une modale dédiée dans l’éditeur.
L’interface d’édition a été enrichie avec de nouvelles actions (suppression, remplacement, configuration du lien).

Modernisation des icônes sociales

🎨 Amélioration de l’interface

Remplacement des icônes sociales basées sur des polices par des SVGs intégrés, offrant un rendu plus homogène et adaptable.
Les styles ont été harmonisés pour assurer une meilleure cohérence visuelle sur l’ensemble des portails.

Ajout de l’endpoint GeoJSON pour les organismes

🗺️ Nouveau point d’accès API

Ajout d’un endpoint /api/organismes/geojson permettant de récupérer les données des organismes au format GeoJSON (nom, coordonnées, taille du groupe, éditeur).
L’accès à cet endpoint est désormais autorisé aux utilisateurs anonymes, avec mise à jour de la configuration de sécurité correspondante.

Ajustements du schéma des widgets et des styles de titres

⚙️ Ajustements de configuration des portails

  • Remplacement du champ hidden par readOnly dans le schéma des widgets pour mieux refléter son usage.
  • Désactivation de keep_oneof_values dans plusieurs configurations JSON afin d’améliorer la flexibilité des valeurs.

🎨 Ajustement de style

Suppression de la propriété font-size: 20px; sur les éléments h1 dans custom.css pour permettre l’héritage naturel des tailles de titres selon la feuille de style globale.

Correction du réordonnancement des blocs de page d’accueil

Correctif fonctionnel

Correction d’un bug dans la configuration des blocs de page d’accueil des portails, survenant lors du réordonnancement de l’ordre d’affichage.
La bibliothèque jsoneditor.js a également été mise à jour pour améliorer la compatibilité et la stabilité de l’édition.

Migration du suivi Matomo vers la version cloud

📊 Suivi analytique

Mise à jour du code de suivi Matomo pour utiliser l’instance cloud s-pass.matomo.cloud, offrant de meilleures performances et une fiabilité accrue.
Le script et les balises noscript ont été adaptés pour intégrer la nouvelle URL et le paramètre referrerpolicy.

Ajout des filtres CAP « archivés » et « à suivre »

🔍 Amélioration de la recherche CAP

Ajout de nouveaux filtres dans la recherche des CAP :

  • inclusion des CAP archivés (witharchived)
  • affichage des CAP à suivre (toFollow)

La vue de liste intègre désormais des cases à cocher pour activer ces filtres et un debounce sur le chargement des données pour optimiser les performances.
L’interface permet également de basculer l’état d’archivage directement depuis la page de détail.

🧹 Nettoyage et optimisations

  • Suppression de champs obsolètes dans CAPType.
  • Nettoyage de fichiers temporaires et simplification du code Vue.
  • Amélioration de la stabilité et de la réactivité de la recherche.

Amélioration du bloc Ressources sur les pages d’accueil

🧭 Nouvelle catégorie de documents

Ajout de la catégorie groupe dans le bloc Ressources des pages d’accueil, avec adaptation du comportement des liens associés.
Les éléments de cette catégorie s’ouvrent désormais dans un nouvel onglet (target="_blank") afin de faciliter la navigation inter-portails sans quitter la page d’origine.

Ajout du champ ISSN pour les publications

✨ Nouveau champ ISSN

Ajout du champ ISSN à l’entité Publication et à ses formulaires associés, avec affichage dans la vue détaillée et validation du format côté interface d’édition.

🚀 Détails

  • Ajout de la propriété issn dans l’entité Publication et mise à jour du schéma de base de données.
  • Validation du format ^[0-9]{4}-[0-9]{3}[0-9X]$ pour assurer la conformité des valeurs saisies.

🎯 Impact

Les utilisateurs peuvent désormais saisir, valider et consulter le numéro ISSN pour chaque publication, garantissant une meilleure identification des ressources documentaires.

Ajout de la modalité « visioconférence »

✨ Nouvelle modalité de visioconférence pour la ressource CAP

Ajout d’une nouvelle modalité « visioconférence », permettant de renseigner une URL de connexion directement dans les formulaires et composants associés.
Cette évolution s’accompagne de plusieurs améliorations de cohérence dans les entités et l’interface.

🚀 Détails

  • Base de données : ajout de la valeur visioconference dans l’énumération modalities.type et du champ url (LONGTEXT).
  • Entité Modality : ajout de la propriété url pour stocker le lien de visioconférence.
  • Formulaire ModalityType : intégration du champ url et du type de modalité visioconference.
  • Interface Vue.js : ajout d’un bouton radio et d’un champ de saisie d’URL visibles lorsque la modalité visioconférence est sélectionnée.
  • Traductions : ajout des clés spass.label.visioconference et spass.label.lien-de-connexion.
  • Divers : ajout de la méthode getFullNameWithOrganization() dans Membre, correction de typographie dans le CAPRepository et amélioration de la mise à jour des dates de fin de documents.

🎯 Impact

  • Les utilisateurs peuvent désormais créer et configurer des modalités de type visioconférence.
  • Les noms d’utilisateurs s’affichent désormais avec leur organisation associée.

Mise à jour des traductions juridiques suite à la création de l'association S-PASS

✨ Nouvelle modalité de visioconférence pour la ressource CAP

Ajout d’une nouvelle modalité « visioconférence », permettant de renseigner une URL de connexion directement dans les formulaires et composants associés.
Cette évolution s’accompagne de plusieurs améliorations de cohérence dans les entités et l’interface.

⚖️ Actualisation des mentions légales

Mise à jour des fichiers de traduction juridiques (de, en, fr) pour refléter le passage du CAUE du Nord à l’Association S-PASS Territoires comme organisme responsable.
Les adresses électroniques ont été remplacées par des domaines s-pass.org, le SIRET a été supprimé et le numéro RNA ajouté.

Amélioration de l’intégration Calameo avec gestion des paramètres d’URL

Amélioration de l’intégration Calameo

Optimisation de la logique d’intégration Calameo dans le bloc d'intégration du mode enrichi pour gérer correctement les paramètres de requête dans les URL, y compris authid lorsqu’il est présent.
Les dimensions de l’iframe ont été ajustées pour un affichage plus homogène.