FetchText: Support für einfache Abstimmungen mit Ja/Nein/Enthaltung

main
Mitja Stachowiak (Hessen) 2024-04-01 03:43:20 +02:00
parent 6ea0c16cb9
commit 82a78b99b6
1 changed files with 26 additions and 14 deletions

View File

@ -34,6 +34,11 @@ window.showAcceptance = function (arr) {
if (arr == chartAcceptanceData) return;
chartAcceptanceData = arr;
chartAcceptance.series[0].setData(arr);
if (arr.length == 10)
chartAcceptance.xAxis[0].update({categories: ['-5', '-4', '-3', '-2', '-1', '+1', '+2', '+3', '+4', '+5']});
else if (arr.length == 3)
chartAcceptance.xAxis[0].update({categories: ['Nein', 'Enthaltung', 'Ja']});
else throw 'Unknown vote system!';
} else if (document.getElementById('Acceptance'))
document.getElementById('Acceptance').style.display = 'none';
};
@ -185,23 +190,30 @@ function fetchText (win) {
function interpretAcceptance (str) {
let arr = str.split(',');
if (arr.length != 10) return null;
let accepted = false;
let nPositiv = 0;
let average = 0;
let sum = 0;
for (let j = 0; j < 10; j++) {
arr[j] = parseInt(arr[j]);
sum += arr[j];
if (j < 5) {
average += arr[j] * (j-5);
} else {
nPositiv += arr[j];
average += arr[j] * (j-4);
if (arr.length == 10) {
let nPositiv = 0;
let sum = 0;
for (let j = 0; j < 10; j++) {
arr[j] = parseInt(arr[j]);
sum += arr[j];
if (j < 5) {
average += arr[j] * (j-5);
} else {
nPositiv += arr[j];
average += arr[j] * (j-4);
}
}
}
average /= sum;
accepted = (average > 0) && (nPositiv >= sum / 3 * 2);
average /= sum;
accepted = (average > 0) && (nPositiv >= sum / 3 * 2);
} else if (arr.length == 3) {
arr[0] = parseInt(arr[0]);
arr[1] = parseInt(arr[1]);
arr[2] = parseInt(arr[2]);
accepted = arr[0] < arr[2];
average = (arr[2] - arr[0]) / (arr[0]+arr[1]+arr[2]);
} else return;
return {
arr: arr,
average: average,