forked from yvv/decision
Lot U : chaînes devenues inutiles retirées (fr, en, es) ; niveau d'eau sans mouvement si réduit ; note de conception : la ligne oui / non et le quorum de l'auteur
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -132,6 +132,31 @@ endroit, avec « Pour » et « Contre ». Si l'ordre formé est l'ordre en vigue
|
||||
Routes inchangées (ADR 0009) : `POST /api/units/{id}/order` pour proposer, le vote d'une version
|
||||
pour voter.
|
||||
|
||||
## Combien de oui pour passer, combien de non pour bloquer
|
||||
|
||||
Yvv, 2026-11-02 : « combien il faut de oui pour passer et combien de non pour maintenir
|
||||
l'opposition ». Le serveur le dit (ADR 0013 : `yesNeeded`, `noNeeded`, `quorum`) ; l'écran le
|
||||
répète sans rien calculer (`needOf`, `web/src/lib/labels.ts`), le quorum en infobulle, jamais en
|
||||
titre :
|
||||
|
||||
| Cas | Sous l'article déplié | En bref, dans la liste |
|
||||
|---|---|---|
|
||||
| aucun vote | « 9 oui sur 12 votants pour passer » | « 9 oui sur 12 » |
|
||||
| des votes, des « non » la tiennent | « 11 oui pour passer · 4 non pour bloquer » | « passe à 11 oui · bloquée à 4 non » |
|
||||
| sous le quorum, les absents la tiennent (`noNeeded` = 0) | « 9 oui pour passer · le quorum la bloque » | « passe à 9 oui » |
|
||||
|
||||
Cette ligne remplace « Seuil : R voix pour » sous l'article (R à la participation du moment
|
||||
induisait en erreur dès qu'un « non » arrivait) ; R reste dans « La formule du seuil ». « Il
|
||||
manque N voix pour. » reste : c'est `yesNeeded − pour`.
|
||||
|
||||
## Le quorum d'un article
|
||||
|
||||
Visible seulement quand le serveur le permet (`canSetQuorum` : l'auteur de la première
|
||||
version, avant le premier vote ; un administrateur pour un texte du seed), dans le vote déplié,
|
||||
sous l'inertie : un champ nombre, le défaut du cran rappelé, « Revenir au défaut (n) ». Les
|
||||
refus du serveur sont dits dans les mots de la personne : hors bornes (400), un vote déjà là
|
||||
(409), pas l'auteur (403). Les bornes restent au serveur : l'écran ne les recalcule pas.
|
||||
|
||||
## Ce qu'Yvv devrait regarder
|
||||
|
||||
- Les sections de « Propositions en cours » **repliées par défaut** : la page tient en un écran
|
||||
@@ -141,3 +166,6 @@ pour voter.
|
||||
- Les ordres et les titres proposés **ne sont plus des lignes** de « Propositions en cours » : ils
|
||||
se lisent et se votent à leur module (le panier les garde).
|
||||
- Quand rien n'est en vigueur, les Propositions seed **en tête, en entier**.
|
||||
- La ligne d'ordre, ses gestes discrets comme ceux d'un article (au survol sur bureau, toujours
|
||||
visibles sur téléphone) : elle ne crie plus, mais « Réordonner » se trouve au survol.
|
||||
- Le mot court dans la liste : « passe à 11 oui · bloquée à 4 non ».
|
||||
|
||||
@@ -64,4 +64,9 @@
|
||||
.blocked {
|
||||
box-shadow: inset 0 0 0 2px var(--ochre);
|
||||
}
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.water {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -128,7 +128,6 @@ export const en: Messages = {
|
||||
'doc.confirmed': 'confirmed by vote',
|
||||
'doc.adopted': 'adopted on {date}',
|
||||
'doc.action.vote': 'Voting',
|
||||
'doc.action.proposals': 'Proposals',
|
||||
'doc.action.propose': 'Propose a change',
|
||||
'doc.basket': 'Vote in bulk',
|
||||
'doc.basket.count': 'Vote in bulk · {n}',
|
||||
@@ -177,8 +176,6 @@ export const en: Messages = {
|
||||
'module.title.name': 'Title of the document',
|
||||
'module.order.name': 'Order of the articles',
|
||||
'module.order.named': 'Order of the articles · {section}',
|
||||
'module.order.count.one': '{n} article',
|
||||
'module.order.count.other': '{n} articles',
|
||||
'module.order.inforce': 'Order in force',
|
||||
'module.order.proposal': 'Order proposed',
|
||||
'module.order.added.one': '{n} article added since, placed at the end',
|
||||
@@ -187,7 +184,6 @@ export const en: Messages = {
|
||||
'module.order.dropped.other': '{n} articles gone since',
|
||||
'module.order.same': 'it is the order in force',
|
||||
'module.order.rule': 'A new article goes at the end of its section. If it arrives while an order is under vote, it is added at its end, and the votes stay.',
|
||||
'order.propose': 'Propose another order',
|
||||
'order.edit.label': 'New order of the articles',
|
||||
'order.edit.help': 'Take an article by its handle and drop it in its place. Without dragging: click an article, then its new place, or use its arrows. With the keyboard: up and down arrows.',
|
||||
'order.edit.up': 'Move “{title}” up',
|
||||
@@ -213,7 +209,6 @@ export const en: Messages = {
|
||||
'title.proposed.other': '{n} titles proposed',
|
||||
|
||||
'tally.short': '{for} for · {against} against',
|
||||
'tally.required': 'Threshold: {n} votes in favor',
|
||||
'tally.missing.one': '{n} more vote in favor needed.',
|
||||
'tally.missing.other': '{n} more votes in favor needed.',
|
||||
'tally.reached': 'Threshold reached.',
|
||||
@@ -227,11 +222,7 @@ export const en: Messages = {
|
||||
'inertia.badge': 'inertia {level}',
|
||||
|
||||
|
||||
'panel.vote': 'Voting',
|
||||
'panel.proposals': 'Proposals',
|
||||
'panel.propose': 'Propose',
|
||||
'panel.settings': 'Settings',
|
||||
'panel.basket': 'Basket',
|
||||
'panel.details': 'Details',
|
||||
'panel.close': 'Close panel',
|
||||
'panel.inforce': 'In force',
|
||||
|
||||
@@ -128,7 +128,6 @@ export const es: Messages = {
|
||||
'doc.confirmed': 'confirmado por la votación',
|
||||
'doc.adopted': 'adoptado el {date}',
|
||||
'doc.action.vote': 'Votación',
|
||||
'doc.action.proposals': 'Propuestas',
|
||||
'doc.action.propose': 'Proponer una modificación',
|
||||
'doc.basket': 'Votar en bloque',
|
||||
'doc.basket.count': 'Votar en bloque · {n}',
|
||||
@@ -177,8 +176,6 @@ export const es: Messages = {
|
||||
'module.title.name': 'Título del documento',
|
||||
'module.order.name': 'Orden de los artículos',
|
||||
'module.order.named': 'Orden de los artículos · {section}',
|
||||
'module.order.count.one': '{n} artículo',
|
||||
'module.order.count.other': '{n} artículos',
|
||||
'module.order.inforce': 'Orden en vigor',
|
||||
'module.order.proposal': 'Orden propuesto',
|
||||
'module.order.added.one': '{n} artículo añadido desde entonces, al final',
|
||||
@@ -187,7 +184,6 @@ export const es: Messages = {
|
||||
'module.order.dropped.other': '{n} artículos salidos desde entonces',
|
||||
'module.order.same': 'es el orden en vigor',
|
||||
'module.order.rule': 'Un artículo nuevo se coloca al final de su sección. Si llega durante la votación de un orden, se añade al final, y los votos se mantienen.',
|
||||
'order.propose': 'Proponer otro orden',
|
||||
'order.edit.label': 'Nuevo orden de los artículos',
|
||||
'order.edit.help': 'Toma un artículo por su asa y suéltalo en su lugar. Sin arrastrar: haz clic en un artículo y luego en su nuevo lugar, o usa sus flechas. Con el teclado: flechas arriba y abajo.',
|
||||
'order.edit.up': 'Subir «{title}»',
|
||||
@@ -213,7 +209,6 @@ export const es: Messages = {
|
||||
'title.proposed.other': '{n} títulos propuestos',
|
||||
|
||||
'tally.short': '{for} a favor · {against} en contra',
|
||||
'tally.required': 'Umbral: {n} votos a favor',
|
||||
'tally.missing.one': 'Falta {n} voto a favor.',
|
||||
'tally.missing.other': 'Faltan {n} votos a favor.',
|
||||
'tally.reached': 'Umbral alcanzado.',
|
||||
@@ -227,11 +222,7 @@ export const es: Messages = {
|
||||
'inertia.badge': 'inercia {level}',
|
||||
|
||||
|
||||
'panel.vote': 'Votación',
|
||||
'panel.proposals': 'Propuestas',
|
||||
'panel.propose': 'Proponer',
|
||||
'panel.settings': 'Ajustes',
|
||||
'panel.basket': 'Cesta',
|
||||
'panel.details': 'Detalles',
|
||||
'panel.close': 'Cerrar el panel',
|
||||
'panel.inforce': 'En vigor',
|
||||
|
||||
@@ -132,7 +132,6 @@ export const fr = {
|
||||
'doc.confirmed': 'confirmé par le vote',
|
||||
'doc.adopted': 'adopté le {date}',
|
||||
'doc.action.vote': 'Le vote',
|
||||
'doc.action.proposals': 'Propositions',
|
||||
'doc.action.propose': 'Proposer une modification',
|
||||
'doc.basket': 'Voter en lot',
|
||||
'doc.basket.count': 'Voter en lot · {n}',
|
||||
@@ -181,8 +180,6 @@ export const fr = {
|
||||
'module.title.name': 'Titre du document',
|
||||
'module.order.name': 'Ordre des articles',
|
||||
'module.order.named': 'Ordre des articles · {section}',
|
||||
'module.order.count.one': '{n} article',
|
||||
'module.order.count.other': '{n} articles',
|
||||
'module.order.inforce': 'Ordre en vigueur',
|
||||
'module.order.proposal': 'Ordre proposé',
|
||||
'module.order.added.one': '{n} article entré depuis, placé à la fin',
|
||||
@@ -191,7 +188,6 @@ export const fr = {
|
||||
'module.order.dropped.other': '{n} articles sortis depuis',
|
||||
'module.order.same': "c'est l'ordre en vigueur",
|
||||
'module.order.rule': "Un nouvel article se place à la fin de sa section. S'il arrive pendant le vote d'un ordre, il s'y ajoute à la fin, et les votes restent.",
|
||||
'order.propose': 'Proposer un autre ordre',
|
||||
'order.edit.label': 'Nouvel ordre des articles',
|
||||
'order.edit.help': 'Prends un article par sa poignée et dépose-le à sa place. Sans glisser : clique un article, puis sa nouvelle place, ou utilise ses flèches. Au clavier : flèches haut et bas.',
|
||||
'order.edit.up': 'Monter « {title} »',
|
||||
@@ -217,7 +213,6 @@ export const fr = {
|
||||
'title.proposed.other': '{n} titres proposés',
|
||||
|
||||
'tally.short': '{for} pour · {against} contre',
|
||||
'tally.required': 'Seuil : {n} voix pour',
|
||||
'tally.missing.one': 'Il manque {n} voix pour.',
|
||||
'tally.missing.other': 'Il manque {n} voix pour.',
|
||||
'tally.reached': 'Seuil atteint.',
|
||||
@@ -231,11 +226,7 @@ export const fr = {
|
||||
'inertia.badge': 'inertie {level}',
|
||||
|
||||
|
||||
'panel.vote': 'Le vote',
|
||||
'panel.proposals': 'Propositions',
|
||||
'panel.propose': 'Proposer',
|
||||
'panel.settings': 'Réglages',
|
||||
'panel.basket': 'Panier',
|
||||
'panel.details': 'Détails',
|
||||
'panel.close': 'Fermer le panneau',
|
||||
'panel.inforce': 'En vigueur',
|
||||
|
||||
Reference in New Issue
Block a user