WIP lot S : Propositions seed (I1, E1, E2 ouvertes, cran 2), amendement gardé, publication suspendue sans article en vigueur

Travail en cours, sauvegardé à la demande d'orch : le moteur, le serveur et
tests/seed_proposals.rs (verts) ; les autres tests et les e2e ne sont pas
encore repris.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Yvv
2026-11-02 07:50:31 +01:00
co-authored by Claude Opus 5.5
parent 5cf30e0bfa
commit 6228d3913a
15 changed files with 2513 additions and 55 deletions
+3 -1
View File
@@ -570,7 +570,9 @@ pub async fn detail(
let mut history = Vec::new();
let mut previous: Option<&Rev> = None;
for r in &revs {
// A change of status (a seed proposal, ADR 0011) changes no text: no diff.
let diff = previous
.filter(|_| r.kind != "seed_proposal")
.map(|prev| edit::diff(&format!("{}\n{}", prev.title, prev.body), &format!("{}\n{}", r.title, r.body)));
let typo = r.typo_id.as_ref().map(|t| {
json!({ "id": t, "answeredBy": r.answered_name, "deadline": r.answered_by.as_deref() == Some("deadline") })
@@ -601,7 +603,7 @@ pub async fn detail(
"author": p.author_name, "authorInvited": p.author_invited.unwrap_or(false),
"mine": p.author_id.as_deref() == Some(user.id.as_str()),
"submittedAt": p.submitted_at, "enteredAt": p.entered_at, "confirmedAt": p.confirmed_at,
"seedMinimal": p.status == "in_force" && p.entered_at.is_none() && p.confirmed_at.is_none() && p.origin == "seed",
"seedMinimal": p.seed_minimal(), "seedProposal": p.seed_proposal(),
"tally": st.shown_tally(&p.id), "evaluation": eval, "votedAtInertia": voted_at,
"blocked": st.blocked.contains(&p.id), "votable": st.votable(&p),
"myVote": my_vote.as_ref().map(|v| &v.choice),