Browse Source

Muda layout do painel

pull/514/head
Eduardo Edson Batista Cordeiro Alves 9 years ago
parent
commit
82b64c70f9
  1. 10
      sapl/painel/views.py
  2. 419
      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

419
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> }
</style>
<script type="text/javascript"> </head>
$(document).ready(function() { <body>
<h1 id="title"></h1>
//TODO: replace by a fancy jQuery clock <input id="json_url" type="hidden" value="{% url 'sapl.painel:dados_painel' sessao_id %}">
function checkTime(i) {
if (i<10) {i = "0" + i}; // add zero in front of numbers < 10 <h3><font color="#4FA64D"><p align="center"><span id="sessao_plenaria"></span></p></font></h3>
return i;
} <table style="width:100%">
<tr>
function startTime() { <th style="text-align:center"><font color="white" size="2"><span id="sessao_plenaria_data"></span></font></th>
var today=new Date(); <th style="text-align:center"><font color="white" size="2"><span id="sessao_plenaria_hora_inicio"></span></font></th>
var h=today.getHours(); </tr>
var m=today.getMinutes(); </table>
var s=today.getSeconds();
m = checkTime(m); <h2><font color="red"><p align="center"><span id="message"></span></p></font></h2>
s = checkTime(s);
$("#relogio").text(h+":"+m+":"+s) <font color="white"><p align="center">-----------------------------------------------</p></font>
var t = setTimeout(function(){ <h3><font color="white"><p align="center"><span id="relogio"></span></p></font></h3>
startTime() <font color="white"><p align="center">-----------------------------------------------</p></font>
}, 500);
} <h3><font color="#459170"><p align="center">Cronômetros</p></font></h3>
<table style="width:82%">
startTime(); <tr>
<th style="text-align:center"><font color="white">Discurso: </font></th>
$('#cronometro_discurso').runner({ <th style="text-align:center"><font color="white"><span id="cronometro_discurso"></span></font></th>
autostart: false, </tr>
countdown: true, <tr>
startAt: 5 * 60 * 1000, // 5 minutes <th style="text-align:center"><font color="white">Aparte: </font></th>
stopAt: 0, <th style="text-align:center"><font color="white"><span id="cronometro_aparte"></span></font></th>
milliseconds: false </tr>
}); <tr>
<th style="text-align:center"><font color="white">Questão de Ordem: </font></th>
$('#cronometro_aparte').runner({ <th style="text-align:center"><font color="white"><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:100%">
$('#cronometro_ordem').runner({ <tr>
autostart: false, <th style="text-align:center"><font color="white"><span id="parlamentares"></span></font></th>
countdown: true, <th style="text-align:center"><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%">
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({
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);
});
} }
}else{
jQuery.each(presentes_ordem_dia, function(index, parlamentar) {
if( (data["tipo_resultado"] == "Aprovado por unanimidade") || (data["tipo_resultado"] == "Aprovado por maioria") || (data["tipo_resultado"] == "Rejeitado")){ $('<li />', {text: parlamentar.nome + ' - ' + parlamentar.partido}).appendTo(presentes);
if(data["tipo_votacao"] == "Nominal") { });
jQuery.each(data["votos"], function(index, parlamentar) { }
$('<li />', {text: parlamentar.parlamentar + ' / ' + parlamentar.partido + '/ Voto: ' + parlamentar.voto}).appendTo(presentes);
}); //console.debug(presentes_ordem_dia)
}
}else{ var votacao = $("#votacao")
jQuery.each(presentes_ordem_dia, function(index, parlamentar) {
$('<li />', {text: parlamentar.nome + '/' + parlamentar.partido}).appendTo(presentes); if (data["num_presentes_ordem_dia"] != null) {
}); num_presentes_ordem_dia = data["num_presentes_ordem_dia"];
} }
else if (data["num_presentes_expediente"] != null){
//console.debug(presentes_ordem_dia) num_presentes_ordem_dia = data["num_presentes_expediente"]
}
var votacao = $("#votacao")
votacao.children().remove()
if (data["num_presentes_ordem_dia"] != null) { votacao.append("<li>Sim: " + data["numero_votos_sim"] + "</li>")
num_presentes_ordem_dia = data["num_presentes_ordem_dia"]; votacao.append("<li>Não: " + data["numero_votos_nao"] + "</li>")
} votacao.append("<li>Abstenções: " + data["numero_abstencoes"] + "</li>")
else if (data["num_presentes_expediente"] != null){ votacao.append("<li>Presentes: " + num_presentes_ordem_dia + "</li>")
num_presentes_ordem_dia = data["num_presentes_expediente"] votacao.append("<li>Total votos: " + data["total_votos"] + "</li>")
}
votacao.children().remove() var discurso_current = data["cronometro_discurso"];
votacao.append("<li>Sim: " + data["numero_votos_sim"] + "</li>") if (discurso_current != discurso_previous) {
votacao.append("<li>Não: " + data["numero_votos_nao"] + "</li>") $('#cronometro_discurso').runner(discurso_current);
votacao.append("<li>Abstenções: " + data["numero_abstencoes"] + "</li>") discurso_previous = discurso_current;
votacao.append("<li>Presentes: " + num_presentes_ordem_dia + "</li>") }
votacao.append("<li>Total votos: " + data["total_votos"] + "</li>")
var aparte_current = data["cronometro_aparte"];
if (aparte_current != aparte_previous) {
var discurso_current = data["cronometro_discurso"]; $('#cronometro_aparte').runner(aparte_current);
if (discurso_current != discurso_previous) { aparte_previous = aparte_current;
$('#cronometro_discurso').runner(discurso_current); }
discurso_previous = discurso_current;
} var ordem_current = data["cronometro_ordem"];
if (ordem_current != ordem_previous) {
var aparte_current = data["cronometro_aparte"]; $('#cronometro_ordem').runner(ordem_current);
if (aparte_current != aparte_previous) { ordem_previous = ordem_current;
$('#cronometro_aparte').runner(aparte_current); }
aparte_previous = aparte_current;
} $("#materia_legislativa_texto").text(data["materia_legislativa_texto"])
$("#observacao_materia").text(data["observacao_materia"])
var ordem_current = data["cronometro_ordem"]; $("#resultado_votacao").text(data["tipo_resultado"])
if (ordem_current != ordem_previous) {
$('#cronometro_ordem').runner(ordem_current); },
ordem_previous = ordem_current; error: function(err) {
} console.error(err);
},
$("#materia_legislativa_texto").text(data["materia_legislativa_texto"]) dataType: "json",
$("#observacao_materia").text(data["observacao_materia"]) complete: setTimeout(function() {poll()}, 2000),
$("#resultado_votacao").text(data["tipo_resultado"]) timeout: 20000 // TODO: decrease
})
}, })();
error: function(err) { });
console.error(err); </script>
},
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>
</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