feat(viz): refonte du donut + jeu d'essai démo de 20 projets
Donut (DonutPage.vue) — alignement avec la maquette "Capture 2026-05-28 205310" :
- Suppression des secteurs en couleur vive : 6 secteurs séparés par des
lignes radiales en pointillé gris léger
- 2 anneaux gris texturés (pattern diagonal) : "Plafond écologique" (extérieur)
et "Plancher social" (intérieur), avec leurs labels
- Espace sûr cream entre les deux où vivent les projets
- Positionnement des projets :
angle : secteur de la catégorie + jitter stable (hash slug)
rayon : bande définie par la dimension de la catégorie
(social -> 108..140, ecologique -> 160..192, transversal -> 142..158)
puis modulé par progress_percent (plus avancé = plus éloigné du centre)
- Projets archivés rendus en POINTS CREUX (stroke only, sans fill)
- Tooltip survol -> RouterLink cliquable vers la fiche projet
- Légende droite réécrite avec les phrases exactes de la maquette
("L'anneau intérieur représente le plancher social, ..." etc.)
- Liste des catégories par dimension avec compte de projets cliquables
Jeu d'essai (tests/seed-demo.sh) :
- 10 actifs / 6 réalisés / 4 archivés (= 20 projets), réalistes Marseille
- 10 membres (4 collectives/orgs, 4 personnes, 2 collectives + AMU)
- 26 liens project_members, 27 étapes de roadmap (mix done/à faire)
- 6 discussions, 8 ressources, 8 events d'activité antérieurs
- Lit DB_* depuis .env, force --default-character-set=utf8mb4
- TRUNCATE+INSERT idempotent (la table categories est préservée)
- Hors /migrations/ pour ne PAS être appliqué automatiquement par apply.sh
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,427 @@
|
||||
#!/usr/bin/env bash
|
||||
# -----------------------------------------------------------------------------
|
||||
# tests/seed-demo.sh
|
||||
#
|
||||
# Populates the local infolab DB with a rich demo dataset :
|
||||
# - 10 membres (person / collective / org)
|
||||
# - 20 projets répartis sur les 6 catégories, mix actif/completed/archived
|
||||
# - 30+ étapes de roadmap (certaines cochées)
|
||||
# - 10+ discussions & ressources
|
||||
#
|
||||
# Sources DB_HOST/DB_USER/DB_PASS/DB_NAME depuis ../.env (à défaut, valeurs Laragon).
|
||||
# Force --default-character-set=utf8mb4 (cf. README).
|
||||
#
|
||||
# Idempotent : TRUNCATE tout sauf categories, puis insert.
|
||||
# Usage : ./tests/seed-demo.sh
|
||||
# -----------------------------------------------------------------------------
|
||||
set -euo pipefail
|
||||
|
||||
DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
ENV_FILE="$DIR/../.env"
|
||||
|
||||
# Defaults Laragon dev
|
||||
DB_HOST="127.0.0.1"
|
||||
DB_PORT="3306"
|
||||
DB_USER="infolab"
|
||||
DB_PASS="dev-pass-local-2026"
|
||||
DB_NAME="infolab"
|
||||
|
||||
if [[ -f "$ENV_FILE" ]]; then
|
||||
while IFS='=' read -r key val; do
|
||||
case "$key" in
|
||||
DB_HOST) DB_HOST="$val" ;;
|
||||
DB_PORT) DB_PORT="$val" ;;
|
||||
DB_USER) DB_USER="$val" ;;
|
||||
DB_PASS) DB_PASS="$val" ;;
|
||||
DB_NAME) DB_NAME="$val" ;;
|
||||
esac
|
||||
done < <(grep -E '^(DB_[A-Z]+)=' "$ENV_FILE" | sed 's/\r$//')
|
||||
fi
|
||||
|
||||
echo ">> Seed demo @ ${DB_USER}@${DB_HOST}:${DB_PORT}/${DB_NAME}"
|
||||
|
||||
mysql --default-character-set=utf8mb4 \
|
||||
-h"$DB_HOST" -P"$DB_PORT" -u"$DB_USER" -p"$DB_PASS" "$DB_NAME" 2>&1 <<'SQL' | grep -v -E "^mysql:|password on the command line"
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
-- Wipe (on conserve la table categories)
|
||||
TRUNCATE TABLE activity_log;
|
||||
TRUNCATE TABLE project_members;
|
||||
TRUNCATE TABLE discussions;
|
||||
TRUNCATE TABLE resources;
|
||||
TRUNCATE TABLE roadmap_steps;
|
||||
TRUNCATE TABLE projects;
|
||||
TRUNCATE TABLE members;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
-- ============================================================================
|
||||
-- MEMBRES
|
||||
-- ============================================================================
|
||||
INSERT INTO members (slug, display_name, initials, kind, bio, website_url, contact_email) VALUES
|
||||
('collectif-ecoles-marseille', 'Collectif des écoles de Marseille', 'CEM', 'collective',
|
||||
'Réseau de parents d''élèves, enseignants et habitants mobilisés pour l''école publique marseillaise.',
|
||||
'https://collectif-ecoles-marseille.fr', NULL),
|
||||
('atd-quart-monde-13', 'ATD Quart Monde 13', 'ATD', 'org',
|
||||
'Mouvement de lutte contre la grande pauvreté présent dans les quartiers populaires de Marseille.',
|
||||
'https://www.atd-quartmonde.fr', NULL),
|
||||
('wildproject', 'Wildproject éditions', 'WP', 'org',
|
||||
'Maison d''édition marseillaise de référence sur la pensée écologique et la philosophie de la nature.',
|
||||
'https://wildproject.org', NULL),
|
||||
('tela-botanica-paca', 'Tela Botanica PACA', 'TB', 'org',
|
||||
'Réseau de la botanique francophone, antenne régionale active sur la biodiversité méditerranéenne.',
|
||||
'https://www.tela-botanica.org', NULL),
|
||||
('camille-dupont', 'Camille Dupont', 'CD', 'person',
|
||||
'Chercheuse en sciences politiques, intéressée par la démocratie participative locale.', NULL, NULL),
|
||||
('karim-belhadj', 'Karim Belhadj', 'KB', 'person',
|
||||
'Développeur indépendant, contributeur Open Street Map et bénévole en éducation populaire.', NULL, NULL),
|
||||
('ville-marseille-innov', 'Ville de Marseille — Mission Innovation', 'VMI', 'org',
|
||||
'Service municipal qui pilote les démarches d''innovation citoyenne et de transition.',
|
||||
'https://marseille.fr', NULL),
|
||||
('donut-marseille', 'Le Donut Marseille', 'DM', 'collective',
|
||||
'Collectif qui anime la communauté Donut et son infolab à Marseille.',
|
||||
'https://ledonut-marseille.org', 'hello@ledonut-marseille.org'),
|
||||
('univ-amu-data-lab', 'AMU — Data Lab des humanités', 'AMU', 'org',
|
||||
'Laboratoire d''Aix-Marseille Université dédié à l''analyse de données pour les sciences humaines.', NULL, NULL),
|
||||
('nadia-ben-salah', 'Nadia Ben Salah', 'NBS', 'person',
|
||||
'Architecte urbaniste spécialisée dans la rénovation participative des centres anciens.', NULL, NULL);
|
||||
|
||||
-- ============================================================================
|
||||
-- PROJETS
|
||||
-- IDs catégories résolues via subquery sur le slug (donc ordre indépendant).
|
||||
-- created_at étalés dans le temps pour rendre les archives crédibles.
|
||||
-- ============================================================================
|
||||
|
||||
-- ----- ACTIFS -----
|
||||
INSERT INTO projects (slug, title, category_id, status, territory, short_description, context_description, objectives, progress_percent, started_at, created_at) VALUES
|
||||
('nos-ecoles', 'Nos Écoles',
|
||||
(SELECT id FROM categories WHERE slug='education-ecoles'),
|
||||
'active', 'Marseille',
|
||||
'Plateforme citoyenne pour partager l''état des écoles publiques marseillaises.',
|
||||
'Issu de la mobilisation citoyenne autour de l''école publique, ce projet cartographie l''état des bâtiments, mutualise les ressources entre établissements et donne une voix aux parents et enseignants.',
|
||||
'Rendre visible la situation école par école, déclencher l''action publique, fédérer la communauté éducative.',
|
||||
25, '2024-09-01', '2024-09-01 10:00:00'),
|
||||
|
||||
('allo-marie-archipel', 'ALLO MARIE / Archipel',
|
||||
(SELECT id FROM categories WHERE slug='democratie-citoyennete'),
|
||||
'active', 'Marseille',
|
||||
'Outil d''interpellation citoyenne pour saisir directement la mairie et suivre la réponse publique.',
|
||||
'Inspiré des civic-tech britanniques, ALLO MARIE permet à chacun de signaler un problème de proximité, de l''adresser au service compétent et de tracer le traitement.',
|
||||
'Réduire le délai de prise en charge, transparence sur les non-réponses, agréger les besoins par quartier.',
|
||||
60, '2024-03-15', '2024-03-15 09:30:00'),
|
||||
|
||||
('crowdcity', 'CrowdCity',
|
||||
(SELECT id FROM categories WHERE slug='habitat-solidarite'),
|
||||
'active', 'Marseille — Quartiers Nord',
|
||||
'Plateforme d''entraide entre habitants pour partager outils, services et savoir-faire.',
|
||||
'Né d''une expérimentation à la Belle de Mai en 2023, CrowdCity met en relation des habitants qui ont besoin (déménagement, garde, courses) et ceux qui peuvent aider, à l''échelle de l''immeuble ou du quartier.',
|
||||
'Densifier les liens de voisinage, lutter contre l''isolement, formaliser une économie du don.',
|
||||
35, '2024-05-10', '2024-05-10 14:00:00'),
|
||||
|
||||
('ilots-de-chaleur', 'Cartographie citoyenne des îlots de chaleur',
|
||||
(SELECT id FROM categories WHERE slug='territoire-urbanisme'),
|
||||
'active', 'Marseille — Tout territoire',
|
||||
'Capteurs citoyens distribués pour mesurer la chaleur urbaine et identifier les priorités de renaturation.',
|
||||
'Marseille est l''une des villes les plus exposées aux vagues de chaleur. Faute de données fines, les choix d''aménagement reposent sur des modèles théoriques. Ce projet outille des habitants pour mesurer.',
|
||||
'Produire un corpus open data, alimenter le dialogue avec la métropole sur les priorités de renaturation.',
|
||||
45, '2024-06-20', '2024-06-20 11:00:00'),
|
||||
|
||||
('hackathon-nature-ville', 'Hackathon de la nature en ville',
|
||||
(SELECT id FROM categories WHERE slug='ecologie-biodiversite'),
|
||||
'active', 'Marseille',
|
||||
'Événement annuel : développeurs et naturalistes co-construisent des outils pour la biodiversité locale.',
|
||||
'Édition 2025 organisée avec Tela Botanica et le Muséum. 48h pour produire des prototypes (apps de signalement, dashboards, cartes), suivis sur 6 mois pour les plus prometteurs.',
|
||||
'Accélérer l''émergence de civic tech écologiques marseillaises, croiser les communautés tech et biodiversité.',
|
||||
80, '2024-09-15', '2024-09-15 15:00:00'),
|
||||
|
||||
('marches-locaux', 'Observatoire citoyen des marchés locaux',
|
||||
(SELECT id FROM categories WHERE slug='data-open-data'),
|
||||
'active', 'Marseille — Tous arrondissements',
|
||||
'Recensement participatif de l''offre alimentaire dans les marchés (origine, prix, saisonnalité).',
|
||||
'Manque criant de données ouvertes sur la souveraineté alimentaire. Une vingtaine de marchés du territoire suivis chaque semaine par des observateurs bénévoles.',
|
||||
'Constituer un référentiel open data, outiller le débat sur les circuits courts, informer les consommateurs.',
|
||||
30, '2024-08-01', '2024-08-01 08:30:00'),
|
||||
|
||||
('atelier-numerique-ecoles', 'Atelier numérique des écoles publiques',
|
||||
(SELECT id FROM categories WHERE slug='education-ecoles'),
|
||||
'active', 'Marseille — 13013 / 13014',
|
||||
'Initiation à la programmation et à la culture numérique critique pour les CM1-CM2.',
|
||||
'Partenariat entre 8 écoles, deux assos d''éducation populaire et une école d''ingénieurs. Cycle de 12 ateliers par classe avec du matériel récupéré et reconditionné.',
|
||||
'Acculturer les élèves au numérique sans dépendre des géants, former des animateurs locaux.',
|
||||
50, '2024-10-01', '2024-10-01 10:00:00'),
|
||||
|
||||
('reseau-entraide-sud', 'Réseau d''entraide quartiers Sud',
|
||||
(SELECT id FROM categories WHERE slug='habitat-solidarite'),
|
||||
'active', 'Marseille — 13008 / 13009',
|
||||
'Cellule d''écoute et d''orientation pour les habitants isolés, animée par des bénévoles.',
|
||||
'Lancé après le confinement, le réseau prolonge le travail de voisinage initié pendant la crise sanitaire avec un dispositif structuré.',
|
||||
'Maintenir le lien avec les personnes vulnérables, faciliter l''accès aux droits et services.',
|
||||
15, '2024-11-15', '2024-11-15 13:00:00'),
|
||||
|
||||
('budgets-participatifs-nord', 'Budgets participatifs Quartiers Nord',
|
||||
(SELECT id FROM categories WHERE slug='democratie-citoyennete'),
|
||||
'active', 'Marseille — 13014 / 13015 / 13016',
|
||||
'Co-construction de l''allocation d''une enveloppe métropolitaine dédiée aux Quartiers Nord.',
|
||||
'Première édition pilote sur 250 k€ : ateliers de remontée des besoins, vote pondéré, suivi citoyen de l''exécution.',
|
||||
'Démontrer la faisabilité d''un budget participatif sérieux à l''échelle d''un secteur populaire, essaimer.',
|
||||
70, '2024-04-01', '2024-04-01 09:00:00'),
|
||||
|
||||
('reboisement-collines', 'Reboisement participatif des collines',
|
||||
(SELECT id FROM categories WHERE slug='ecologie-biodiversite'),
|
||||
'active', 'Calanques / Étoile / Garlaban',
|
||||
'Chantiers citoyens de plantation et entretien sur les massifs périurbains.',
|
||||
'Après les incendies de 2020 et 2022, plusieurs collectifs se sont structurés pour des chantiers de restauration. Le projet mutualise leur calendrier, leur logistique et leur suivi botanique.',
|
||||
'Renforcer la résilience des massifs, créer un savoir-faire citoyen sur la reforestation méditerranéenne.',
|
||||
55, '2023-11-01', '2023-11-01 10:00:00');
|
||||
|
||||
-- ----- TERMINÉS -----
|
||||
INSERT INTO projects (slug, title, category_id, status, territory, short_description, context_description, objectives, progress_percent, started_at, completed_at, created_at) VALUES
|
||||
('trame-verte-caillols', 'Une trame verte pour les Caillols',
|
||||
(SELECT id FROM categories WHERE slug='ecologie-biodiversite'),
|
||||
'completed', 'Marseille — 13012',
|
||||
'Continuité écologique entre les jardins privés et les espaces publics du quartier.',
|
||||
'Co-construit avec 200 habitants des Caillols sur 18 mois. Identification de corridors potentiels, accord de gestion avec la métropole et plantations.',
|
||||
'Restaurer une trame verte fonctionnelle, créer un commun de quartier autour de la biodiversité.',
|
||||
100, '2022-09-01', '2024-06-30', '2022-09-01 10:00:00'),
|
||||
|
||||
('opendata-scot', 'Open Data du SCoT métropolitain',
|
||||
(SELECT id FROM categories WHERE slug='data-open-data'),
|
||||
'completed', 'Aix-Marseille-Provence',
|
||||
'Mise en données ouvertes du Schéma de cohérence territoriale métropolitain.',
|
||||
'Travail conjoint de la métropole et d''un collectif de civic-tech : nettoyage, sémantique, format INSPIRE, accès permanent via geo.amp.fr.',
|
||||
'Permettre la critique et la réappropriation citoyenne du document de planification stratégique.',
|
||||
100, '2023-01-15', '2024-09-15', '2023-01-15 09:00:00'),
|
||||
|
||||
('forum-democratique', 'Forum permanent de la démocratie citoyenne',
|
||||
(SELECT id FROM categories WHERE slug='democratie-citoyennete'),
|
||||
'completed', 'Marseille',
|
||||
'Trois années de rencontres mensuelles entre acteurs de la démocratie locale.',
|
||||
'Cycle clôturé après production d''un livre blanc et création d''une nouvelle assemblée citoyenne portée par la métropole.',
|
||||
'Mettre en réseau les acteurs, formaliser des propositions reprises dans les politiques publiques.',
|
||||
100, '2021-09-01', '2024-12-15', '2021-09-01 09:30:00'),
|
||||
|
||||
('mooc-citoyen', 'MOOC citoyen métropolitain',
|
||||
(SELECT id FROM categories WHERE slug='education-ecoles'),
|
||||
'completed', 'Aix-Marseille-Provence',
|
||||
'Cours en ligne ouvert sur les enjeux du territoire (urbanisme, eau, mobilité, énergie).',
|
||||
'Six modules co-produits avec AMU, le CEREMA et trois collectifs citoyens. 4 200 inscrits sur la première session.',
|
||||
'Outiller la participation citoyenne en alimentant une culture commune des enjeux du territoire.',
|
||||
100, '2023-03-01', '2024-11-30', '2023-03-01 10:00:00'),
|
||||
|
||||
('logement-digne-v1', 'Logement digne pour tous — V1',
|
||||
(SELECT id FROM categories WHERE slug='habitat-solidarite'),
|
||||
'completed', 'Marseille — Centre-ville',
|
||||
'Plateforme de signalement de l''habitat indigne, abouti à un protocole municipal.',
|
||||
'Lancé suite à la rue d''Aubagne. Plus de 600 signalements traités, débouchant sur une procédure d''urgence métropolitaine adoptée fin 2024.',
|
||||
'Faire entrer la voix des habitants dans la lutte contre l''insalubrité.',
|
||||
100, '2019-11-05', '2024-12-31', '2019-11-05 11:00:00'),
|
||||
|
||||
('renaturation-republique', 'Renaturation de la rue de la République',
|
||||
(SELECT id FROM categories WHERE slug='territoire-urbanisme'),
|
||||
'completed', 'Marseille — 13001 / 13002',
|
||||
'Co-conception puis suivi citoyen de la végétalisation du tronçon nord de la rue de la République.',
|
||||
'Démarche de co-design (5 ateliers), arbres adaptés au climat 2050, suivi botanique annuel par des bénévoles.',
|
||||
'Démontrer qu''une renaturation lourde peut être co-conçue avec les habitants en milieu très dense.',
|
||||
100, '2022-04-01', '2024-10-15', '2022-04-01 09:00:00');
|
||||
|
||||
-- ----- ARCHIVÉS -----
|
||||
INSERT INTO projects (slug, title, category_id, status, territory, short_description, context_description, objectives, progress_percent, started_at, completed_at, created_at) VALUES
|
||||
('cafe-citoyen-2018', 'Café citoyen 2018-2022',
|
||||
(SELECT id FROM categories WHERE slug='democratie-citoyennete'),
|
||||
'archived', 'Marseille — Cours Julien',
|
||||
'Rendez-vous mensuel d''échanges politiques ouverts ; mis en sommeil en 2022.',
|
||||
'Pendant cinq ans, un samedi matin par mois au Café des Mauvais Garçons. Archivé après essoufflement des animateurs et reprise du flambeau par d''autres collectifs.',
|
||||
'Créer un espace de débat horizontal sur la vie politique locale.',
|
||||
100, '2018-01-01', '2022-06-30', '2018-01-01 09:00:00'),
|
||||
|
||||
('velib-marseille-2015', 'Vélib Marseille 2015',
|
||||
(SELECT id FROM categories WHERE slug='territoire-urbanisme'),
|
||||
'archived', 'Marseille',
|
||||
'Prototype citoyen de vélos en libre-service avant l''arrivée des opérateurs privés.',
|
||||
'Six stations DIY, gestion communautaire. Démantelé en 2017 après l''arrivée d''opérateurs commerciaux et faute de modèle économique.',
|
||||
'Démontrer la possibilité d''un service de mobilité douce porté par la société civile.',
|
||||
50, '2015-05-01', '2017-12-31', '2015-05-01 10:00:00'),
|
||||
|
||||
('opendata-marseille-2014', 'Première expérimentation Open Data 2014',
|
||||
(SELECT id FROM categories WHERE slug='data-open-data'),
|
||||
'archived', 'Marseille',
|
||||
'Portail open data citoyen lancé avant la plateforme officielle.',
|
||||
'Premier inventaire des jeux de données publics réutilisables. Repris en 2019 par les institutions, le projet a été archivé après transfert.',
|
||||
'Ouvrir la voie à une politique open data publique.',
|
||||
100, '2014-06-01', '2019-09-30', '2014-06-01 10:00:00'),
|
||||
|
||||
('ecole-numerique-2017', 'École numérique pilote 2017',
|
||||
(SELECT id FROM categories WHERE slug='education-ecoles'),
|
||||
'archived', 'Marseille — Belle de Mai',
|
||||
'Expérimentation d''une école élémentaire entièrement équipée en tablettes.',
|
||||
'Évaluation conduite sur 3 ans avec AMU. Conclusions ambivalentes : engagement élevé mais creusement des inégalités. Projet archivé après transfert des enseignements.',
|
||||
'Documenter l''impact réel de l''équipement numérique massif en école élémentaire.',
|
||||
100, '2017-09-01', '2020-06-30', '2017-09-01 10:00:00');
|
||||
|
||||
-- ============================================================================
|
||||
-- ÉQUIPES (project_members)
|
||||
-- ============================================================================
|
||||
INSERT INTO project_members (project_id, member_id, role) VALUES
|
||||
((SELECT id FROM projects WHERE slug='nos-ecoles'), (SELECT id FROM members WHERE slug='collectif-ecoles-marseille'), 'admin'),
|
||||
((SELECT id FROM projects WHERE slug='nos-ecoles'), (SELECT id FROM members WHERE slug='donut-marseille'), 'contributor'),
|
||||
((SELECT id FROM projects WHERE slug='nos-ecoles'), (SELECT id FROM members WHERE slug='camille-dupont'), 'contributor'),
|
||||
((SELECT id FROM projects WHERE slug='allo-marie-archipel'), (SELECT id FROM members WHERE slug='karim-belhadj'), 'admin'),
|
||||
((SELECT id FROM projects WHERE slug='allo-marie-archipel'), (SELECT id FROM members WHERE slug='ville-marseille-innov'), 'contributor'),
|
||||
((SELECT id FROM projects WHERE slug='crowdcity'), (SELECT id FROM members WHERE slug='atd-quart-monde-13'), 'admin'),
|
||||
((SELECT id FROM projects WHERE slug='crowdcity'), (SELECT id FROM members WHERE slug='nadia-ben-salah'), 'contributor'),
|
||||
((SELECT id FROM projects WHERE slug='ilots-de-chaleur'), (SELECT id FROM members WHERE slug='univ-amu-data-lab'), 'admin'),
|
||||
((SELECT id FROM projects WHERE slug='ilots-de-chaleur'), (SELECT id FROM members WHERE slug='karim-belhadj'), 'contributor'),
|
||||
((SELECT id FROM projects WHERE slug='hackathon-nature-ville'), (SELECT id FROM members WHERE slug='tela-botanica-paca'), 'admin'),
|
||||
((SELECT id FROM projects WHERE slug='hackathon-nature-ville'), (SELECT id FROM members WHERE slug='wildproject'), 'contributor'),
|
||||
((SELECT id FROM projects WHERE slug='hackathon-nature-ville'), (SELECT id FROM members WHERE slug='donut-marseille'), 'contributor'),
|
||||
((SELECT id FROM projects WHERE slug='marches-locaux'), (SELECT id FROM members WHERE slug='univ-amu-data-lab'), 'admin'),
|
||||
((SELECT id FROM projects WHERE slug='atelier-numerique-ecoles'), (SELECT id FROM members WHERE slug='karim-belhadj'), 'admin'),
|
||||
((SELECT id FROM projects WHERE slug='atelier-numerique-ecoles'), (SELECT id FROM members WHERE slug='collectif-ecoles-marseille'), 'contributor'),
|
||||
((SELECT id FROM projects WHERE slug='reseau-entraide-sud'), (SELECT id FROM members WHERE slug='atd-quart-monde-13'), 'admin'),
|
||||
((SELECT id FROM projects WHERE slug='budgets-participatifs-nord'),(SELECT id FROM members WHERE slug='ville-marseille-innov'), 'admin'),
|
||||
((SELECT id FROM projects WHERE slug='budgets-participatifs-nord'),(SELECT id FROM members WHERE slug='camille-dupont'), 'contributor'),
|
||||
((SELECT id FROM projects WHERE slug='reboisement-collines'), (SELECT id FROM members WHERE slug='tela-botanica-paca'), 'admin'),
|
||||
((SELECT id FROM projects WHERE slug='reboisement-collines'), (SELECT id FROM members WHERE slug='wildproject'), 'contributor'),
|
||||
((SELECT id FROM projects WHERE slug='trame-verte-caillols'), (SELECT id FROM members WHERE slug='tela-botanica-paca'), 'admin'),
|
||||
((SELECT id FROM projects WHERE slug='opendata-scot'), (SELECT id FROM members WHERE slug='univ-amu-data-lab'), 'admin'),
|
||||
((SELECT id FROM projects WHERE slug='forum-democratique'), (SELECT id FROM members WHERE slug='camille-dupont'), 'admin'),
|
||||
((SELECT id FROM projects WHERE slug='mooc-citoyen'), (SELECT id FROM members WHERE slug='univ-amu-data-lab'), 'admin'),
|
||||
((SELECT id FROM projects WHERE slug='logement-digne-v1'), (SELECT id FROM members WHERE slug='atd-quart-monde-13'), 'admin'),
|
||||
((SELECT id FROM projects WHERE slug='renaturation-republique'), (SELECT id FROM members WHERE slug='nadia-ben-salah'), 'admin');
|
||||
|
||||
-- ============================================================================
|
||||
-- ROADMAP — quelques étapes par projet actif/terminé
|
||||
-- ============================================================================
|
||||
INSERT INTO roadmap_steps (project_id, title, description, step_date, is_done, sort_order) VALUES
|
||||
((SELECT id FROM projects WHERE slug='nos-ecoles'), 'Création de l''outil 15min', 'MVP avec une dizaine d''écoles pilotes', '2022-06-01', 1, 10),
|
||||
((SELECT id FROM projects WHERE slug='nos-ecoles'), 'Hackathon des écoles', 'Week-end de design avec parents et enseignants', '2024-03-01', 1, 20),
|
||||
((SELECT id FROM projects WHERE slug='nos-ecoles'), 'Extension des données', 'Couverture étendue à 150 établissements', '2025-06-01', 0, 30),
|
||||
((SELECT id FROM projects WHERE slug='nos-ecoles'), 'Tableau de bord public', 'KPIs accessibles sans inscription', NULL, 0, 40),
|
||||
|
||||
((SELECT id FROM projects WHERE slug='allo-marie-archipel'), 'Prototype interne', 'Test sur 50 agents municipaux', '2024-04-01', 1, 10),
|
||||
((SELECT id FROM projects WHERE slug='allo-marie-archipel'), 'Pilote 13001', 'Déploiement sur l''arrondissement Belle de Mai', '2024-07-01', 1, 20),
|
||||
((SELECT id FROM projects WHERE slug='allo-marie-archipel'), 'Généralisation', 'Toute la ville', '2025-09-01', 0, 30),
|
||||
|
||||
((SELECT id FROM projects WHERE slug='ilots-de-chaleur'), 'Achat des capteurs', NULL, '2024-06-25', 1, 10),
|
||||
((SELECT id FROM projects WHERE slug='ilots-de-chaleur'), 'Formation des bénévoles', '20 personnes formées en juin 2024', '2024-06-30', 1, 20),
|
||||
((SELECT id FROM projects WHERE slug='ilots-de-chaleur'), 'Première saison de mesure', 'Été 2024 — terminé', '2024-09-15', 1, 30),
|
||||
((SELECT id FROM projects WHERE slug='ilots-de-chaleur'), 'Atlas open data', 'Publication des données', '2025-04-01', 0, 40),
|
||||
|
||||
((SELECT id FROM projects WHERE slug='hackathon-nature-ville'), 'Édition 2024', '12 prototypes produits', '2024-09-22', 1, 10),
|
||||
((SELECT id FROM projects WHERE slug='hackathon-nature-ville'), 'Suivi des 3 lauréats', 'Accompagnement 6 mois', '2025-03-22', 1, 20),
|
||||
((SELECT id FROM projects WHERE slug='hackathon-nature-ville'), 'Édition 2025', NULL, '2025-09-15', 0, 30),
|
||||
|
||||
((SELECT id FROM projects WHERE slug='trame-verte-caillols'), 'Diagnostic écologique', NULL, '2022-12-01', 1, 10),
|
||||
((SELECT id FROM projects WHERE slug='trame-verte-caillols'), 'Conception participative', '8 ateliers de quartier', '2023-06-01', 1, 20),
|
||||
((SELECT id FROM projects WHERE slug='trame-verte-caillols'), 'Plantations', '450 arbres et arbustes', '2024-03-01', 1, 30),
|
||||
((SELECT id FROM projects WHERE slug='trame-verte-caillols'), 'Convention de gestion', 'Validée par la métropole', '2024-06-30', 1, 40),
|
||||
|
||||
((SELECT id FROM projects WHERE slug='opendata-scot'), 'Inventaire des jeux', NULL, '2023-04-01', 1, 10),
|
||||
((SELECT id FROM projects WHERE slug='opendata-scot'), 'Mise au format INSPIRE', NULL, '2023-12-01', 1, 20),
|
||||
((SELECT id FROM projects WHERE slug='opendata-scot'), 'Publication geo.amp.fr', NULL, '2024-09-15', 1, 30),
|
||||
|
||||
((SELECT id FROM projects WHERE slug='crowdcity'), 'Expérimentation Belle de Mai', NULL, '2023-04-01', 1, 10),
|
||||
((SELECT id FROM projects WHERE slug='crowdcity'), 'V1 application', '50 utilisateurs actifs', '2024-09-01', 1, 20),
|
||||
((SELECT id FROM projects WHERE slug='crowdcity'), 'Extension 2 quartiers', NULL, '2025-06-01', 0, 30),
|
||||
|
||||
((SELECT id FROM projects WHERE slug='reboisement-collines'), 'Cartographie post-incendie 2023', NULL, '2023-11-15', 1, 10),
|
||||
((SELECT id FROM projects WHERE slug='reboisement-collines'), 'Premier chantier', '120 bénévoles', '2024-02-10', 1, 20),
|
||||
((SELECT id FROM projects WHERE slug='reboisement-collines'), 'Suivi 2025', 'Mesure de la reprise', '2025-04-01', 0, 30);
|
||||
|
||||
-- ============================================================================
|
||||
-- DISCUSSIONS — quelques fils par projet emblématique
|
||||
-- ============================================================================
|
||||
INSERT INTO discussions (project_id, author_name, body) VALUES
|
||||
((SELECT id FROM projects WHERE slug='nos-ecoles'),
|
||||
'Camille D.',
|
||||
'Super initiative — est-ce qu''on peut intégrer l''école Ruffi qui n''est pas encore référencée ?'),
|
||||
((SELECT id FROM projects WHERE slug='nos-ecoles'),
|
||||
'Karim B.',
|
||||
'On a une carto OSM des écoles publiques marseillaises qui pourrait servir de base, je la pousse demain.'),
|
||||
((SELECT id FROM projects WHERE slug='hackathon-nature-ville'),
|
||||
'Tela Botanica PACA',
|
||||
'Pour 2025 on pousse pour intégrer un volet hortillonnages — qui est partant ?'),
|
||||
((SELECT id FROM projects WHERE slug='ilots-de-chaleur'),
|
||||
'Nadia BS',
|
||||
'Très intéressée par les corrélations entre îlots et taux de minéralisation, dispo pour co-écrire la méthodo.'),
|
||||
((SELECT id FROM projects WHERE slug='crowdcity'),
|
||||
'ATD Quart Monde 13',
|
||||
'Attention à ne pas reproduire les biais des plateformes : les premiers servis sont les plus connectés. Comment on touche les invisibles ?'),
|
||||
((SELECT id FROM projects WHERE slug='budgets-participatifs-nord'),
|
||||
'Camille D.',
|
||||
'Le vote pondéré marche bien dans nos ateliers — je partage la grille de pondération qu''on utilise.');
|
||||
|
||||
-- ============================================================================
|
||||
-- RESSOURCES — quelques liens par projet
|
||||
-- ============================================================================
|
||||
INSERT INTO resources (project_id, title, description, url, kind, sort_order) VALUES
|
||||
((SELECT id FROM projects WHERE slug='nos-ecoles'),
|
||||
'Site officiel Nos Écoles', NULL,
|
||||
'https://nos-ecoles.fr', 'link', 10),
|
||||
((SELECT id FROM projects WHERE slug='nos-ecoles'),
|
||||
'Méthodologie de relevé',
|
||||
'PDF, 18 pages, version 2024',
|
||||
'https://nos-ecoles.fr/docs/methode-2024.pdf', 'document', 20),
|
||||
|
||||
((SELECT id FROM projects WHERE slug='hackathon-nature-ville'),
|
||||
'Programme édition 2024', NULL,
|
||||
'https://hackathon-nature.org/2024', 'link', 10),
|
||||
((SELECT id FROM projects WHERE slug='hackathon-nature-ville'),
|
||||
'Captation des restitutions',
|
||||
'Vidéo 38 minutes',
|
||||
'https://vimeo.com/example/hackathon-nature-2024', 'video', 20),
|
||||
|
||||
((SELECT id FROM projects WHERE slug='ilots-de-chaleur'),
|
||||
'Premier jeu de données — été 2024',
|
||||
'CSV horaire, 12 capteurs sur 3 mois',
|
||||
'https://data.amp.fr/datasets/ilots-2024.csv', 'dataset', 10),
|
||||
|
||||
((SELECT id FROM projects WHERE slug='opendata-scot'),
|
||||
'Plateforme geo.amp.fr', NULL,
|
||||
'https://geo.amp.fr', 'link', 10),
|
||||
|
||||
((SELECT id FROM projects WHERE slug='trame-verte-caillols'),
|
||||
'Carte interactive des plantations', NULL,
|
||||
'https://trame-caillols.org/carte', 'link', 10),
|
||||
|
||||
((SELECT id FROM projects WHERE slug='mooc-citoyen'),
|
||||
'MOOC complet (FUN)', NULL,
|
||||
'https://www.fun-mooc.fr/mooc-citoyen-amp', 'link', 10);
|
||||
|
||||
-- ============================================================================
|
||||
-- ACTIVITÉ — quelques événements antérieurs pour peupler le flux
|
||||
-- ============================================================================
|
||||
INSERT INTO activity_log (project_id, member_id, actor_label, verb, summary, occurred_at) VALUES
|
||||
((SELECT id FROM projects WHERE slug='nos-ecoles'), NULL, 'Vous', 'created_project',
|
||||
'a créé le projet « Nos Écoles »', '2024-09-01 10:05:00'),
|
||||
((SELECT id FROM projects WHERE slug='nos-ecoles'),
|
||||
(SELECT id FROM members WHERE slug='donut-marseille'),
|
||||
'Le Donut Marseille', 'joined',
|
||||
'a rejoint le projet « Nos Écoles »', '2024-09-02 14:22:00'),
|
||||
((SELECT id FROM projects WHERE slug='hackathon-nature-ville'), NULL, 'Vous', 'created_project',
|
||||
'a créé le projet « Hackathon de la nature en ville »', '2024-09-15 15:10:00'),
|
||||
((SELECT id FROM projects WHERE slug='hackathon-nature-ville'), NULL, 'Vous', 'completed_step',
|
||||
'a terminé l''étape « Édition 2024 » du projet « Hackathon de la nature en ville »', '2024-09-23 18:30:00'),
|
||||
((SELECT id FROM projects WHERE slug='trame-verte-caillols'), NULL, 'Vous', 'completed_project',
|
||||
'a terminé le projet « Une trame verte pour les Caillols »', '2024-06-30 16:00:00'),
|
||||
((SELECT id FROM projects WHERE slug='allo-marie-archipel'), NULL, 'Vous', 'updated_project',
|
||||
'a mis à jour le projet « ALLO MARIE / Archipel »', '2025-01-15 11:30:00'),
|
||||
((SELECT id FROM projects WHERE slug='ilots-de-chaleur'), NULL, 'Vous', 'added_resource',
|
||||
'a ajouté la ressource « Premier jeu de données — été 2024 » au projet « Cartographie citoyenne des îlots de chaleur »', '2024-10-05 09:15:00'),
|
||||
((SELECT id FROM projects WHERE slug='budgets-participatifs-nord'),NULL, 'Vous', 'posted_discussion',
|
||||
'a publié un message dans « Budgets participatifs Quartiers Nord »', '2025-02-10 17:45:00');
|
||||
|
||||
-- Résumé
|
||||
SELECT
|
||||
(SELECT COUNT(*) FROM projects WHERE deleted_at IS NULL AND status='active') AS active,
|
||||
(SELECT COUNT(*) FROM projects WHERE deleted_at IS NULL AND status='completed') AS completed,
|
||||
(SELECT COUNT(*) FROM projects WHERE deleted_at IS NULL AND status='archived') AS archived,
|
||||
(SELECT COUNT(*) FROM members) AS members,
|
||||
(SELECT COUNT(*) FROM project_members) AS team_links,
|
||||
(SELECT COUNT(*) FROM roadmap_steps) AS roadmap_steps,
|
||||
(SELECT COUNT(*) FROM discussions) AS discussions,
|
||||
(SELECT COUNT(*) FROM resources) AS resources,
|
||||
(SELECT COUNT(*) FROM activity_log) AS activity_events;
|
||||
SQL
|
||||
echo "OK"
|
||||
Reference in New Issue
Block a user