Browse Source

Merge pull request #514 from interlegis/513-layout-painel

Fix #513 Muda layout do painel
pull/516/head
Edward 9 years ago
committed by GitHub
parent
commit
591c26b017
  1. 10
      sapl/painel/views.py
  2. 417
      sapl/templates/painel/index.html
  3. 4
      sapl/templates/sessao/painel.html

10
sapl/painel/views.py

@ -141,7 +141,9 @@ def get_presentes(pk, response, materia):
'numero_votos_nao': 0, 'numero_votos_nao': 0,
'numero_abstencoes': 0, 'numero_abstencoes': 0,
'total_votos': 0, 'total_votos': 0,
'tipo_resultado': tipo_votacao}) 'tipo_resultado': tipo_votacao,
'observacao_materia': materia.observacao,
'materia_legislativa_texto': str(materia.materia)})
return response return response
@ -220,7 +222,9 @@ def get_presentes_expediente(pk, response, materia):
'numero_votos_nao': 0, 'numero_votos_nao': 0,
'numero_abstencoes': 0, 'numero_abstencoes': 0,
'total_votos': 0, 'total_votos': 0,
'tipo_resultado': tipo_votacao}) 'tipo_resultado': tipo_votacao,
'observacao_materia': materia.observacao,
'materia_legislativa_texto': str(materia.materia)})
return response return response
@ -255,7 +259,7 @@ def get_votos(response, materia):
'numero_abstencoes': registro.numero_abstencoes, 'numero_abstencoes': registro.numero_abstencoes,
'total_votos': total, 'total_votos': total,
'tipo_votacao': tipo_votacao, 'tipo_votacao': tipo_votacao,
'tipo_resultado': registro.tipo_resultado_votacao.nome 'tipo_resultado': registro.tipo_resultado_votacao.nome,
}) })
return response return response

417
sapl/templates/painel/index.html

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

4
sapl/templates/sessao/painel.html

@ -7,11 +7,11 @@
<div class="row"> <div class="row">
<!--<div class="col-md-6"><a href="{% url 'sapl.painel:painel_principal' pk %}" class="btn btn-primary btn-sm active">Iniciar painel presidente</a></div> --> <!--<div class="col-md-6"><a href="{% url 'sapl.painel:painel_principal' pk %}" class="btn btn-primary btn-sm active">Iniciar painel presidente</a></div> -->
<div class="col-md-6"><a href="{% url 'sapl.painel:painel_principal' pk %}" class="btn btn-primary btn-sm active">Iniciar painel completo</a></div> <div class="col-md-6"><a href="" onclick="window.open('{% url 'sapl.painel:painel_principal' pk %}','Comprovante','width=800, height=800, scrollbars=yes')" class="btn btn-primary btn-sm active">Iniciar painel completo</a></div>
<!--<div class="col-md-6"><a href="{% url 'sapl.painel:painel_mensagem' %}" class="btn btn-primary btn-sm active">Iniciar painel mensagem</a></div> <!--<div class="col-md-6"><a href="{% url 'sapl.painel:painel_mensagem' %}" class="btn btn-primary btn-sm active">Iniciar painel mensagem</a></div>
<div class="col-md-6"><a href="{% url 'sapl.painel:painel_parlamentar' %}" class="btn btn-primary btn-sm active">Iniciar painel parlamentares</a></div> <div class="col-md-6"><a href="{% url 'sapl.painel:painel_parlamentar' %}" class="btn btn-primary btn-sm active">Iniciar painel parlamentares</a></div>
<div class="col-md-6"><a href="{% url 'sapl.painel:painel_votacao' %}" class="btn btn-primary btn-sm active">Iniciar painel votação</a></div> --> <div class="col-md-6"><a href="{% url 'sapl.painel:painel_votacao' %}" class="btn btn-primary btn-sm active">Iniciar painel votação</a></div> -->
<div class="col-md-6"><a href="{% url 'sapl.painel:painel_controlador' %}" class="btn btn-primary btn-sm active">Controlador Painel</a></div> <div class="col-md-6"><a href="{% url 'sapl.painel:painel_controlador' %}" target="_blank" class="btn btn-primary btn-sm active">Controlador Painel</a></div>
</div> </div>
<br /> <br />
<h1>Operação do Painel Eletrônico</h1> <h1>Operação do Painel Eletrônico</h1>

Loading…
Cancel
Save