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>
15 lines
777 B
TypeScript
15 lines
777 B
TypeScript
import type { ParticipationInfo } from './types';
|
|
|
|
/**
|
|
* The usual participation as the settings tell it: the measured median, or the
|
|
* reference (twice C). When the scale brings it back within its bounds, the
|
|
* bounded value is what the formula uses, and is said apart. The number of
|
|
* voters is rounded for reading; its share is that of the value itself (a
|
|
* median of 2,5 voters out of 4 is 62,5 %, not 3 out of 4).
|
|
*/
|
|
export function usualShown(p: ParticipationInfo, electorate: number, floor: number): { voters: number; ratio: number } {
|
|
if (!p.bounded || electorate <= 0) return { voters: p.voters, ratio: p.ratio };
|
|
const raw = p.source === 'median' && p.median !== null ? p.median : 2 * floor;
|
|
return { voters: Math.round(raw), ratio: raw / electorate };
|
|
}
|