- origin TEXT → origin_id UUID FK duniter_identities (migration e3f4a5b6c7d8) - GET /auth/identities?q= : recherche d'identités par nom/adresse - MandateCreate.nomination_mode : auto (auto-assign auteur), collective, postpone - Wizard new.vue : champ origine = picker identité, checkbox "Démarrer maintenant" - [id].vue : modal "Assigner" = search-picker (résout UUID vs adresse SS58), affiche origin_display_name + mandatee_display_name, inputs natifs (<input>/<textarea>) - Erreurs API visibles dans l'UI (plus de catch silencieux) - test_mandate_flows.py : 17 tests intégration SQLite réels (origin, nomination, assign, lifecycle, revocation, interactions croisées) — 241 tests total OK Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Réordonnancement étapes : nomination → infos → résumé (au lieu de infos → nomination → toolbox → résumé) - Cas nomination renommé : 'election' → 'collective' ; auto-désignation scindée en mode période/réunion - Types mandat ajoutés : statutory, functional (labels + filtres index) - Légères corrections texte modalities (ortho, reformulation) - Fix TS : assertions non-null sur statusGroupMap et paramValues Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Mandate model : champ origin (contexte/déclencheur) + migration - MandateCreate schema : origin, starts_at, ends_at - mandates/new.vue : wizard complet · Étape 1 : type · nom · origine · description · durée (relative ou dates) · Étape 2 : auto-désignation (ratification) ou désignation collective · Étape 3 : boîte à outils — sans/avec candidature, 6 modalités, paramètres configurables (durée, quorum, seuil, slider+input) · Étape 4 : récap + génération automatique des étapes du mandat - Tous les boutons "Nouveau mandat" pointent vers /mandates/new - decisions/new.vue : "Demander un mandat" → /mandates/new Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>