Pierre MartinandClaude Opus 4.8 b103ab78ec feat: introduce a shared config with an optional local override
The mairie form needs an organiser, an email and the café defaults. Ship the
defaults in the repo and let each volunteer override the personal bits in
config.local.json (gitignored, optional: a fresh clone still works).

config.js carries neither import nor export on purpose, so that it loads both
as a classic script (content script, background) and as an ESM module. That is
what lets presentation.js drop its duplicated café address.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 13:07:17 +02:00

Écho du Huit

Extension Firefox qui aide les bénévoles de L'Atelier du Huit (café associatif, Cugnaux) à publier une sélection de leurs événements sur l'agenda de la mairie.

Source des événements : le calendrier Nextcloud du café. Cible : le formulaire « Proposer un événement » du site de la mairie.

Le besoin

Tous les événements du café ne vont pas sur le site de la mairie — seulement certains. L'extension sert de TODO list : pour chaque événement à venir, on voit s'il est à faire, soumis, publié (avec le lien direct) ou ignoré, et on peut le pousser vers le formulaire mairie en un clic (pré-rempli, à relire et envoyer soi-même).

Comment ça marche

  1. L'extension lit le calendrier Nextcloud via la session du navigateur (aucun mot de passe stocké).
  2. Sa page affiche les événements à venir et leur statut.
  3. Bouton Créer → ouvre le formulaire mairie pré-rempli ; tu relis, complètes (image à glisser à la main), puis envoies.
  4. Bouton Ignorer → marque l'événement (tag partagé, visible dans Nextcloud).
  5. Le statut publié est vérifié sur l'agenda public de la mairie.

Installation (dev)

Extension non signée, chargée comme module temporaire (pas de build, pas de runtime à installer) :

  1. Ouvrir about:debugging → Ce Firefox.
  2. Charger un module complémentaire temporaire…
  3. Sélectionner extension/manifest.json.
  4. Cliquer l'icône de la barre d'outils → la page de la liste s'ouvre dans un onglet.

⚠️ Un module temporaire disparaît au redémarrage de Firefox : il faut le recharger via about:debugging à chaque session (comportement de dev attendu).

🔴 Après toute modification de manifest.json (permission ajoutée…) : Décharger puis Charger le module. « Recharger » et F5 ne suffisent pas. Firefox relit les scripts de la page à chaque ouverture, mais le manifest seulement à l'installation : on se retrouve sinon avec le code le plus récent et les permissions figées de l'ancien. Symptôme : browser.<api> is undefined alors que le manifest déclare bien la permission. Piège de dev uniquement (en module signé, les permissions déclarées sont accordées d'office) — mais il a déjà coûté deux passes de test.

Pense aussi à fermer les anciens onglets de la liste avant de recharger : une page orpheline rend les clics inertes.

Vérifier l'extension

bunx web-ext lint --source-dir=extension

Documentation

  • docs/RECHERCHE.md — faits techniques vérifiés (CalDAV, champs du formulaire, valeurs du dropdown thème, structure de l'agenda, cas limites de l'ICS).
  • docs/DECISIONS.md — choix d'architecture et leur pourquoi.
  • CLAUDE.md — guide pour les agents qui implémentent.

Suivi

Backlog géré dans Piaire : http://localhost:3117/perso/project/echo-du-huit

S
Description
Extension Firefox permettant de partager les évènements de l'Atelier du 8 sur le site de la mairie de Cugnaux
Readme
30 KiB
Languages
TypeScript 51.6%
JavaScript 45.4%
CSS 2.5%
HTML 0.5%