From 4d5303f3c1b7889292b89486093ce973e6560414 Mon Sep 17 00:00:00 2001 From: Cesar Carvalho Date: Mon, 10 Jun 2019 13:21:32 -0300 Subject: [PATCH] Cronometro da ordem parando os demais --- sapl/painel/views.py | 3 +- sapl/sessao/views.py | 5 +- sapl/templates/sessao/painel.html | 81 +++++++++++++++++++------------ 3 files changed, 56 insertions(+), 33 deletions(-) diff --git a/sapl/painel/views.py b/sapl/painel/views.py index 34179ecb9..e939e71bc 100644 --- a/sapl/painel/views.py +++ b/sapl/painel/views.py @@ -338,7 +338,8 @@ def votante_view(request): def painel_view(request, pk): context = {'head_title': str(_('Painel Plenário')), 'sessao_id': pk, - 'cronometros': Cronometro.objects.filter(ativo=True).order_by('ordenacao') + 'cronometros': Cronometro.objects.filter(ativo=True).order_by('ordenacao'), + 'painel_config': PainelConfig.objects.first() } return render(request, 'painel/index.html', context) diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py index 56f787fab..91a2bf6cc 100755 --- a/sapl/sessao/views.py +++ b/sapl/sessao/views.py @@ -33,7 +33,7 @@ from sapl.materia.forms import filtra_tramitacao_status from sapl.materia.models import (Autoria, TipoMateriaLegislativa, Tramitacao) from sapl.materia.views import MateriaLegislativaPesquisaView -from sapl.painel.models import Cronometro +from sapl.painel.models import Cronometro, PainelConfig from sapl.parlamentares.models import (Filiacao, Legislatura, Mandato, Parlamentar, SessaoLegislativa) from sapl.sessao.apps import AppConfig @@ -1097,7 +1097,8 @@ class PainelView(PermissionRequiredForAppCrudMixin, TemplateView): 'sessao_id': kwargs['pk'], 'root_pk': kwargs['pk'], 'sessaoplenaria': SessaoPlenaria.objects.get(pk=kwargs['pk']), - 'cronometros': cronometros}) + 'cronometros': cronometros, + 'painel_config': PainelConfig.objects.first()}) tipo_sessao = sessao.tipo if tipo_sessao.nome == "Solene": diff --git a/sapl/templates/sessao/painel.html b/sapl/templates/sessao/painel.html index e6b52dd2f..a9039b4e6 100644 --- a/sapl/templates/sessao/painel.html +++ b/sapl/templates/sessao/painel.html @@ -82,8 +82,8 @@ function switch_painel(aberto) { function checkTime(i) { if (i<10) { - i = "0" + i - }; + i = "0" + i; + } return i; } @@ -96,12 +96,12 @@ function startTime() { s = checkTime(s); $("#relogio").text(h+":"+m+":"+s) let t = setTimeout(function(){ - startTime() + startTime(); },500); } $(document).ready(function(){ - let pk_sessao = {{root_pk}}; + let pk_sessao = parseInt("{{root_pk}}"); let botao_abrir = $('#id_abrir_painel'); let botao_fechar = $('#id_fechar_painel'); @@ -111,16 +111,16 @@ $(document).ready(function(){ dataType: 'json', url: "{% url 'sapl.painel:verifica_painel' %}", error: function () { - alert("Erro ao verificar o Painel"); + alert("Erro ao verificar o Painel"); }, success: function (data) { - if (data['status']) { - botao_abrir.hide(); - botao_fechar.show(); - } else { - botao_abrir.show(); - botao_fechar.hide(); - } + if (data['status']) { + botao_abrir.hide(); + botao_fechar.show(); + } else { + botao_abrir.show(); + botao_fechar.hide(); + } }, }); @@ -133,7 +133,7 @@ $(document).ready(function(){ $('#cronometro_' + "{{cron.id}}").runner({ autostart: false, countdown: true, - startAt: {{cron.duracao_cronometro|duration_to_seconds}} * 1000, + startAt: parseInt("{{cron.duracao_cronometro|duration_to_seconds}}") * 1000, stopAt: 0, milliseconds: false }).on('runnerFinish', function(eventObject, info){ @@ -144,26 +144,47 @@ $(document).ready(function(){ $('#cronometro_' + "{{cron.id}}" + '_Start').text('Iniciar'); }) - $('#cronometro_' + "{{cron.id}}" + '_Start').click(function() { - if ($('#cronometro_' + "{{cron.id}}" + '_Start').text() == 'Iniciar'){ - $.get('/painel/cronometro', { tipo: 'cronometro_' + "{{cron.id}}", action: 'start' } ); - - $('#cronometro_' + "{{cron.id}}" + '_Reset').hide(); - $('#cronometro_' + "{{cron.id}}").runner('start'); - $('#cronometro_' + "{{cron.id}}" + '_Start').text('Parar'); - } else{ - $.get('/painel/cronometro', { tipo: 'cronometro_' + "{{cron.id}}", action: 'stop' } ); - - $('#cronometro_' + "{{cron.id}}" + '_Reset').show(); - $('#cronometro_' + "{{cron.id}}").runner('stop'); - $('#cronometro_' + "{{cron.id}}" + '_Start').text('Iniciar'); - } - }); + {% if painel_config.cronometro_ordem and cron.tipo == "Cronômetro da Questão de Ordem" %} + $('#cronometro_' + "{{cron.id}}" + '_Start').click(function() { + if ($('#cronometro_' + "{{cron.id}}" + '_Start').text() == 'Iniciar'){ + {% for c in cronometros %} + {% if c.tipo == "Cronômetro da Questão de Ordem" %} + $.get('/painel/cronometro', { tipo: 'cronometro_' + "{{c.id}}", action: 'start' } ); + $('#cronometro_' + "{{c.id}}" + '_Reset').hide(); + $('#cronometro_' + "{{c.id}}").runner('start'); + $('#cronometro_' + "{{c.id}}" + '_Start').text('Parar'); + {% else %} + $.get('/painel/cronometro', { tipo: 'cronometro_' + "{{c.id}}", action: 'stop' } ); + $('#cronometro_' + "{{c.id}}" + '_Reset').show(); + $('#cronometro_' + "{{c.id}}").runner('stop'); + $('#cronometro_' + "{{c.id}}" + '_Start').text('Iniciar'); + {% endif %} + {% endfor %} + } else{ + $.get('/painel/cronometro', { tipo: 'cronometro_' + "{{cron.id}}", action: 'stop' } ); + $('#cronometro_' + "{{cron.id}}" + '_Reset').show(); + $('#cronometro_' + "{{cron.id}}").runner('stop'); + $('#cronometro_' + "{{cron.id}}" + '_Start').text('Iniciar'); + } + }); + {% else %} + $('#cronometro_' + "{{cron.id}}" + '_Start').click(function() { + if ($('#cronometro_' + "{{cron.id}}" + '_Start').text() == 'Iniciar'){ + $.get('/painel/cronometro', { tipo: 'cronometro_' + "{{cron.id}}", action: 'start' } ); + $('#cronometro_' + "{{cron.id}}" + '_Reset').hide(); + $('#cronometro_' + "{{cron.id}}").runner('start'); + $('#cronometro_' + "{{cron.id}}" + '_Start').text('Parar'); + } else{ + $.get('/painel/cronometro', { tipo: 'cronometro_' + "{{cron.id}}", action: 'stop' } ); + $('#cronometro_' + "{{cron.id}}" + '_Reset').show(); + $('#cronometro_' + "{{cron.id}}").runner('stop'); + $('#cronometro_' + "{{cron.id}}" + '_Start').text('Iniciar'); + } + }); + {% endif %} $('#cronometro_' + "{{cron.id}}" + '_Reset').click(function() { - $.get('/painel/cronometro', { tipo: 'cronometro_' + "{{cron.id}}", action: 'reset' } ); - $('#cronometro_' + "{{cron.id}}").runner('stop'); $('#cronometro_' + "{{cron.id}}").runner('reset'); });