Architecture du projet¶
Sites Conformes est développé en utilisant le framework Django et le CMS Wagtail. Il est centré autour d’une application principale nommée sites_conformes.core, accompagnée d’applications annexes pour divers types de pages :
Applications Django¶
sites_conformes.core : l’application principale, contient les contenus communs, les pages standard (pages de contenu), les pages d’index de catalogue, la page de recherche et la gestion des configurations
blog : Permet de gérer des articles de blog et des index de blog, et les flux RSS correspondants.
dashboard : Contient les personnalisations des panneaux d’administration de Wagtail (dans
templates/wagtailadminetwagtail_hooks.py)events : Similaire à
blog, mais permet de gérer des événements et des pages de calendrier, ainsi que les exports iCal correspondants.forms : implémentation du module de création de formulaire de Wagtail, par exemple pour les pages de contact. Volontairement assez limité (suffisant pour un formulaire de contact mais pas beaucoup plus), pour les cas complexes il vaut mieux privilégier l’intégration de Demarche.numerique.gouv.fr ou de Grist.
db_storage : stockage des médias en base de données PostgreSQL, alternative au S3 pour les PaaS avec filesystem éphémère (cf. Stockage des médias en base de données (DB Storage))
proconnect : permet la connexion via ProConnect
DSFR¶
django-dsfr est une dépendance du projet et permet d’utiliser facilement le système de design de l’État dans des templates Django.
Autres répertoires¶
En plus des applications déjà citées, le dépôt contient les répertoires suivants :
config : le projet Django proprement dit
locale : la traduction des templates de base et du JS global du site (cf. Traductions). La localisation des apps listées plus haut se fait à l’intérieur de celles-ci.
scripts : scripts shell utilisés par certaines commandes et fichiers de configurations associés.
static : des fichiers statiques communs à l’ensemble du site (CSS global, JS global, quelques images intégrées par défaut) ainsi que la librairie tierce TarteaucitronJS, utilisée pour la gestion des cookies tiers.
templates : les templates de base du site.
Schéma¶
Schéma de l’application dans le cas d’un hébergement sur Scalingo.
Indexation des contenus¶
Les contenus des pages sont indexés pour la recherche par un script just index
qui appelle python manage.py update_index (cf. documentation de Wagtail).
Le lancement automatique et périodique de ce script en production est décrit dans Sur un serveur Linux (VPS, dédié ou interne) — 🔵 Confirmé.