Skip to main content

Gestionnaire de contenu permettant de créer et gérer un site internet basé sur le Système de design de l’État, accessible et responsive

Project description

Sites Faciles - Expérimentation sous forme de package

Sites Faciles est un gestionnaire de contenu permettant de créer et gérer un site internet basé sur le Système de design de l'État, accessible et responsive. Développé sous forme de site Wagtail, il n'est à l'heure actuelle pas possible de l'utiliser comme dépendance d'un projet Wagtail existant.

Le projet courant vise cet objectif.

C'est un soft-fork, au sens où aucune fonctionnalité ne sera ajoutée via Sites Faciles dans ce fork. Cependant une synchronisation directe des deux dépôts n'est pas possible car l'empaquetage de Sites Faciles nécessite de déplacer des fichiers, ce qui fausse la synchronisation.

Un script de synchronisation a donc été écrit qui vise à :

  • déplacer l'arborescence dans un sous-dossier
  • namespacer tout ce qui doit l'être dans le code source de Sites Faciles

Pour l'utilisation de Sites Faciles, voir le README original.


Le versionning et les tags suit de manière iso ceux de Sites Faciles.

🙋‍♂️ Comment tester

Pour le tester dans un projet wagtail existant (⚠ c'est hautement expérimental, à ne tester que sur un projet local) :

  • poetry add sites-faciles-experiment ou pip install sites-faciles-experiment
  • ajouter quelques settings nécessaires au bon fonctionnement du projet, à savoir
TEMPLATES = [
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "DIRS": [BASE_DIR / "templates"],
        "APP_DIRS": True,
        "OPTIONS": {
            "context_processors": [
                # ...
                "wagtailmenus.context_processors.wagtailmenus",
                "sites_faciles.content_manager.context_processors.skiplinks",
                "sites_faciles.content_manager.context_processors.mega_menus",
            ],
        },
    },
]

INSTALLED_APPS.extend(
    [
        "sites_faciles",
        "sites_faciles.blog",
        "sites_faciles.content_manager",
        "sites_faciles.events",
        "sass_processor",
        "wagtail.contrib.settings",
        "wagtail_modeladmin",
        "wagtailmenus",
        "wagtailmarkdown",
    ]
)

STATICFILES_FINDERS.extend([
    "sass_processor.finders.CssFinder",
])
  • Éventuellement overrider le template de base de Sites Faciles pour utiliser directement les modèles de page proposés
{# sites_faciles/base.html #}

{% extends "votre_wagtail_existant/base.html" %}

{# Fournir un block content dans lequel les modèles de pages de sites faciles peuvent render le contenu #}
{% block content %}{% endblock %}
  • Sinon utiliser le champ streamfield sur un modèle existant
# models.py 
from sites_faciles.content_manager.blocks import STREAMFIELD_COMMON_BLOCKS

# ... 

class CMSPage(Page):
    body = StreamField(
        STREAMFIELD_COMMON_BLOCKS,
        blank=True,
        use_json_field=True,
    )

🔍 Quelques infos / observations en vrac

  • On a fait une solution quick&dirty pour évaluer la faisabilité, on récupère tout : les modèles, les templates etc
  • Idéalement il serait intéressant de pouvoir importer que le champ streamfield avec le rendering qui va bien, mais comme de nombreux blocs dépendent de blog et event, on se retrouve à devoir ajouter ces apps. Donc à voir pour rendre ça plus modulaire
  • Il y a un certains nombres de dépendances nécessaires à Sites Faciles qui sont normalement gérées par le wagtail existant qui accueille sites-faciles-experiment : gunicorn, dj-database-url...
  • La dépendance à sass semble superflue, pourrait-on imaginer s'en passer ?

✅ Reste à faire

  • Voir comment rendre une éventuelle refacto rétro compatible avec les sites déjà déployés
  • Rendre le streamfield de content_manager plus modulaire pour le rendre utilisable sans les dépendances aux apps blog et event
  • Définir le scope
    • SSO / proconnect ?
    • Streamfield
    • Modèles de page
    • Config wagtail

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sites_faciles_experiment-2.0.0rc1.tar.gz (2.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sites_faciles_experiment-2.0.0rc1-py3-none-any.whl (2.4 MB view details)

Uploaded Python 3

File details

Details for the file sites_faciles_experiment-2.0.0rc1.tar.gz.

File metadata

File hashes

Hashes for sites_faciles_experiment-2.0.0rc1.tar.gz
Algorithm Hash digest
SHA256 ea7b929e14bce243905a4b369fbbf6765ccaab41804c4ff252138a8c2e7d208c
MD5 5737a833f70ba6a174c445e8bd54d305
BLAKE2b-256 996312ee49bf3be1576f12427072ece3a9d54f54f1495d40740aa28dfafcc8a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for sites_faciles_experiment-2.0.0rc1.tar.gz:

Publisher: publish.yml on fabienheureux/sites-faciles

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sites_faciles_experiment-2.0.0rc1-py3-none-any.whl.

File metadata

File hashes

Hashes for sites_faciles_experiment-2.0.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 c6696017ed5dd7e884ea06a4e20fcbf33b3f51e017e6f6bd88a103efe59d1225
MD5 e071c65968900e1a280d6c3e31f7a05b
BLAKE2b-256 ca3510b8b64c9712bb357b1682cbffe86941c4e2b9c5e91a0f8002d5cd6d4675

See more details on using hashes here.

Provenance

The following attestation bundles were made for sites_faciles_experiment-2.0.0rc1-py3-none-any.whl:

Publisher: publish.yml on fabienheureux/sites-faciles

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page