v3 : modules d'ordre et de titre — l'interface, restes mineurs (L11, C25–C27)

Chaque section du lecteur finit par l'ordre de ses articles (inertie 2) : ses
articles numérotés, son vote déplié, « Proposer un autre ordre » — une liste où
l'on clique un article puis sa place, ses flèches, ou le clavier. Le titre du
document (inertie 4) se vote et se propose sous le titre, « traduction à
revoir » quand il a changé. Les deux sont dans la liste des propositions, le
panier et la chaîne Ğ1 ; un nouvel article se propose dans une section, à sa fin.
La liste du groupe compte les propositions ouvertes des modules.

Restes mineurs : la participation ramenée se dit en deux temps (la mesure, puis
ce que le groupe demande), les lignes « habituelle » des réglages resserrées, le
sélecteur d'inertie se parcourt aux flèches (le cran actuel atteignable, jamais
choisi), la marque « seed a minima » porte le vrai nombre de votes.

Contrôles : C25 (ordre, dont la chaîne et le téléphone), C26 (titre), C27
(participation ramenée) ; C3, C17 (41 modules), C20 mis à jour.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Yvv
2026-10-31 05:35:02 +01:00
co-authored by Claude Opus 5.5
parent 3831ddb1bf
commit 785580c78f
31 changed files with 1480 additions and 136 deletions
+9 -1
View File
@@ -30,8 +30,16 @@ describe('usual participation as shown', () => {
const p = { ...base, source: 'reference' as const, median: null, sample: 0, ratio: 0.5, voters: 1, bounded: true };
expect(usualShown(p, 2, 1)).toEqual({ voters: 2, ratio: 1 });
});
it('rounds a median between two numbers of voters', () => {
it('rounds a median between two numbers of voters, never its share', () => {
const p = { ...base, median: 2.5, ratio: 0.01, voters: 57, bounded: true };
expect(usualShown(p, 5745, 50).voters).toBe(3);
// Relecture of 71819f9: the share is that of the median itself — 2,5 voters out of 4 is
// 62,5 %, not 3 out of 4 (75 %).
const q = { ...base, median: 2.5, ratio: 0.5, voters: 2, bounded: true };
expect(usualShown(q, 4, 1)).toEqual({ voters: 3, ratio: 0.625 });
});
it('takes the share of twice C as it is, whatever the rounding', () => {
const p = { ...base, source: 'reference' as const, median: null, sample: 0, ratio: 0.5, voters: 2, bounded: true };
expect(usualShown(p, 3, 0.75)).toEqual({ voters: 2, ratio: 0.5 });
});
});