Merge pull request #3932 from emanuelschuetze/bugfixes2.3
Minor bugfixes for 2.3.1
This commit is contained in:
commit
07b75584cf
@ -4,6 +4,16 @@
|
|||||||
|
|
||||||
https://openslides.org/
|
https://openslides.org/
|
||||||
|
|
||||||
|
Version 2.3.1 (unreleased)
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Bugfixes:
|
||||||
|
- Fixed image browser in CKEditor plugin to show uploaded images.
|
||||||
|
- Fixed sorting of users in dropdowns for speakers, submitters and candidates.
|
||||||
|
- Fixed election ballot paper layout (more space required for global 'no').
|
||||||
|
- Fixed missing output of special poll values (for motions and elections)
|
||||||
|
|
||||||
|
|
||||||
Version 2.3 (2018-09-20)
|
Version 2.3 (2018-09-20)
|
||||||
========================
|
========================
|
||||||
`Release notes <https://github.com/OpenSlides/OpenSlides/wiki/OpenSlides-2.3>`_ ·
|
`Release notes <https://github.com/OpenSlides/OpenSlides/wiki/OpenSlides-2.3>`_ ·
|
||||||
|
@ -112,7 +112,7 @@
|
|||||||
<select chosen
|
<select chosen
|
||||||
ng-model="speakerSelectBox.selected"
|
ng-model="speakerSelectBox.selected"
|
||||||
ng-change="addSpeaker(speakerSelectBox.selected)"
|
ng-change="addSpeaker(speakerSelectBox.selected)"
|
||||||
ng-options="user.id as user.get_full_name() for user in users"
|
ng-options="user.id as user.get_full_name() for user in users | orderBy: 'full_name'"
|
||||||
search-contains="true"
|
search-contains="true"
|
||||||
placeholder-text-single="'Select or search a participant ...' | translate"
|
placeholder-text-single="'Select or search a participant ...' | translate"
|
||||||
no-results-text="'No results available ...' | translate"
|
no-results-text="'No results available ...' | translate"
|
||||||
|
@ -120,7 +120,7 @@ angular.module('OpenSlidesApp.assignments.pdf', ['OpenSlidesApp.core.pdf'])
|
|||||||
if (printLabel) {
|
if (printLabel) {
|
||||||
voteVal += voteObject.label + ': ';
|
voteVal += voteObject.label + ': ';
|
||||||
}
|
}
|
||||||
voteVal += $filter('number')(voteObject.value, precision);
|
voteVal += $filter('textOrNumber')(voteObject.value, precision);
|
||||||
|
|
||||||
if (voteObject.percentStr) {
|
if (voteObject.percentStr) {
|
||||||
voteVal += ' ' + voteObject.percentStr;
|
voteVal += ' ' + voteObject.percentStr;
|
||||||
@ -435,18 +435,18 @@ angular.module('OpenSlidesApp.assignments.pdf', ['OpenSlidesApp.core.pdf'])
|
|||||||
var rowsperpage;
|
var rowsperpage;
|
||||||
var sheetend;
|
var sheetend;
|
||||||
if (poll.pollmethod == 'votes') {
|
if (poll.pollmethod == 'votes') {
|
||||||
if (poll.options.length <= 4) {
|
if (poll.options.length <= 3) {
|
||||||
sheetend = 105;
|
sheetend = 105;
|
||||||
rowsperpage = 4;
|
rowsperpage = 4;
|
||||||
} else if (poll.options.length <= 8) {
|
} else if (poll.options.length <= 5) {
|
||||||
sheetend = 140;
|
sheetend = 140;
|
||||||
rowsperpage = 3;
|
rowsperpage = 3;
|
||||||
} else if (poll.options.length <= 12) {
|
} else if (poll.options.length <= 11) {
|
||||||
sheetend = 210;
|
sheetend = 210;
|
||||||
rowsperpage = 2;
|
rowsperpage = 2;
|
||||||
}
|
}
|
||||||
else { //works untill ~30 people
|
else { //works untill ~30 people
|
||||||
sheetend = 418;
|
sheetend = 417;
|
||||||
rowsperpage = 1;
|
rowsperpage = 1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -460,7 +460,7 @@ angular.module('OpenSlidesApp.assignments.pdf', ['OpenSlidesApp.core.pdf'])
|
|||||||
sheetend = 210;
|
sheetend = 210;
|
||||||
rowsperpage = 2;
|
rowsperpage = 2;
|
||||||
} else {
|
} else {
|
||||||
sheetend = 418;
|
sheetend = 417;
|
||||||
rowsperpage = 1;
|
rowsperpage = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -105,7 +105,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div os-perms="assignments.can_nominate_other">
|
<div os-perms="assignments.can_nominate_other">
|
||||||
<select chosen ng-model="candidateSelectBox.selected" ng-change="addCandidate(candidateSelectBox.selected)"
|
<select chosen ng-model="candidateSelectBox.selected" ng-change="addCandidate(candidateSelectBox.selected)"
|
||||||
ng-options="user.id as user.get_full_name() for user in users"
|
ng-options="user.id as user.get_full_name() for user in users | orderBy: 'full_name'"
|
||||||
search-contains="true"
|
search-contains="true"
|
||||||
placeholder-text-single="'Select or search a participant ...' | translate"
|
placeholder-text-single="'Select or search a participant ...' | translate"
|
||||||
no-results-text="'No results available ...' | translate"
|
no-results-text="'No results available ...' | translate"
|
||||||
@ -234,7 +234,7 @@
|
|||||||
<div ng-init="votes = option.getVotes()">
|
<div ng-init="votes = option.getVotes()">
|
||||||
<div ng-repeat="vote in votes">
|
<div ng-repeat="vote in votes">
|
||||||
<span ng-if="poll.pollmethod == 'yna' || poll.pollmethod == 'yn'">{{ vote.label }}:</span>
|
<span ng-if="poll.pollmethod == 'yna' || poll.pollmethod == 'yn'">{{ vote.label }}:</span>
|
||||||
{{ vote.value | number:votesPrecision }} {{ vote.percentStr }}
|
{{ vote.value | textOrNumber:votesPrecision }} {{ vote.percentStr }}
|
||||||
<div ng-if="vote.percentNumber >= 0">
|
<div ng-if="vote.percentNumber >= 0">
|
||||||
<uib-progressbar ng-if="$index == 0" value="vote.percentNumber" type="success"></uib-progressbar>
|
<uib-progressbar ng-if="$index == 0" value="vote.percentNumber" type="success"></uib-progressbar>
|
||||||
<uib-progressbar ng-if="$index == 1" value="vote.percentNumber" type="danger"></uib-progressbar>
|
<uib-progressbar ng-if="$index == 1" value="vote.percentNumber" type="danger"></uib-progressbar>
|
||||||
@ -255,31 +255,31 @@
|
|||||||
<td>
|
<td>
|
||||||
<translate>Abstain</translate>
|
<translate>Abstain</translate>
|
||||||
<td>
|
<td>
|
||||||
{{ poll.getVote('votesabstain').value | number:votesPrecision }}
|
{{ poll.getVote('votesabstain').value | textOrNumber:votesPrecision }}
|
||||||
{{ poll.getVote('votesabstain').percentStr }}
|
{{ poll.getVote('votesabstain').percentStr }}
|
||||||
<tr ng-if="poll.pollmethod === 'votes'">
|
<tr ng-if="poll.pollmethod === 'votes'">
|
||||||
<td>
|
<td>
|
||||||
<translate>No</translate>
|
<translate>No</translate>
|
||||||
<td>
|
<td>
|
||||||
{{ poll.getVote('votesno').value | number:votesPrecision }}
|
{{ poll.getVote('votesno').value | textOrNumber:votesPrecision }}
|
||||||
{{ poll.getVote('votesno').percentStr }}
|
{{ poll.getVote('votesno').percentStr }}
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<translate>Valid ballots</translate>
|
<translate>Valid ballots</translate>
|
||||||
<td>
|
<td>
|
||||||
{{ poll.getVote('votesvalid').value | number:votesPrecision }}
|
{{ poll.getVote('votesvalid').value | textOrNumber:votesPrecision }}
|
||||||
{{ poll.getVote('votesvalid').percentStr }}
|
{{ poll.getVote('votesvalid').percentStr }}
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<translate>Invalid ballots</translate>
|
<translate>Invalid ballots</translate>
|
||||||
<td>
|
<td>
|
||||||
{{ poll.getVote('votesinvalid').value | number:votesPrecision }}
|
{{ poll.getVote('votesinvalid').value | textOrNumber:votesPrecision }}
|
||||||
{{ poll.getVote('votesinvalid').percentStr }}
|
{{ poll.getVote('votesinvalid').percentStr }}
|
||||||
<tr class="total bg-info">
|
<tr class="total bg-info">
|
||||||
<td>
|
<td>
|
||||||
<translate>Casted ballots</translate>
|
<translate>Casted ballots</translate>
|
||||||
<td>
|
<td>
|
||||||
{{ poll.getVote('votescast').value | number:votesPrecision }}
|
{{ poll.getVote('votescast').value | textOrNumber:votesPrecision }}
|
||||||
{{ poll.getVote('votescast').percentStr }}
|
{{ poll.getVote('votescast').percentStr }}
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
@ -49,16 +49,16 @@
|
|||||||
<div ng-init="votes = option.getVotes()">
|
<div ng-init="votes = option.getVotes()">
|
||||||
<div ng-show="poll.pollmethod == 'yna' || poll.pollmethod == 'yn'">
|
<div ng-show="poll.pollmethod == 'yna' || poll.pollmethod == 'yn'">
|
||||||
<span ng-show="poll.pollmethod == 'yna'">
|
<span ng-show="poll.pollmethod == 'yna'">
|
||||||
{{ votes[0].label | translate }}: {{ votes[0].value | number:votesPrecision }} {{ votes[0].percentStr }}<br>
|
{{ votes[0].label | translate }}: {{ votes[0].value | textOrNumber:votesPrecision }} {{ votes[0].percentStr }}<br>
|
||||||
{{ votes[1].label | translate }}: {{ votes[1].value | number:votesPrecision }} {{ votes[1].percentStr }}<br>
|
{{ votes[1].label | translate }}: {{ votes[1].value | textOrNumber:votesPrecision }} {{ votes[1].percentStr }}<br>
|
||||||
{{ votes[2].label | translate }}: {{ votes[2].value | number:votesPrecision }} {{ votes[2].percentStr }}</span>
|
{{ votes[2].label | translate }}: {{ votes[2].value | textOrNumber:votesPrecision }} {{ votes[2].percentStr }}</span>
|
||||||
<span ng-show="poll.pollmethod == 'yn'">
|
<span ng-show="poll.pollmethod == 'yn'">
|
||||||
{{ votes[0].label | translate }}: {{ votes[0].value | number:votesPrecision }} {{ votes[0].percentStr }}<br>
|
{{ votes[0].label | translate }}: {{ votes[0].value | textOrNumber:votesPrecision }} {{ votes[0].percentStr }}<br>
|
||||||
{{ votes[1].label | translate }}: {{ votes[1].value | number:votesPrecision }} {{ votes[1].percentStr }}</span>
|
{{ votes[1].label | translate }}: {{ votes[1].value | textOrNumber:votesPrecision }} {{ votes[1].percentStr }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div ng-show="poll.pollmethod == 'votes'">
|
<div ng-show="poll.pollmethod == 'votes'">
|
||||||
<div ng-repeat="vote in votes">
|
<div ng-repeat="vote in votes">
|
||||||
{{ vote.value | number:votesPrecision }} {{ vote.percentStr }}
|
{{ vote.value | textOrNumber:votesPrecision }} {{ vote.percentStr }}
|
||||||
<div style="float:right; width:200px;" ng-if="vote.percentNumber >= 0">
|
<div style="float:right; width:200px;" ng-if="vote.percentNumber >= 0">
|
||||||
<uib-progressbar value="vote.percentNumber" type="success"></uib-progressbar>
|
<uib-progressbar value="vote.percentNumber" type="success"></uib-progressbar>
|
||||||
</div>
|
</div>
|
||||||
@ -71,29 +71,29 @@
|
|||||||
<td>
|
<td>
|
||||||
<translate>Abstain</translate>
|
<translate>Abstain</translate>
|
||||||
<td ng-init="vote = poll.getVote('votesabstain')">
|
<td ng-init="vote = poll.getVote('votesabstain')">
|
||||||
{{ vote.value | number:votesPrecision }} {{ vote.percentStr }}
|
{{ vote.value | textOrNumber:votesPrecision }} {{ vote.percentStr }}
|
||||||
<tr class="total" ng-if="poll.has_votes && poll.pollmethod === 'votes' && poll.getVote('votesno').value !== null">
|
<tr class="total" ng-if="poll.has_votes && poll.pollmethod === 'votes' && poll.getVote('votesno').value !== null">
|
||||||
<td>
|
<td>
|
||||||
<translate>No</translate>
|
<translate>No</translate>
|
||||||
<td ng-init="vote = poll.getVote('votesno')">
|
<td ng-init="vote = poll.getVote('votesno')">
|
||||||
{{ vote.value | number:votesPrecision }} {{ vote.percentStr }}
|
{{ vote.value | textOrNumber:votesPrecision }} {{ vote.percentStr }}
|
||||||
<tr class="total" ng-if="poll.has_votes && poll.getVote('votesvalid').value !== null">
|
<tr class="total" ng-if="poll.has_votes && poll.getVote('votesvalid').value !== null">
|
||||||
<td>
|
<td>
|
||||||
<translate>Valid ballots</translate>
|
<translate>Valid ballots</translate>
|
||||||
<td ng-init="vote = poll.getVote('votesvalid')">
|
<td ng-init="vote = poll.getVote('votesvalid')">
|
||||||
{{ vote.value | number:votesPrecision }} {{ vote.percentStr }}
|
{{ vote.value | textOrNumber:votesPrecision }} {{ vote.percentStr }}
|
||||||
|
|
||||||
<tr class="total" ng-if="poll.has_votes && poll.getVote('votesinvalid').value !== null">
|
<tr class="total" ng-if="poll.has_votes && poll.getVote('votesinvalid').value !== null">
|
||||||
<td>
|
<td>
|
||||||
<translate>Invalid ballots</translate>
|
<translate>Invalid ballots</translate>
|
||||||
<td ng-init="vote = poll.getVote('votesinvalid')">
|
<td ng-init="vote = poll.getVote('votesinvalid')">
|
||||||
{{ vote.value | number:votesPrecision }} {{ vote.percentStr }}
|
{{ vote.value | textOrNumber:votesPrecision }} {{ vote.percentStr }}
|
||||||
|
|
||||||
<tr class="total bg-info" ng-if="poll.has_votes && poll.getVote('votescast').value !== null">
|
<tr class="total bg-info" ng-if="poll.has_votes && poll.getVote('votescast').value !== null">
|
||||||
<td>
|
<td>
|
||||||
<translate>Casted ballots</translate>
|
<translate>Casted ballots</translate>
|
||||||
<td ng-init="vote = poll.getVote('votescast')">
|
<td ng-init="vote = poll.getVote('votescast')">
|
||||||
{{ vote.value | number:votesPrecision }} {{ vote.percentStr }}
|
{{ vote.value | textOrNumber:votesPrecision }} {{ vote.percentStr }}
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -1675,6 +1675,20 @@ angular.module('OpenSlidesApp.core', [
|
|||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
|
// Returns number with decimal places or (if not a number) string (e.g. majority)
|
||||||
|
.filter('textOrNumber', [
|
||||||
|
'$filter',
|
||||||
|
function ($filter) {
|
||||||
|
return function(input, votesPrecision) {
|
||||||
|
if(isNaN(input)) {
|
||||||
|
return input;
|
||||||
|
} else {
|
||||||
|
return $filter('number')(input, votesPrecision);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
])
|
||||||
|
|
||||||
// Make sure that the DS factories are loaded by making them a dependency
|
// Make sure that the DS factories are loaded by making them a dependency
|
||||||
.run([
|
.run([
|
||||||
'ChatMessage',
|
'ChatMessage',
|
||||||
|
@ -191,37 +191,37 @@ angular.module('OpenSlidesApp.motions.pdf', ['OpenSlidesApp.core.pdf'])
|
|||||||
// yes
|
// yes
|
||||||
var yes = poll.getVote(poll.yes, 'yes');
|
var yes = poll.getVote(poll.yes, 'yes');
|
||||||
column1.push(gettextCatalog.getString('Yes') + ':');
|
column1.push(gettextCatalog.getString('Yes') + ':');
|
||||||
column2.push($filter('number')(yes.value, precision));
|
column2.push($filter('textOrNumber')(yes.value, precision));
|
||||||
column3.push(yes.percentStr);
|
column3.push(yes.percentStr);
|
||||||
// no
|
// no
|
||||||
var no = poll.getVote(poll.no, 'no');
|
var no = poll.getVote(poll.no, 'no');
|
||||||
column1.push(gettextCatalog.getString('No') + ':');
|
column1.push(gettextCatalog.getString('No') + ':');
|
||||||
column2.push($filter('number')(no.value, precision));
|
column2.push($filter('textOrNumber')(no.value, precision));
|
||||||
column3.push(no.percentStr);
|
column3.push(no.percentStr);
|
||||||
// abstain
|
// abstain
|
||||||
var abstain = poll.getVote(poll.abstain, 'abstain');
|
var abstain = poll.getVote(poll.abstain, 'abstain');
|
||||||
column1.push(gettextCatalog.getString('Abstain') + ':');
|
column1.push(gettextCatalog.getString('Abstain') + ':');
|
||||||
column2.push($filter('number')(abstain.value, precision));
|
column2.push($filter('textOrNumber')(abstain.value, precision));
|
||||||
column3.push(abstain.percentStr);
|
column3.push(abstain.percentStr);
|
||||||
// votes valid
|
// votes valid
|
||||||
if (poll.votesvalid) {
|
if (poll.votesvalid) {
|
||||||
var valid = poll.getVote(poll.votesvalid, 'votesvalid');
|
var valid = poll.getVote(poll.votesvalid, 'votesvalid');
|
||||||
column1.push(gettextCatalog.getString('Valid votes') + ':');
|
column1.push(gettextCatalog.getString('Valid votes') + ':');
|
||||||
column2.push($filter('number')(valid.value, precision));
|
column2.push($filter('textOrNumber')(valid.value, precision));
|
||||||
column3.push(valid.percentStr);
|
column3.push(valid.percentStr);
|
||||||
}
|
}
|
||||||
// votes invalid
|
// votes invalid
|
||||||
if (poll.votesvalid) {
|
if (poll.votesvalid) {
|
||||||
var invalid = poll.getVote(poll.votesinvalid, 'votesinvalid');
|
var invalid = poll.getVote(poll.votesinvalid, 'votesinvalid');
|
||||||
column1.push(gettextCatalog.getString('Invalid votes') + ':');
|
column1.push(gettextCatalog.getString('Invalid votes') + ':');
|
||||||
column2.push($filter('number')(invalid.value, precision));
|
column2.push($filter('textOrNumber')(invalid.value, precision));
|
||||||
column3.push(invalid.percentStr);
|
column3.push(invalid.percentStr);
|
||||||
}
|
}
|
||||||
// votes cast
|
// votes cast
|
||||||
if (poll.votescast) {
|
if (poll.votescast) {
|
||||||
var cast = poll.getVote(poll.votescast, 'votescast');
|
var cast = poll.getVote(poll.votescast, 'votescast');
|
||||||
column1.push(gettextCatalog.getString('Votes cast') + ':');
|
column1.push(gettextCatalog.getString('Votes cast') + ':');
|
||||||
column2.push($filter('number')(cast.value, precision));
|
column2.push($filter('textOrNumber')(cast.value, precision));
|
||||||
column3.push(cast.percentStr);
|
column3.push(cast.percentStr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -404,7 +404,7 @@
|
|||||||
<td ng-init="voteYes = poll.getVote(poll.yes, 'yes')">
|
<td ng-init="voteYes = poll.getVote(poll.yes, 'yes')">
|
||||||
<span class="result-label"><translate>Yes</translate>:</span>
|
<span class="result-label"><translate>Yes</translate>:</span>
|
||||||
<span class="result_value">
|
<span class="result_value">
|
||||||
{{ voteYes.value | number:votesPrecision }} {{ voteYes.percentStr }}
|
{{ voteYes.value | textOrNumber:votesPrecision }} {{ voteYes.percentStr }}
|
||||||
</span>
|
</span>
|
||||||
<div ng-if="voteYes.percentNumber">
|
<div ng-if="voteYes.percentNumber">
|
||||||
<uib-progressbar value="voteYes.percentNumber" type="success"></uib-progressbar>
|
<uib-progressbar value="voteYes.percentNumber" type="success"></uib-progressbar>
|
||||||
@ -416,7 +416,7 @@
|
|||||||
<td ng-init="voteNo = poll.getVote(poll.no, 'no')">
|
<td ng-init="voteNo = poll.getVote(poll.no, 'no')">
|
||||||
<span class="result-label"><translate>No</translate>:</span>
|
<span class="result-label"><translate>No</translate>:</span>
|
||||||
<span class="result_value" >
|
<span class="result_value" >
|
||||||
{{ voteNo.value | number:votesPrecision }} {{ voteNo.percentStr }}
|
{{ voteNo.value | textOrNumber:votesPrecision }} {{ voteNo.percentStr }}
|
||||||
</span>
|
</span>
|
||||||
<div ng-if="voteNo.percentNumber">
|
<div ng-if="voteNo.percentNumber">
|
||||||
<uib-progressbar value="voteNo.percentNumber" type="danger"></uib-progressbar>
|
<uib-progressbar value="voteNo.percentNumber" type="danger"></uib-progressbar>
|
||||||
@ -428,7 +428,7 @@
|
|||||||
<td ng-init="voteAbstain = poll.getVote(poll.abstain, 'abstain')">
|
<td ng-init="voteAbstain = poll.getVote(poll.abstain, 'abstain')">
|
||||||
<span class="result-label"><translate>Abstain</translate>:</span>
|
<span class="result-label"><translate>Abstain</translate>:</span>
|
||||||
<span class="result_value">
|
<span class="result_value">
|
||||||
{{ voteAbstain.value | number:votesPrecision }} {{ voteAbstain.percentStr }}
|
{{ voteAbstain.value | textOrNumber:votesPrecision }} {{ voteAbstain.percentStr }}
|
||||||
</span>
|
</span>
|
||||||
<div ng-if="voteAbstain.percentNumber">
|
<div ng-if="voteAbstain.percentNumber">
|
||||||
<uib-progressbar value="voteAbstain.percentNumber" type="warning"></uib-progressbar>
|
<uib-progressbar value="voteAbstain.percentNumber" type="warning"></uib-progressbar>
|
||||||
@ -440,7 +440,7 @@
|
|||||||
<td ng-init="votesValid = poll.getVote(poll.votesvalid, 'votesvalid')">
|
<td ng-init="votesValid = poll.getVote(poll.votesvalid, 'votesvalid')">
|
||||||
<span class="result-label"><translate>Valid votes</translate>:</span>
|
<span class="result-label"><translate>Valid votes</translate>:</span>
|
||||||
<span class="result_value">
|
<span class="result_value">
|
||||||
{{ votesValid.value | number:votesPrecision }} {{ votesValid.percentStr }}
|
{{ votesValid.value | textOrNumber:votesPrecision }} {{ votesValid.percentStr }}
|
||||||
</span>
|
</span>
|
||||||
<!-- invalid votes -->
|
<!-- invalid votes -->
|
||||||
<tr ng-if="poll.votesinvalid !== null">
|
<tr ng-if="poll.votesinvalid !== null">
|
||||||
@ -449,7 +449,7 @@
|
|||||||
<td ng-init="votesInvalid = poll.getVote(poll.votesinvalid, 'votesinvalid')">
|
<td ng-init="votesInvalid = poll.getVote(poll.votesinvalid, 'votesinvalid')">
|
||||||
<span class="result-label"><translate>Invalid votes</translate>:</span>
|
<span class="result-label"><translate>Invalid votes</translate>:</span>
|
||||||
<span class="result_value">
|
<span class="result_value">
|
||||||
{{ votesInvalid.value | number:votesPrecision }} {{ votesInvalid.percentStr }}
|
{{ votesInvalid.value | textOrNumber:votesPrecision }} {{ votesInvalid.percentStr }}
|
||||||
</span>
|
</span>
|
||||||
<!-- votes cast -->
|
<!-- votes cast -->
|
||||||
<tr class="total" ng-if="poll.votescast !== null">
|
<tr class="total" ng-if="poll.votescast !== null">
|
||||||
@ -458,7 +458,7 @@
|
|||||||
<td ng-init="votesCast = poll.getVote(poll.votescast, 'votescast')">
|
<td ng-init="votesCast = poll.getVote(poll.votescast, 'votescast')">
|
||||||
<span class="result-label"><translate>Votes cast</translate>:</span>
|
<span class="result-label"><translate>Votes cast</translate>:</span>
|
||||||
<span class="result_value">
|
<span class="result_value">
|
||||||
{{ votesCast.value | number:votesPrecision }} {{ votesCast.percentStr }}
|
{{ votesCast.value | textOrNumber:votesPrecision }} {{ votesCast.percentStr }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<!-- majority calculation -->
|
<!-- majority calculation -->
|
||||||
|
@ -34,7 +34,7 @@
|
|||||||
<select chosen
|
<select chosen
|
||||||
ng-model="submitterSelectBox.selected"
|
ng-model="submitterSelectBox.selected"
|
||||||
ng-change="addSubmitter(submitterSelectBox.selected)"
|
ng-change="addSubmitter(submitterSelectBox.selected)"
|
||||||
ng-options="user.id as user.get_full_name() for user in users"
|
ng-options="user.id as user.get_full_name() for user in users | orderBy: 'full_name'"
|
||||||
search-contains="true"
|
search-contains="true"
|
||||||
placeholder-text-single="'Select or search a participant ...' | translate"
|
placeholder-text-single="'Select or search a participant ...' | translate"
|
||||||
no-results-text="'No results available ...' | translate"
|
no-results-text="'No results available ...' | translate"
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
<td ng-init="voteYes = poll.getVote(poll.yes, 'yes')">
|
<td ng-init="voteYes = poll.getVote(poll.yes, 'yes')">
|
||||||
<span class="result_label"><translate>Yes</translate>:</span>
|
<span class="result_label"><translate>Yes</translate>:</span>
|
||||||
<span class="result_value">
|
<span class="result_value">
|
||||||
{{ voteYes.value | number:getPollVotesPrecision(poll) }} {{ voteYes.percentStr }}
|
{{ voteYes.value | textOrNumber:getPollVotesPrecision(poll) }} {{ voteYes.percentStr }}
|
||||||
</span>
|
</span>
|
||||||
<div ng-if="voteYes.percentNumber">
|
<div ng-if="voteYes.percentNumber">
|
||||||
<uib-progressbar value="voteYes.percentNumber" type="success"></uib-progressbar>
|
<uib-progressbar value="voteYes.percentNumber" type="success"></uib-progressbar>
|
||||||
@ -43,7 +43,7 @@
|
|||||||
<td ng-init="voteNo = poll.getVote(poll.no, 'no')">
|
<td ng-init="voteNo = poll.getVote(poll.no, 'no')">
|
||||||
<span class="result_label"><translate>No</translate>:</span>
|
<span class="result_label"><translate>No</translate>:</span>
|
||||||
<span class="result_value" >
|
<span class="result_value" >
|
||||||
{{ voteNo.value | number:getPollVotesPrecision(poll) }} {{ voteNo.percentStr }}
|
{{ voteNo.value | textOrNumber:getPollVotesPrecision(poll) }} {{ voteNo.percentStr }}
|
||||||
</span>
|
</span>
|
||||||
<div ng-if="voteNo.percentNumber">
|
<div ng-if="voteNo.percentNumber">
|
||||||
<uib-progressbar value="voteNo.percentNumber" type="danger"></uib-progressbar>
|
<uib-progressbar value="voteNo.percentNumber" type="danger"></uib-progressbar>
|
||||||
@ -55,7 +55,7 @@
|
|||||||
<td ng-init="voteAbstain = poll.getVote(poll.abstain, 'abstain')">
|
<td ng-init="voteAbstain = poll.getVote(poll.abstain, 'abstain')">
|
||||||
<span class="result_label"><translate>Abstain</translate>:</span>
|
<span class="result_label"><translate>Abstain</translate>:</span>
|
||||||
<span class="result_value">
|
<span class="result_value">
|
||||||
{{ voteAbstain.value | number:getPollVotesPrecision(poll) }} {{ voteAbstain.percentStr }}
|
{{ voteAbstain.value | textOrNumber:getPollVotesPrecision(poll) }} {{ voteAbstain.percentStr }}
|
||||||
</span>
|
</span>
|
||||||
<div ng-if="voteAbstain.percentNumber">
|
<div ng-if="voteAbstain.percentNumber">
|
||||||
<uib-progressbar value="voteAbstain.percentNumber" type="warning"></uib-progressbar>
|
<uib-progressbar value="voteAbstain.percentNumber" type="warning"></uib-progressbar>
|
||||||
|
Loading…
Reference in New Issue
Block a user