- Group + GroupMember : modèle SQLAlchemy + migration + router CRUD - /api/v1/groups : liste, création, suppression, membres (add/remove) - groups.ts : store Pinia (fetchAll, getGroup, create, remove, addMember, removeMember) - decisions/new.vue : cercles 1 & 2 en mode texte libre OU groupe prédéfini (affected_count calculé depuis le member_count du groupe) - protocols/index.vue : section Groupes avec expand/collapse, ajout/suppression membres - lang="fr" + spellcheck sur tous les textareas ; placeholder cercle 2 corrigé - n8n channels : prévu sprint futur (texte libre → webhook appel à contribution) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
26 lines
955 B
Python
26 lines
955 B
Python
from app.models.user import DuniterIdentity, Session
|
|
from app.models.organization import Organization, OrgMember
|
|
from app.models.document import Document, DocumentItem, ItemVersion
|
|
from app.models.decision import Decision, DecisionStep
|
|
from app.models.vote import VoteSession, Vote
|
|
from app.models.mandate import Mandate, MandateStep
|
|
from app.models.protocol import VotingProtocol, FormulaConfig
|
|
from app.models.qualification import QualificationProtocol
|
|
from app.models.group import Group, GroupMember
|
|
from app.models.sanctuary import SanctuaryEntry
|
|
from app.models.cache import BlockchainCache
|
|
|
|
__all__ = [
|
|
"DuniterIdentity", "Session",
|
|
"Organization", "OrgMember",
|
|
"Document", "DocumentItem", "ItemVersion",
|
|
"Decision", "DecisionStep",
|
|
"VoteSession", "Vote",
|
|
"Mandate", "MandateStep",
|
|
"VotingProtocol", "FormulaConfig",
|
|
"QualificationProtocol",
|
|
"Group", "GroupMember",
|
|
"SanctuaryEntry",
|
|
"BlockchainCache",
|
|
]
|