From 10d44ca52ecfa9b955f5765b4b00f067ad5f9ed2 Mon Sep 17 00:00:00 2001 From: zuzanna-maria Date: Wed, 5 Apr 2023 12:57:23 +0200 Subject: [PATCH] tweaked to account for empty answers --- www/form/condorcet.js | 7 ++----- www/form/inner.js | 16 +++++++++++----- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/www/form/condorcet.js b/www/form/condorcet.js index 5006fbe42..f2581894b 100644 --- a/www/form/condorcet.js +++ b/www/form/condorcet.js @@ -28,7 +28,6 @@ define([], function () { var comparePairs = function() { var pairs = getPermutations(optionArray, 2); - var pairDict = {}; pairs.forEach(function (pair) { pairDict[pair] = 0; @@ -203,11 +202,9 @@ define([], function () { var rankedPairWinner = rankedPairsMethod(optionArray, listOfLists); var method = form[uid].condorcetmethod; if (method === "schulze") { - condorcetWinner[0] = schulzeWinner; - condorcetWinner[1] = rankedPairWinner; + condorcetWinner = schulzeWinner; } else if (method === "ranked") { - condorcetWinner[0] = rankedPairWinner; - condorcetWinner[1] = schulzeWinner; + condorcetWinner = rankedPairWinner; } return condorcetWinner; }; diff --git a/www/form/inner.js b/www/form/inner.js index 91c6c9834..09e5923c6 100644 --- a/www/form/inner.js +++ b/www/form/inner.js @@ -2897,22 +2897,28 @@ define([ var listOfLists = []; Object.keys(_answers).forEach(function(a) { - listOfLists.push(_answers[a].msg[uid]); + if (_answers[a].msg[uid] !== undefined) { + listOfLists.push(_answers[a].msg[uid]); + } + }); - return Condorcet.showCondorcetWinner(_answers, opts, uid, form, optionArray, listOfLists); + + if (Object.keys(listOfLists).length !== 0) { + return Condorcet.showCondorcetWinner(_answers, opts, uid, form, optionArray, listOfLists); + } }; var condorcetWinnerDiv = h('div.cp-form-block-content'); if (type === "sort") { - if (summary) { + if (summary && showCondorcetWinner(answers, block.opts, uid, form) !== undefined) { var calculateCondorcet = function() { var condorcetWinner; var detailedResults; var condorcetResults = h('span'); - var rankedResults = showCondorcetWinner(answers, block.opts, uid, form)[0][0]; + var rankedResults = showCondorcetWinner(answers, block.opts, uid, form)[0]; if (form[uid].condorcetmethod === 'schulze') { condorcetWinner = rankedResults[Object.keys(rankedResults).length - 1]; @@ -2926,7 +2932,7 @@ define([ }); return [condorcetResults, detailedResults]; } else if (form[uid].condorcetmethod === 'ranked') { - var sortedRankDict = showCondorcetWinner(answers, block.opts, uid, form)[0][1]; + var sortedRankDict = showCondorcetWinner(answers, block.opts, uid, form)[1]; condorcetWinner = rankedResults[0]; detailedResults = Object.keys(sortedRankDict).map(function(result) {