Merge pull request #5729 from FinnStutzenstein/fixAssignmentOptionSorting

Fix sorting of assignment options
This commit is contained in:
Emanuel Schütze 2020-11-26 11:55:55 +01:00 committed by GitHub
commit b318bfda99
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -117,19 +117,30 @@ export class AssignmentPollService extends PollService {
const tableData: PollTableData[] = poll.options const tableData: PollTableData[] = poll.options
.sort((a, b) => { .sort((a, b) => {
if (this.sortByVote) { if (this.sortByVote) {
let compareValue;
if (poll.pollmethod === AssignmentPollMethod.N) { if (poll.pollmethod === AssignmentPollMethod.N) {
// most no on top:
// return b.no - a.no;
// least no on top: // least no on top:
return a.no - b.no; compareValue = a.no - b.no;
} else { } else {
return b.yes - a.yes; // most yes on top
compareValue = b.yes - a.yes;
} }
// Equal votes, sort by weight to have equal votes correctly sorted.
if (compareValue === 0 && a.weight && b.weight) {
// least weight on top
return a.weight - b.weight;
} else {
return compareValue;
}
}
// PollData does not have weight, we need to rely on the order of things.
if (a.weight && b.weight) {
// least weight on top
return a.weight - b.weight;
} else { } else {
// PollData does not have weight, we need to rely on the order of things. return 0;
if (a.weight && b.weight) {
return b.weight - a.weight;
}
} }
}) })
.map((candidate: ViewAssignmentOption) => { .map((candidate: ViewAssignmentOption) => {