Browse Source

WIP

pull/3425/head
eribeiro 4 years ago
parent
commit
25bcec71bf
  1. 67
      frontend/src/__apps/painel/main.js
  2. 94
      sapl/templates/painel/index.html

67
frontend/src/__apps/painel/main.js

@ -22,16 +22,54 @@ const v = new Vue({ // eslint-disable-line
presentes: [],
oradores: [],
has_votos: false,
numero_votos_sim: 0,
numero_votos_nao: 0,
numero_abstencoes: 0,
num_presentes: 0,
total_votos: 0,
sessao_finalizada: true,
materia_legislativa_texto: '',
numero_votos_sim: '',
numero_votos_nao: '',
numero_abstencoes: '',
num_presentes: '',
total_votos: ''
materia_legislativa_ementa: '',
observacao_materia: '',
mat_em_votacao: '',
resultado_votacao_css: '',
tipo_resultado: '',
tipo_votacao: ''
}
},
methods: {
msgMateria () {
if (this.tipo_resultado && this.painel_aberto) {
if (this.tipo_votacao !== 'Leitura' && !this.sessao_finalizada && !this.sessao_solene) {
this.resultado_votacao_css = 'color: #45919D'
this.mat_em_votacao = 'Matéria em Votação'
} else {
this.resultado_votacao_css = 'color: #45919D'
this.mat_em_votacao = 'Matéria em Leitura'
}
this.resultado_votacao = this.tipo_resultado
var resultado_votacao_upper = this.resultado_votacao.toUpperCase()
if (resultado_votacao_upper.search('APROV') !== -1) {
this.resultado_votacao_css = 'color: #7CFC00'
this.mat_em_votacao = 'Matéria Votada'
} else if (resultado_votacao_upper.search('REJEIT') !== -1) {
this.resultado_votacao_css = 'color: red'
this.mat_em_votacao = 'Matéria Votada'
} else if (resultado_votacao_upper.search('LIDA') !== -1) {
this.mat_em_votacao = 'Matéria Lida'
}
} else {
this.resultado_votacao = ''
if (this.tipo_votacao !== 'Leitura') {
this.mat_em_votacao = 'Matéria em Votação'
} else {
this.mat_em_votacao = 'Matéria em Leitura'
}
}
},
atribuiColor (parlamentar) {
var color = 'white'
if (parlamentar.voto === 'Voto Informado') {
@ -47,11 +85,18 @@ const v = new Vue({ // eslint-disable-line
}
parlamentar.color = color
},
capObservacao (texto) {
if (texto && texto.length > 151) {
return texto.substr(0, 145).concat('(...)')
}
return texto
},
fetchData () {
// TODO: how to get no hardcoded URL?
$.get('/painel/704/dados', function (response) {
this.brasao = response.brasao
this.painel_aberto = response.status_painel
this.sessao_finalizada = response.sessao_finalizada
this.sessao_plenaria = response.sessao_plenaria
this.sessao_plenaria_data = 'Data Início: ' + response.sessao_plenaria_data
this.sessao_plenaria_hora_inicio = 'Hora Início: ' + response.sessao_plenaria_hora_inicio
@ -67,10 +112,18 @@ const v = new Vue({ // eslint-disable-line
this.materia_legislativa_texto = response.materia_legislativa_texto
this.numero_votos_sim = response.numero_votos_sim
this.numero_votos_sim = response.numero_votos_sim
this.numero_votos_nao = response.numero_votos_nao
this.numero_abstencoes = response.numero_abstencoes
this.num_presentes = response.num_presentes
this.total_votos = response.total_votos
this.materia_legislativa_texto = response.materia_legislativa_texto
this.materia_legislativa_ementa = response.materia_legislativa_ementa
this.observacao_materia = this.capObservacao(response.observacao_materia)
this.tipo_resultado = response.tipo_resultado
this.tipo_votacao = response.tipo_votacao
this.mat_em_votacao = this.msgMateria()
}.bind(this))
},
pollData () {
@ -79,7 +132,7 @@ const v = new Vue({ // eslint-disable-line
this.polling = setInterval(() => {
console.info('Fetching data from backend')
this.fetchData()
}, 1000)
}, 5000)
}
},
beforeDestroy () {

94
sapl/templates/painel/index.html

@ -4,7 +4,6 @@
{% load render_bundle from webpack_loader %}
{% load webpack_static from webpack_loader %}
<!DOCTYPE HTML>
<!--[if IE 8]> <html class="no-js lt-ie9" lang="pt-br"> <![endif]-->
<!--[if gt IE 8]><!-->
<html lang="pt-br">
@ -133,7 +132,7 @@
</div>
<div v-else>
<div v-if="painel_aberto">
<div class="col-md-6 text-center painel" id="resultado_votacao_div">
<div v-if="!sessao_finalizada" class="col-md-6 text-center painel" id="resultado_votacao_div">
<h2 class="text-subtitle">Resultado</h2>
<div v-if="materia_legislativa_texto">
<span id="votacao" class="text-value">
@ -143,19 +142,29 @@
<li>Presentes: [[ num_presentes ]]</li>
<li>Total votos: [[ total_votos ]]</li>
</span>
<h2><span id="resultado_votacao" lass="text-title"></span></h2>
<h2><span id="resultado_votacao" v-bind:style="resultado_votacao_css" lass="text-title">[[ tipo_resultado ]]</span></h2>
</div>
<div v-else>
<center>Não há votação, pois não há nenhuma matéria aberta ou já votada.</center>
</div>
</div>
<div class="col-md-6 text-center painel" id="obs_materia_div">
<h2 class="text-subtitle" id="mat_em_votacao">Matéria em Votação</h2>
<span id="materia_legislativa_texto" class="text-value"></span>
<br>
<span id="materia_legislativa_ementa" class="text-value"></span>
<br>
<span id="observacao_materia" class="text-value"></span>
<div v-if="painel_aberto">
<div v-if="!sessao_finalizada" class="col-md-6 text-center painel" id="obs_materia_div">
<h2 class="text-subtitle" id="mat_em_votacao">[[ mat_em_votacao ]]</h2>
<div v-if="materia_legislativa_texto !== ''">
<span id="materia_legislativa_texto" class="text-value">[[ materia_legislativa_texto ]] </span>
<br>
<span id="materia_legislativa_ementa" class="text-value">[[ materia_legislativa_ementa ]]</span>
<br>
<span id="observacao_materia" class="text-value"> [[ observacao_materia ]]</span>
</div>
<div v-else>
<span class="text-value">Não há nenhuma matéria votada ou para votação.</span>
</div>
</div>
</div>
<div v-else>
<span class="text-value">A Matéria em votação só aparecerá quando o painel estiver aberto</span>
</div>
</div>
<div v-else>
@ -365,71 +374,6 @@
if($('#cronometro_consideracoes').runner('info').formattedTime == "00:00:30") {
audioAlertFinish.play();
}
if(data['sessao_finalizada']){
$("#obs_materia_div").hide();
$("#resultado_votacao_div").hide();
}
else if (data['materia_legislativa_texto']){
if (data["status_painel"] == true){
$("#materia_legislativa_texto").text(data["materia_legislativa_texto"]);
$("#materia_legislativa_ementa").text(data["materia_legislativa_ementa"]);
}
else{
$("#materia_legislativa_texto").text('A Matéria em votação só aparecerá quando o painel estiver aberto');
}
}
else{
$("#materia_legislativa_texto").text('Não há nenhuma matéria votada ou para votação.');
}
if (data['observacao_materia'] && data["status_painel"] == true){
var texto = data['observacao_materia'];
if(texto.length > 151) {
$("#observacao_materia").text(texto.substr(0, 145).concat('(...)'));
}
else{
$("#observacao_materia").text(texto);
}
}
else{
$("#observacao_materia").text('');
}
if (data['tipo_resultado'] && data['status_painel'] == true){
if(data['tipo_votacao'] != 'Leitura' && !data['sessao_finalizada'] && !data["sessao_solene"]){
$("#resultado_votacao").css("color", "#45919D");
$("#mat_em_votacao").text("Matéria em Votação");
$("#resultado_votacao_div").show();
}
else{
$("#resultado_votacao_div").hide();
$("#mat_em_votacao").text("Matéria em Leitura");
}
console.log(data["tipo_resultado"], data['tipo_votacao']);
$("#resultado_votacao").text(data["tipo_resultado"]);
var resultado_votacao_upper = $("#resultado_votacao").text().toUpperCase();
console.log(resultado_votacao_upper, data['tipo_resultado']);
if (resultado_votacao_upper.search("APROV") != -1){
$("#resultado_votacao").css("color", "#7CFC00");
$("#mat_em_votacao").text("Matéria Votada");
}
else if (resultado_votacao_upper.search("REJEIT") != -1){
$("#resultado_votacao").css("color", "red");
$("#mat_em_votacao").text("Matéria Votada");
}
else if (resultado_votacao_upper.search("LIDA") != -1){
$("#mat_em_votacao").text("Matéria Lida");
}
}
else{
$("#resultado_votacao").text('');
if(data['tipo_votacao'] != 'Leitura')
$("#mat_em_votacao").text("Matéria em Votação");
else{
$("#mat_em_votacao").text("Matéria em Leitura");
}
}
},
error: function(err) {
console.error(err);

Loading…
Cancel
Save