Skip to content

Commit ed1a5de

Browse files
fix linting and static check
Signed-off-by: paul bochtler <65470117+datapumpernickel@users.noreply.github.com>
1 parent 2504b05 commit ed1a5de

3 files changed

Lines changed: 37 additions & 31 deletions

File tree

lib/Service/SubmissionService.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -367,11 +367,10 @@ function (array $carry, Answer $answer) use ($questionPerQuestionId, $gridRowsPe
367367
$carry[$questionId] = ['columns' => $columns];
368368
} elseif ($questionType === Constants::ANSWER_TYPE_RANKING) {
369369
$rankedIds = json_decode($answer->getText(), true);
370-
// Build map: optionId -> rank position (1-based)
371-
$rankByOptionId = array_flip($rankedIds);
372370
$columns = [];
373371
foreach ($rankingOptionsPerQuestionId[$questionId] as $optionId) {
374-
$columns[] = isset($rankByOptionId[$optionId]) ? $rankByOptionId[$optionId] + 1 : '';
372+
$position = array_search($optionId, $rankedIds);
373+
$columns[] = $position !== false ? $position + 1 : '';
375374
}
376375
$carry[$questionId] = ['columns' => $columns];
377376
} else {

src/components/Questions/QuestionRanking.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ export default {
157157
get() {
158158
return this.sortOptionsOfType(this.options, OptionType.Choice)
159159
},
160+
160161
set(value) {
161162
this.updateOptionsOrder(value, OptionType.Choice)
162163
},

src/components/Results/ResultsSummary.vue

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -13,33 +13,42 @@
1313
</p>
1414

1515
<!-- Ranking questions: Borda count with average rank -->
16-
<div
17-
v-if="question.type === 'ranking'"
18-
class="question-summary__statistic">
16+
<div v-if="question.type === 'ranking'" class="question-summary__statistic">
1917
<p class="question-summary__ranking-description">
20-
{{ t('forms', 'Ranked by Borda count: each 1st place receives {n} points, 2nd place {n1} points, and so on. Higher score means more preferred.', { n: question.options.length, n1: question.options.length - 1 }) }}
18+
{{
19+
t(
20+
'forms',
21+
'Ranked by Borda count: each 1st place receives {n} points, 2nd place {n1} points, and so on. Higher score means more preferred.',
22+
{
23+
n: question.options.length,
24+
n1: question.options.length - 1,
25+
},
26+
)
27+
}}
2128
</p>
2229
<ol>
23-
<li v-for="option in rankingStats" :key="option.id">
24-
<label>
25-
<span class="question-summary__statistic-score">
26-
{{ option.bordaTotal }}
27-
</span>
28-
<span class="question-summary__statistic-percentage">
29-
({{ t('forms', 'avg. rank {average}', { average: option.avgRank }) }}):
30-
</span>
31-
<span
32-
:class="{
33-
'question-summary__statistic-text--best': option.best,
34-
}">
35-
{{ option.text }}
36-
</span>
37-
</label>
38-
<meter
39-
min="0"
40-
:max="maxBordaScore"
41-
:value="option.bordaTotal" />
42-
</li>
30+
<li v-for="option in rankingStats" :key="option.id">
31+
<label>
32+
<span class="question-summary__statistic-score">
33+
{{ option.bordaTotal }}
34+
</span>
35+
<span class="question-summary__statistic-percentage">
36+
({{
37+
t('forms', 'avg. rank {average}', {
38+
average: option.avgRank,
39+
})
40+
}}):
41+
</span>
42+
<span
43+
:class="{
44+
'question-summary__statistic-text--best':
45+
option.best,
46+
}">
47+
{{ option.text }}
48+
</span>
49+
</label>
50+
<meter min="0" :max="maxBordaScore" :value="option.bordaTotal" />
51+
</li>
4352
</ol>
4453
</div>
4554

@@ -362,10 +371,7 @@ export default {
362371
const result = Object.values(stats)
363372
.map((s) => ({
364373
...s,
365-
avgRank:
366-
s.count > 0
367-
? (s.rankSum / s.count).toFixed(1)
368-
: '-',
374+
avgRank: s.count > 0 ? (s.rankSum / s.count).toFixed(1) : '-',
369375
}))
370376
.sort((a, b) => b.bordaTotal - a.bordaTotal)
371377

0 commit comments

Comments
 (0)