From 03ccca0091ace17004b0c6b009421bda91f9c5b0 Mon Sep 17 00:00:00 2001 From: Cesar Carvalho Date: Tue, 4 Jun 2019 10:45:34 -0300 Subject: [PATCH] =?UTF-8?q?Cron=C3=B4metros=20na=20tela=20do=20painel=20fu?= =?UTF-8?q?ncionando?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/painel/views.py | 17 +- sapl/templates/painel/index.html | 465 ++++++++++++------------------ sapl/templates/sessao/painel.html | 1 + 3 files changed, 193 insertions(+), 290 deletions(-) diff --git a/sapl/painel/views.py b/sapl/painel/views.py index 9744a62e9..aaaf19e81 100644 --- a/sapl/painel/views.py +++ b/sapl/painel/views.py @@ -538,15 +538,24 @@ def get_dados_painel(request, pk): if casa and app_config and (bool(casa.logotipo)): brasao = casa.logotipo.url \ if app_config.mostrar_brasao_painel else None + + CRONOMETRO_STATUS = { + 'I': 'start', + 'R': 'reset', + 'S': 'stop', + 'C': 'increment' + } + + dict_status_cronometros = dict(Cronometro.objects.all().order_by('ordenacao').values_list('id', 'status')) + + for key, value in dict_status_cronometros.items(): + dict_status_cronometros[key] = CRONOMETRO_STATUS[dict_status_cronometros[key]] response = { 'sessao_plenaria': str(sessao), 'sessao_plenaria_data': sessao.data_inicio.strftime('%d/%m/%Y'), 'sessao_plenaria_hora_inicio': sessao.hora_inicio, - 'cronometro_aparte': get_cronometro_status(request, 'aparte'), - 'cronometro_discurso': get_cronometro_status(request, 'discurso'), - 'cronometro_ordem': get_cronometro_status(request, 'ordem'), - 'cronometro_consideracoes': get_cronometro_status(request, 'consideracoes'), + 'cronometros': dict_status_cronometros, 'status_painel': sessao.painel_aberto, 'brasao': brasao } diff --git a/sapl/templates/painel/index.html b/sapl/templates/painel/index.html index 476e700c8..30d6f07f5 100644 --- a/sapl/templates/painel/index.html +++ b/sapl/templates/painel/index.html @@ -21,7 +21,6 @@ {% render_bundle 'painel' 'css' %} {% endblock webpack_loader_css %} - - - - -
-

-
-
-
- -
-
- -
-
- -
-
- -
-
- -
-

+ + +
+

+
+
+
+ +
+
+
+
-
-
-
+
+
+
- - -
-
-
-
-

Parlamentares

- -
+
+ +
+

+
+ +
+
+
+
+ +
+
+
+
+

Parlamentares

+ +
+
+
+
+

Oradores

+
-
-
-

Oradores

- -
-
-

Cronômetros

-
- Discurso:
- Aparte:
- Questão de Ordem:
- Considerações Finais: -
+
+

Cronômetros

+
+ {% for cronometro in cronometros %} + {{cronometro}}:
+ {% endfor %}
+
-
-

Resultado

- -

-

+
+

Resultado

+ +

+

-
-

Matéria em Votação

- - -
+
+

Matéria em Votação

+ +
+
- -
+
{% block webpack_loader_js %} @@ -122,89 +117,47 @@ var n = d.toLocaleDateString(); document.getElementById("date").innerHTML = n; - $(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(); - - var audioAlertFinish = document.getElementById("audio"); - - $('#cronometro_discurso').runner({ - autostart: false, - countdown: true, - startAt: {{ 'discurso'|cronometro_to_seconds }} * 1000, - stopAt: 0, - milliseconds: false, - format: function(value) { - let h = Math.floor((value/1000) / 3600); - h = checkTime(h); - let m = Math.floor((value/1000) % 3600 / 60); - m = checkTime(m); - let s = Math.floor((value/1000) % 3600 % 60); - s = checkTime(s); - return h.toString() + ":" + m.toString() + ":" + s.toString(); - } - }).on('runnerFinish', function(eventObject, info){ - audioAlertFinish.play(); - }); + 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); + } + + function show_voto(voto) { + if (voto == "Sim"){ + return ' Sim ' + } + else if (voto == "Não"){ + return ' Não ' + } + return voto + } - $('#cronometro_aparte').runner({ - autostart: false, - countdown: true, - startAt: {{ 'aparte'|cronometro_to_seconds }} * 1000, - stopAt: 0, - milliseconds: false, - format: function(value) { - let h = Math.floor((value/1000) / 3600); - h = checkTime(h); - let m = Math.floor((value/1000) % 3600 / 60); - m = checkTime(m); - let s = Math.floor((value/1000) % 3600 % 60); - s = checkTime(s); - return h.toString() + ":" + m.toString() + ":" + s.toString(); - } - }).on('runnerFinish', function(eventObject, info){ - audioAlertFinish.play(); - }); + $(document).ready(function() { + //TODO: replace by a fancy jQuery clock + startTime(); - $('#cronometro_ordem').runner({ - autostart: false, - countdown: true, - startAt: {{ 'ordem'|cronometro_to_seconds }} * 1000, - stopAt: 0, - milliseconds: false, - format: function(value) { - let h = Math.floor((value/1000) / 3600); - h = checkTime(h); - let m = Math.floor((value/1000) % 3600 / 60); - m = checkTime(m); - let s = Math.floor((value/1000) % 3600 % 60); - s = checkTime(s); - return h.toString() + ":" + m.toString() + ":" + s.toString(); - } - }).on('runnerFinish', function(eventObject, info){ - audioAlertFinish.play(); - }); + var audioAlertFinish = document.getElementById("audio"); - $('#cronometro_consideracoes').runner({ + var cronometros_previous = []; + {% for cron in cronometros %} + cronometros_previous.push(0); + $('#cronometro_' + "{{cron.id}}").runner({ autostart: false, countdown: true, - startAt: {{ 'consideracoes'|cronometro_to_seconds }} * 1000, + startAt: {{cron.duracao_cronometro|duration_to_seconds}} * 1000, stopAt: 0, milliseconds: false, format: function(value) { @@ -218,15 +171,11 @@ } }).on('runnerFinish', function(eventObject, info){ audioAlertFinish.play(); - }); - - var discurso_previous; - var ordem_previous; - var aparte_previous; - var consideracoes_previous; + }) + {% endfor %} - var counter = 1; - (function poll() { + var counter = 1; + (function poll() { $.ajax({ url: "{% url 'sapl.painel:dados_painel' sessao_id %}", type: "GET", @@ -236,8 +185,7 @@ $("#sessao_plenaria_hora_inicio").text("Hora Início: " + data["sessao_plenaria_hora_inicio"]) if (data["status_painel"] == false) { $("#message").text("PAINEL ENCONTRA-SE FECHADO"); - } - else { + } else { $("#message").text(""); } @@ -256,56 +204,52 @@ var presentes_list = data["presentes"]; if (data["status_painel"] == true) { - presentes.append(''); - $.each(presentes_list, function (index, parlamentar) { - - - if (parlamentar.voto == 'Voto Informado'){ - $('#parlamentares_list').append('') - } - else{ - $('#parlamentares_list').append('') - } + presentes.append('
' + - parlamentar.nome + - ' ' + - parlamentar.partido + ' ' - + '
' + - parlamentar.nome + - ' ' + - parlamentar.partido + ' ' - + show_voto(parlamentar.voto) + '
'); + $.each(presentes_list, function (index, parlamentar) { + + if (parlamentar.voto == 'Voto Informado'){ + $('#parlamentares_list').append('') + } else{ + $('#parlamentares_list').append('') + } + }); + + presentes.append('
' + + parlamentar.nome + + ' ' + + parlamentar.partido + ' ' + + '
' + + parlamentar.nome + + ' ' + + parlamentar.partido + ' ' + + show_voto(parlamentar.voto) + '
') + if (data["oradores"].length > 0){ + $('#aparecer_oradores').show(); + oradores.append(''); + $.each(oradores_list, function (index, orador) { + $('#oradores_list').append('') }); - presentes.append('
' + + orador.numero + 'º  ' + + orador.nome +'
') - - if (data["oradores"].length > 0){ - $('#aparecer_oradores').show(); - oradores.append(''); - $.each(oradores_list, function (index, orador) { - $('#oradores_list').append('') - }); - oradores.append('
' + - orador.numero + 'º  ' + - orador.nome +'
'); - } - else { - $('#aparecer_oradores').hide(); - } - } - else{ - presentes.append(''); - $('#parlamentares_list').append( - '
A listagem de parlamentares só aparecerá quando o painel estiver aberto.
') - presentes.append('
'); - - oradores.append(''); - $('#oradores_list').append( - '
A listagem de oradores só aparecerá quando o painel estiver aberto.
') - oradores.append('
'); - - votacao.append(''); - $("#votacao").append('
A votação só aparecerá quando o painel estiver aberto
'); - votacao.append('
'); + oradores.append(''); + } else { + $('#aparecer_oradores').hide(); + } + } else{ + presentes.append(''); + $('#parlamentares_list').append( + '
A listagem de parlamentares só aparecerá quando o painel estiver aberto.
') + presentes.append('
'); + + oradores.append(''); + $('#oradores_list').append( + '
A listagem de oradores só aparecerá quando o painel estiver aberto.
') + oradores.append('
'); + + votacao.append(''); + $("#votacao").append('
A votação só aparecerá quando o painel estiver aberto
'); + votacao.append('
'); } if (data['materia_legislativa_texto'] && data["status_painel"] == true){ @@ -319,77 +263,39 @@ votacao.append("
  • Abstenções: " + data["numero_abstencoes"] + "
  • ") votacao.append("
  • Presentes: " + num_presentes + "
  • ") votacao.append("
  • Total votos: " + data["total_votos"] + "
  • ") - } - - else{ + } else{ $("#votacao").append('
    Não há votação, pois não há nenhuma matéria aberta ou já votada.
    '); + }; + + var ids = []; + var status_cronometros = [] + for (var key in data['cronometros']) { + if (data['cronometros'].hasOwnProperty(key)) { + ids.push(key); + status_cronometros.push(data['cronometros'][key]) + } } - var discurso_current = data["cronometro_discurso"]; - if (!discurso_previous){ - discurso_previous = '' - } - - if (discurso_current != discurso_previous) { - $('#cronometro_discurso').runner(discurso_current); - discurso_previous = discurso_current; - } - - var aparte_current = data["cronometro_aparte"]; - if (!aparte_previous){ - aparte_previous = '' - } - - if (aparte_current != aparte_previous) { - $('#cronometro_aparte').runner(aparte_current); - aparte_previous = aparte_current; - } - - var ordem_current = data["cronometro_ordem"]; - if (!ordem_previous){ - ordem_previous = '' - } - - if (ordem_current != ordem_previous) { - $('#cronometro_ordem').runner(ordem_current); - ordem_previous = ordem_current; - } - - var consideracoes_current = data["cronometro_consideracoes"]; - if (!consideracoes_previous){ - consideracoes_previous = '' - } - - if (consideracoes_current != consideracoes_previous) { - $('#cronometro_consideracoes').runner(consideracoes_current); - consideracoes_previous = consideracoes_current; - } - - if($('#cronometro_discurso').runner('info').formattedTime == "00:00:30") { - audioAlertFinish.play(); - } - - if($('#cronometro_aparte').runner('info').formattedTime == "00:00:30") { - audioAlertFinish.play(); - } - - if($('#cronometro_ordem').runner('info').formattedTime == "00:00:30") { - audioAlertFinish.play(); - } + for(let i=0; i 151) { $("#observacao_materia").text(texto.substr(0, 145).concat('(...)')); - } - else{ + } else{ $("#observacao_materia").text(texto); } - } - else{ + } else{ $("#observacao_materia").text(''); } @@ -410,36 +314,25 @@ $("#resultado_votacao").text(data["tipo_resultado"]); $("#resultado_votacao").css("color", "#45919D"); var resultado_votacao_upper = $("#resultado_votacao").text().toUpperCase(); - if (resultado_votacao_upper.search("APROV") != -1){ - $("#resultado_votacao").css("color", "green"); - } - if (resultado_votacao_upper.search("REJEIT") != -1){ - $("#resultado_votacao").css("color", "red"); - } - } - else{ + if (resultado_votacao_upper.search("APROV") != -1){ + $("#resultado_votacao").css("color", "green"); + } + if (resultado_votacao_upper.search("REJEIT") != -1){ + $("#resultado_votacao").css("color", "red"); + } + } else{ $("#resultado_votacao").text(''); } - }, - error: function(err) { - console.error(err); - }, - dataType: "json", - complete: setTimeout(function() {poll()}, 500), - timeout: 20000 // TODO: decrease + }, + error: function(err) { + console.error(err); + }, + dataType: "json", + complete: setTimeout(function() {poll()}, 500), + timeout: 20000 // TODO: decrease }) })(); - }); - - function show_voto(voto) { - if (voto == "Sim"){ - return ' Sim ' - } - else if (voto == "Não"){ - return ' Não ' - } - return voto - } + }); diff --git a/sapl/templates/sessao/painel.html b/sapl/templates/sessao/painel.html index c4e74cbeb..ad5feee0b 100644 --- a/sapl/templates/sessao/painel.html +++ b/sapl/templates/sessao/painel.html @@ -52,6 +52,7 @@
    +

    {% endblock detail_content %}