|
|
@ -5,209 +5,220 @@ |
|
|
|
<!--[if gt IE 8]><!--> |
|
|
|
<html lang="en"> |
|
|
|
<!--<![endif]--> |
|
|
|
|
|
|
|
<head> |
|
|
|
<meta charset="UTF-8"> |
|
|
|
<!-- TODO: does it need this head_title here? --> |
|
|
|
<title>{% block head_title %}{% trans 'SAPL - Sistema de Apoio ao Processo Legislativo' %}{% endblock %}</title> |
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
|
<script type="text/javascript" src="{% static 'jquery/dist/jquery.js' %}"></script> |
|
|
|
<script type="text/javascript" src="{% static 'jQuery-runner/build/jquery.runner.js' %}"></script> |
|
|
|
|
|
|
|
<STYLE type="text/css"> |
|
|
|
@media screen { |
|
|
|
body {font-size: medium; color: white; line-height: 1em; background: black;} |
|
|
|
} |
|
|
|
</STYLE> |
|
|
|
|
|
|
|
<script type="text/javascript"> |
|
|
|
$(document).ready(function() { |
|
|
|
|
|
|
|
//TODO: replace by a fancy jQuery clock |
|
|
|
function checkTime(i) { |
|
|
|
if (i<10) {i = "0" + i}; // add zero in front of numbers < 10 |
|
|
|
return i; |
|
|
|
} |
|
|
|
|
|
|
|
function startTime() { |
|
|
|
var today=new Date(); |
|
|
|
var h=today.getHours(); |
|
|
|
var m=today.getMinutes(); |
|
|
|
var s=today.getSeconds(); |
|
|
|
m = checkTime(m); |
|
|
|
s = checkTime(s); |
|
|
|
$("#relogio").text(h+":"+m+":"+s) |
|
|
|
var t = setTimeout(function(){ |
|
|
|
startTime() |
|
|
|
}, 500); |
|
|
|
} |
|
|
|
|
|
|
|
startTime(); |
|
|
|
|
|
|
|
$('#cronometro_discurso').runner({ |
|
|
|
autostart: false, |
|
|
|
countdown: true, |
|
|
|
startAt: 5 * 60 * 1000, // 5 minutes |
|
|
|
stopAt: 0, |
|
|
|
milliseconds: false |
|
|
|
}); |
|
|
|
|
|
|
|
$('#cronometro_aparte').runner({ |
|
|
|
autostart: false, |
|
|
|
countdown: true, |
|
|
|
startAt: 3 * 60 * 1000, // 3 minutes |
|
|
|
stopAt: 0, |
|
|
|
milliseconds: false |
|
|
|
}); |
|
|
|
|
|
|
|
$('#cronometro_ordem').runner({ |
|
|
|
autostart: false, |
|
|
|
countdown: true, |
|
|
|
startAt: 2 * 60 * 1000, // 2 minutes |
|
|
|
stopAt: 0, |
|
|
|
milliseconds: false |
|
|
|
}); |
|
|
|
|
|
|
|
var discurso_previous = ''; |
|
|
|
var aparte_previous = ''; |
|
|
|
var ordem_previous = ''; |
|
|
|
|
|
|
|
var counter = 1; |
|
|
|
(function poll() { |
|
|
|
$.ajax({ |
|
|
|
url: $("#json_url").val(), |
|
|
|
type: "GET", |
|
|
|
success: function(data) { |
|
|
|
|
|
|
|
|
|
|
|
$("#sessao_plenaria").text(data["sessao_plenaria"]) |
|
|
|
$("#sessao_plenaria_data").text("Data Início: " + data["sessao_plenaria_data"]) |
|
|
|
$("#sessao_plenaria_hora_inicio").text("Hora Início: " + data["sessao_plenaria_hora_inicio"]) |
|
|
|
|
|
|
|
if (data["status_painel"] === "FECHADO") { |
|
|
|
$("#message").text("PAINEL ENCONTRA-SE FECHADO"); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var presentes = $("#parlamentares"); |
|
|
|
presentes.children().remove(); |
|
|
|
|
|
|
|
if (data["presentes_ordem_dia"] != null) { |
|
|
|
presentes_ordem_dia = data["presentes_ordem_dia"]; |
|
|
|
} |
|
|
|
else if (data["presentes_expediente"] != null){ |
|
|
|
presentes_ordem_dia = data["presentes_expediente"] |
|
|
|
<head> |
|
|
|
<meta charset="UTF-8"> |
|
|
|
<!-- TODO: does it need this head_title here? --> |
|
|
|
<title>{% block head_title %}{% trans 'SAPL - Sistema de Apoio ao Processo Legislativo' %}{% endblock %}</title> |
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
|
<script type="text/javascript" src="{% static 'jquery/dist/jquery.js' %}"></script> |
|
|
|
<script type="text/javascript" src="{% static 'jQuery-runner/build/jquery.runner.js' %}"></script> |
|
|
|
|
|
|
|
<style type="text/css"> |
|
|
|
@media screen { |
|
|
|
body { |
|
|
|
background: #2B2B2A; |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |
|
|
|
</head> |
|
|
|
<body> |
|
|
|
<h1 id="title"></h1> |
|
|
|
<input id="json_url" type="hidden" value="{% url 'sapl.painel:dados_painel' sessao_id %}"> |
|
|
|
|
|
|
|
<h3><font color="#4FA64D"><p align="center"><span id="sessao_plenaria"></span></p></font></h3> |
|
|
|
|
|
|
|
<table style="width:100%"> |
|
|
|
<tr> |
|
|
|
<th style="text-align:center"><font color="white" size="2"><span id="sessao_plenaria_data"></span></font></th> |
|
|
|
<th style="text-align:center"><font color="white" size="2"><span id="sessao_plenaria_hora_inicio"></span></font></th> |
|
|
|
</tr> |
|
|
|
</table> |
|
|
|
|
|
|
|
<h2><font color="red"><p align="center"><span id="message"></span></p></font></h2> |
|
|
|
|
|
|
|
<font color="white"><p align="center">-----------------------------------------------</p></font> |
|
|
|
<h3><font color="white"><p align="center"><span id="relogio"></span></p></font></h3> |
|
|
|
<font color="white"><p align="center">-----------------------------------------------</p></font> |
|
|
|
|
|
|
|
<h3><font color="#459170"><p align="center">Cronômetros</p></font></h3> |
|
|
|
<table style="width:82%"> |
|
|
|
<tr> |
|
|
|
<th style="text-align:center"><font color="white">Discurso: </font></th> |
|
|
|
<th style="text-align:center"><font color="white"><span id="cronometro_discurso"></span></font></th> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<th style="text-align:center"><font color="white">Aparte: </font></th> |
|
|
|
<th style="text-align:center"><font color="white"><span id="cronometro_aparte"></span></font></th> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<th style="text-align:center"><font color="white">Questão de Ordem: </font></th> |
|
|
|
<th style="text-align:center"><font color="white"><span id="cronometro_ordem"></span></font></th> |
|
|
|
</tr> |
|
|
|
</table> |
|
|
|
|
|
|
|
<h3><font color="white"><p align="center">-----------------------------------------------</p></font></h3> |
|
|
|
|
|
|
|
<h3><font color="#459170"><p align="center">Parlamentares e Votos</p></font></h3> |
|
|
|
<table style="width:100%"> |
|
|
|
<tr> |
|
|
|
<th style="text-align:center"><font color="white"><span id="parlamentares"></span></font></th> |
|
|
|
<th style="text-align:center"><font color="white"><span id="votacao"></span></font></th> |
|
|
|
</tr> |
|
|
|
</table> |
|
|
|
|
|
|
|
<h3><font color="white"><p align="center">-----------------------------------------------</p></font></h3> |
|
|
|
|
|
|
|
<h3><font color="#459170"><p align="center">Matéria em Votação</p></font></h3> |
|
|
|
<table style="width:100%"> |
|
|
|
<tr><th style="text-align:center"><font color="white"><span id="materia_legislativa_texto"></span></font></th></tr> |
|
|
|
<tr><th style="text-align:center"><font color="white"><span id="observacao_materia"></span></font></th></tr> |
|
|
|
<tr><th style="text-align:center"><font color="#45919D"><span id="resultado_votacao"></span></font></th></tr> |
|
|
|
</table> |
|
|
|
</body> |
|
|
|
|
|
|
|
<script type="text/javascript"> |
|
|
|
$(document).ready(function() { |
|
|
|
|
|
|
|
//TODO: replace by a fancy jQuery clock |
|
|
|
function checkTime(i) { |
|
|
|
if (i<10) {i = "0" + i}; // add zero in front of numbers < 10 |
|
|
|
return i; |
|
|
|
} |
|
|
|
|
|
|
|
function startTime() { |
|
|
|
var today=new Date(); |
|
|
|
var h=today.getHours(); |
|
|
|
var m=today.getMinutes(); |
|
|
|
var s=today.getSeconds(); |
|
|
|
m = checkTime(m); |
|
|
|
s = checkTime(s); |
|
|
|
$("#relogio").text(h+":"+m+":"+s) |
|
|
|
var t = setTimeout(function(){ |
|
|
|
startTime() |
|
|
|
}, 500); |
|
|
|
} |
|
|
|
|
|
|
|
startTime(); |
|
|
|
|
|
|
|
$('#cronometro_discurso').runner({ |
|
|
|
autostart: false, |
|
|
|
countdown: true, |
|
|
|
startAt: 5 * 60 * 1000, // 5 minutes |
|
|
|
stopAt: 0, |
|
|
|
milliseconds: false |
|
|
|
}); |
|
|
|
|
|
|
|
$('#cronometro_aparte').runner({ |
|
|
|
autostart: false, |
|
|
|
countdown: true, |
|
|
|
startAt: 3 * 60 * 1000, // 3 minutes |
|
|
|
stopAt: 0, |
|
|
|
milliseconds: false |
|
|
|
}); |
|
|
|
|
|
|
|
$('#cronometro_ordem').runner({ |
|
|
|
autostart: false, |
|
|
|
countdown: true, |
|
|
|
startAt: 2 * 60 * 1000, // 2 minutes |
|
|
|
stopAt: 0, |
|
|
|
milliseconds: false |
|
|
|
}); |
|
|
|
|
|
|
|
var discurso_previous = ''; |
|
|
|
var aparte_previous = ''; |
|
|
|
var ordem_previous = ''; |
|
|
|
|
|
|
|
var counter = 1; |
|
|
|
(function poll() { |
|
|
|
$.ajax({ |
|
|
|
url: $("#json_url").val(), |
|
|
|
type: "GET", |
|
|
|
success: function(data) { |
|
|
|
|
|
|
|
|
|
|
|
$("#sessao_plenaria").text(data["sessao_plenaria"]) |
|
|
|
$("#sessao_plenaria_data").text("Data Início: " + data["sessao_plenaria_data"]) |
|
|
|
$("#sessao_plenaria_hora_inicio").text("Hora Início: " + data["sessao_plenaria_hora_inicio"]) |
|
|
|
|
|
|
|
if (data["status_painel"] === "FECHADO") { |
|
|
|
$("#message").text("PAINEL ENCONTRA-SE FECHADO"); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var presentes = $("#parlamentares"); |
|
|
|
presentes.children().remove(); |
|
|
|
|
|
|
|
if (data["presentes_ordem_dia"] != null) { |
|
|
|
presentes_ordem_dia = data["presentes_ordem_dia"]; |
|
|
|
} |
|
|
|
else if (data["presentes_expediente"] != null){ |
|
|
|
presentes_ordem_dia = data["presentes_expediente"] |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if( (data["tipo_resultado"] == "Aprovado por unanimidade") || (data["tipo_resultado"] == "Aprovado por maioria") || (data["tipo_resultado"] == "Rejeitado")){ |
|
|
|
if(data["tipo_votacao"] == "Nominal") { |
|
|
|
jQuery.each(data["votos"], function(index, parlamentar) { |
|
|
|
$('<li />', {text: parlamentar.parlamentar + ' - ' + parlamentar.partido + ' - Voto: ' + parlamentar.voto}).appendTo(presentes); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if( (data["tipo_resultado"] == "Aprovado por unanimidade") || (data["tipo_resultado"] == "Aprovado por maioria") || (data["tipo_resultado"] == "Rejeitado")){ |
|
|
|
if(data["tipo_votacao"] == "Nominal") { |
|
|
|
jQuery.each(data["votos"], function(index, parlamentar) { |
|
|
|
$('<li />', {text: parlamentar.parlamentar + ' / ' + parlamentar.partido + '/ Voto: ' + parlamentar.voto}).appendTo(presentes); |
|
|
|
}); |
|
|
|
} |
|
|
|
}else{ |
|
|
|
jQuery.each(presentes_ordem_dia, function(index, parlamentar) { |
|
|
|
$('<li />', {text: parlamentar.nome + '/' + parlamentar.partido}).appendTo(presentes); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
//console.debug(presentes_ordem_dia) |
|
|
|
|
|
|
|
var votacao = $("#votacao") |
|
|
|
|
|
|
|
if (data["num_presentes_ordem_dia"] != null) { |
|
|
|
num_presentes_ordem_dia = data["num_presentes_ordem_dia"]; |
|
|
|
} |
|
|
|
else if (data["num_presentes_expediente"] != null){ |
|
|
|
num_presentes_ordem_dia = data["num_presentes_expediente"] |
|
|
|
} |
|
|
|
|
|
|
|
votacao.children().remove() |
|
|
|
votacao.append("<li>Sim: " + data["numero_votos_sim"] + "</li>") |
|
|
|
votacao.append("<li>Não: " + data["numero_votos_nao"] + "</li>") |
|
|
|
votacao.append("<li>Abstenções: " + data["numero_abstencoes"] + "</li>") |
|
|
|
votacao.append("<li>Presentes: " + num_presentes_ordem_dia + "</li>") |
|
|
|
votacao.append("<li>Total votos: " + data["total_votos"] + "</li>") |
|
|
|
|
|
|
|
|
|
|
|
var discurso_current = data["cronometro_discurso"]; |
|
|
|
if (discurso_current != discurso_previous) { |
|
|
|
$('#cronometro_discurso').runner(discurso_current); |
|
|
|
discurso_previous = discurso_current; |
|
|
|
} |
|
|
|
|
|
|
|
var aparte_current = data["cronometro_aparte"]; |
|
|
|
if (aparte_current != aparte_previous) { |
|
|
|
$('#cronometro_aparte').runner(aparte_current); |
|
|
|
aparte_previous = aparte_current; |
|
|
|
} |
|
|
|
|
|
|
|
var ordem_current = data["cronometro_ordem"]; |
|
|
|
if (ordem_current != ordem_previous) { |
|
|
|
$('#cronometro_ordem').runner(ordem_current); |
|
|
|
ordem_previous = ordem_current; |
|
|
|
} |
|
|
|
|
|
|
|
$("#materia_legislativa_texto").text(data["materia_legislativa_texto"]) |
|
|
|
$("#observacao_materia").text(data["observacao_materia"]) |
|
|
|
$("#resultado_votacao").text(data["tipo_resultado"]) |
|
|
|
|
|
|
|
}, |
|
|
|
error: function(err) { |
|
|
|
console.error(err); |
|
|
|
}, |
|
|
|
dataType: "json", |
|
|
|
complete: setTimeout(function() {poll()}, 2000), |
|
|
|
timeout: 20000 // TODO: decrease |
|
|
|
}) |
|
|
|
})(); |
|
|
|
}); |
|
|
|
</script> |
|
|
|
</head> |
|
|
|
<body> |
|
|
|
<h1 id="title"></h1> |
|
|
|
<input id="json_url" type="hidden" value="{% url 'sapl.painel:dados_painel' sessao_id %}"> |
|
|
|
<h3> |
|
|
|
<span id="sessao_plenaria"></span><br/><br/> |
|
|
|
<span id="sessao_plenaria_data"></span><br/><br/> |
|
|
|
<span id="sessao_plenaria_hora_inicio"></span></br><br/> |
|
|
|
<h2 id="message"></h2> |
|
|
|
<h2><span id="relogio"></span></h2> |
|
|
|
<table> |
|
|
|
<tr> |
|
|
|
<td>TEMPO DECORRIDO:</td> |
|
|
|
<td><span id="tempo-decorrido"></span></td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td>DISCURSO:</td> |
|
|
|
<td><span id="cronometro_discurso"></span></td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td>APARTE:</td> |
|
|
|
<td><span id="cronometro_aparte"></span></td> |
|
|
|
</tr> |
|
|
|
<tr> |
|
|
|
<td>QUESTÃO DE ORDEM:</td> |
|
|
|
<td><span id="cronometro_ordem"></span></td> |
|
|
|
</tr> |
|
|
|
</table> |
|
|
|
<table> |
|
|
|
<tr> |
|
|
|
<td> |
|
|
|
<ul id="parlamentares"> |
|
|
|
</ul> |
|
|
|
</td> |
|
|
|
<td> |
|
|
|
<ul id="votacao"> |
|
|
|
</ul> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
</table> |
|
|
|
<span id="materia_legislativa_texto"></span><br/> |
|
|
|
<span id="resultado_votacao"></span><br/> |
|
|
|
<span id="observacao_materia"></span> |
|
|
|
</h3> |
|
|
|
</body> |
|
|
|
}else{ |
|
|
|
jQuery.each(presentes_ordem_dia, function(index, parlamentar) { |
|
|
|
$('<li />', {text: parlamentar.nome + ' - ' + parlamentar.partido}).appendTo(presentes); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
//console.debug(presentes_ordem_dia) |
|
|
|
|
|
|
|
var votacao = $("#votacao") |
|
|
|
|
|
|
|
if (data["num_presentes_ordem_dia"] != null) { |
|
|
|
num_presentes_ordem_dia = data["num_presentes_ordem_dia"]; |
|
|
|
} |
|
|
|
else if (data["num_presentes_expediente"] != null){ |
|
|
|
num_presentes_ordem_dia = data["num_presentes_expediente"] |
|
|
|
} |
|
|
|
|
|
|
|
votacao.children().remove() |
|
|
|
votacao.append("<li>Sim: " + data["numero_votos_sim"] + "</li>") |
|
|
|
votacao.append("<li>Não: " + data["numero_votos_nao"] + "</li>") |
|
|
|
votacao.append("<li>Abstenções: " + data["numero_abstencoes"] + "</li>") |
|
|
|
votacao.append("<li>Presentes: " + num_presentes_ordem_dia + "</li>") |
|
|
|
votacao.append("<li>Total votos: " + data["total_votos"] + "</li>") |
|
|
|
|
|
|
|
|
|
|
|
var discurso_current = data["cronometro_discurso"]; |
|
|
|
if (discurso_current != discurso_previous) { |
|
|
|
$('#cronometro_discurso').runner(discurso_current); |
|
|
|
discurso_previous = discurso_current; |
|
|
|
} |
|
|
|
|
|
|
|
var aparte_current = data["cronometro_aparte"]; |
|
|
|
if (aparte_current != aparte_previous) { |
|
|
|
$('#cronometro_aparte').runner(aparte_current); |
|
|
|
aparte_previous = aparte_current; |
|
|
|
} |
|
|
|
|
|
|
|
var ordem_current = data["cronometro_ordem"]; |
|
|
|
if (ordem_current != ordem_previous) { |
|
|
|
$('#cronometro_ordem').runner(ordem_current); |
|
|
|
ordem_previous = ordem_current; |
|
|
|
} |
|
|
|
|
|
|
|
$("#materia_legislativa_texto").text(data["materia_legislativa_texto"]) |
|
|
|
$("#observacao_materia").text(data["observacao_materia"]) |
|
|
|
$("#resultado_votacao").text(data["tipo_resultado"]) |
|
|
|
|
|
|
|
}, |
|
|
|
error: function(err) { |
|
|
|
console.error(err); |
|
|
|
}, |
|
|
|
dataType: "json", |
|
|
|
complete: setTimeout(function() {poll()}, 2000), |
|
|
|
timeout: 20000 // TODO: decrease |
|
|
|
}) |
|
|
|
})(); |
|
|
|
}); |
|
|
|
</script> |
|
|
|
</html> |
|
|
|