UX: texte valorise, vote discret, inertie visuelle, genese repliable
- EngagementCard: texte agrandi (15-16px), vote board discret (opacity, scale) - MiniVoteBoard: badge Adopte/En attente apres "Vote permanent :", board compact - InertiaSlider: labels descriptifs (inertie pour le remplacement), schema SVG avec courbe de seuil, formule simplifiee et legende parametres - GenesisBlock: toggle repliement individuel par section (source, outils, forum, processus, contributeurs) - Votes varies dans Conseils et bonnes pratiques (non-adoptes inclus) - Seed: Certification responsable → Reciprocite, ordonnancement inertie standard, notes variables K1/K2 (vote porte sur l'inclusion, pas les valeurs), init_db() dans seed.py pour DB vierge Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -27,7 +27,7 @@ from datetime import datetime, timedelta, timezone
|
||||
from sqlalchemy import select
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app.database import async_session, engine, Base
|
||||
from app.database import async_session, engine, Base, init_db
|
||||
from app.models.protocol import FormulaConfig, VotingProtocol
|
||||
from app.models.document import Document, DocumentItem
|
||||
from app.models.decision import Decision, DecisionStep
|
||||
@@ -351,7 +351,7 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
|
||||
{
|
||||
"position": "E2",
|
||||
"item_type": "clause",
|
||||
"title": "Certification responsable",
|
||||
"title": "Reciprocite",
|
||||
"sort_order": 5,
|
||||
"section_tag": "fondamental",
|
||||
"inertia_preset": "standard",
|
||||
@@ -534,7 +534,10 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
|
||||
"- Sentinelle : membre ayant recu et emis >= Y[N] certifs "
|
||||
"(Y = ceil(N^(1/5)))\n"
|
||||
"- Certifications actives valables **2 ans**\n"
|
||||
"- Renouvellement de l'accord tous les **12 mois**"
|
||||
"- Renouvellement de l'accord tous les **12 mois**\n\n"
|
||||
"*Note : le vote porte sur l'inclusion de ces regles dans le document, "
|
||||
"pas sur les valeurs des variables protocolaires elles-memes, "
|
||||
"qui sont fixees par le protocole Duniter.*"
|
||||
),
|
||||
},
|
||||
{
|
||||
@@ -549,7 +552,10 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
|
||||
"- 1 Dividende Universel (DU) par personne par jour\n"
|
||||
"- Reevaluation a chaque equinoxe : "
|
||||
"`DU(n+1) = DU(n) + c² × (M/N) / 182.625` avec c = 4.88%\n"
|
||||
"- DU(0) = 10.00 G1"
|
||||
"- DU(0) = 10.00 G1\n\n"
|
||||
"*Note : le vote porte sur l'inclusion de ces parametres dans le document, "
|
||||
"pas sur les valeurs monetaires elles-memes, "
|
||||
"qui decoulent de la TRM et du bloc 0.*"
|
||||
),
|
||||
},
|
||||
# ===================================================================
|
||||
@@ -790,11 +796,11 @@ ENGAGEMENT_CERTIFICATION_ITEMS: list[dict] = [
|
||||
"title": "Ordonnancement du document",
|
||||
"sort_order": 33,
|
||||
"section_tag": "ordonnancement",
|
||||
"inertia_preset": "high",
|
||||
"inertia_preset": "standard",
|
||||
"current_text": (
|
||||
"L'ordre de presentation des items dans le document est "
|
||||
"lui-meme soumis au vote. Toute proposition de reorganisation "
|
||||
"doit atteindre le seuil d'adoption avec l'inertie haute."
|
||||
"doit atteindre le seuil d'adoption avec l'inertie standard."
|
||||
),
|
||||
},
|
||||
]
|
||||
@@ -1442,6 +1448,10 @@ async def run_seed():
|
||||
print("Glibredecision - Seed Database")
|
||||
print("=" * 60)
|
||||
|
||||
# Ensure tables exist
|
||||
await init_db()
|
||||
print("[0/7] Tables created.\n")
|
||||
|
||||
async with async_session() as session:
|
||||
async with session.begin():
|
||||
print("\n[1/7] Formula Configs...")
|
||||
|
||||
Reference in New Issue
Block a user