Browse Source

Cronometros da tela de sessao funcionando

pull/2829/head
Cesar Carvalho 7 years ago
parent
commit
0f9a0d0da8
  1. 19
      sapl/painel/views.py
  2. 15
      sapl/sessao/views.py
  3. 52
      sapl/templates/sessao/painel.html

19
sapl/painel/views.py

@ -290,7 +290,10 @@ def votante_view(request):
@user_passes_test(check_permission) @user_passes_test(check_permission)
def painel_view(request, pk): def painel_view(request, pk):
context = {'head_title': str(_('Painel Plenário')), 'sessao_id': pk} context = {'head_title': str(_('Painel Plenário')),
'sessao_id': pk,
'cronometros': Cronometro.objects.all().order_by('ordenacao')
}
return render(request, 'painel/index.html', context) return render(request, 'painel/index.html', context)
@ -331,9 +334,21 @@ def painel_votacao_view(request):
return render(request, 'painel/votacao.html') return render(request, 'painel/votacao.html')
CRONOMETRO_STATUS = {
'start': 'I',
'reset': 'R',
'stop': 'S',
'increment': 'C'
}
@user_passes_test(check_permission) @user_passes_test(check_permission)
def cronometro_painel(request): def cronometro_painel(request):
request.session[request.GET['tipo']] = request.GET['action'] acao = request.GET['action']
request.session[request.GET['tipo']] = acao
cronometro_id = request.GET['tipo'].split('cronometro_')[1]
cronometro = Cronometro.objects.get(id=cronometro_id)
cronometro.status = CRONOMETRO_STATUS[acao]
cronometro.save()
return HttpResponse({}) return HttpResponse({})

15
sapl/sessao/views.py

@ -875,12 +875,17 @@ class PainelView(PermissionRequiredForAppCrudMixin, TemplateView):
if request.user.is_anonymous(): if request.user.is_anonymous():
self.template_name = 'painel/index.html' self.template_name = 'painel/index.html'
# import ipdb; ipdb.set_trace() # request.session['discurso'] = 'stop'
# request.session['aparte'] = 'stop'
# request.session['ordem'] = 'stop'
# request.session['consideracoes'] = 'stop'
request.session['discurso'] = 'stop' cronometros = Cronometro.objects.all().order_by('ordenacao')
request.session['aparte'] = 'stop' for cronometro in cronometros:
request.session['ordem'] = 'stop' cronometro.status = 'S' # Stop
request.session['consideracoes'] = 'stop' cronometro.save()
k = 'cronometro_' + str(cronometro.id)
request.session[k] = 'stop'
return TemplateView.get(self, request, *args, **kwargs) return TemplateView.get(self, request, *args, **kwargs)

52
sapl/templates/sessao/painel.html

@ -37,7 +37,7 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-2"><input size="2" id="cronometro_{{cronometro.id}}" name="{{cronometro.tipo}}" value="" readyonly="true" class="form-control"></div> <div class="col-md-2"><input size="2" id="cronometro_{{cronometro.id}}" name="cronometro_{{cronometro.id}}" value="" readyonly="true" class="form-control"></div>
</div> </div>
<br /> <br />
@ -127,52 +127,44 @@ $(document).ready(function(){
let audioAlertFinish = document.getElementById("audio"); let audioAlertFinish = document.getElementById("audio");
{% for cron in cronometros %} {% for cron in cronometros %}
cronometro = "cronometro_" + "{{cron.id}}"; $('#cronometro_' + "{{cron.id}}").prop('disabled', false);
$('#' + cronometro).prop('disabled', false); $('#cronometro_' + "{{cron.id}}").runner({
cronometroStart = '#' + cronometro + '_Start';
cronometroReset = '#' + cronometro + '_Reset';
duracao = {{cron.duracao_cronometro|duration_to_seconds}};
console.log(cronometro, duracao, cronometroStart, cronometroReset);
$('#' + cronometro).runner({
autostart: false, autostart: false,
countdown: true, countdown: true,
startAt: duracao * 1000, startAt: {{cron.duracao_cronometro|duration_to_seconds}} * 1000,
stopAt: 0, stopAt: 0,
milliseconds: false milliseconds: false
}).on('runnerFinish', function(eventObject, info){ }).on('runnerFinish', function(eventObject, info){
$.get('/painel/cronometro', { tipo: cronometro, action: 'stop' } ); $.get('/painel/cronometro', { tipo: 'cronometro_' + "{{cron.id}}", action: 'stop' } );
audioAlertFinish.play(); audioAlertFinish.play();
$(cronometroReset).show(); $('#cronometro_' + "{{cron.id}}" + '_Reset').show();
$('#' + cronometro).runner('stop'); $('#cronometro_' + "{{cron.id}}").runner('stop');
$(cronometroStart).text('Iniciar'); $('#cronometro_' + "{{cron.id}}" + '_Start').text('Iniciar');
}) })
$(cronometroStart).click(function() { $('#cronometro_' + "{{cron.id}}" + '_Start').click(function() {
if ($(cronometroStart).text() == 'Iniciar'){ if ($('#cronometro_' + "{{cron.id}}" + '_Start').text() == 'Iniciar'){
$.get('/painel/cronometro', { tipo: cronometro, action: 'start' } ); $.get('/painel/cronometro', { tipo: 'cronometro_' + "{{cron.id}}", action: 'start' } );
$(cronometroReset).hide(); $('#cronometro_' + "{{cron.id}}" + '_Reset').hide();
$('#' + cronometro).runner('start'); $('#cronometro_' + "{{cron.id}}").runner('start');
$(cronometroStart).text('Parar'); $('#cronometro_' + "{{cron.id}}" + '_Start').text('Parar');
} else{ } else{
$.get('/painel/cronometro', { tipo: cronometro, action: 'stop' } ); $.get('/painel/cronometro', { tipo: 'cronometro_' + "{{cron.id}}", action: 'stop' } );
$(cronometroReset).show(); $('#cronometro_' + "{{cron.id}}" + '_Reset').show();
$('#' + cronometro).runner('stop'); $('#cronometro_' + "{{cron.id}}").runner('stop');
$(cronometroStart).text('Iniciar'); $('#cronometro_' + "{{cron.id}}" + '_Start').text('Iniciar');
} }
}); });
$(cronometroReset).click(function() { $('#cronometro_' + "{{cron.id}}" + '_Reset').click(function() {
$.get('/painel/cronometro', { tipo: cronometro, action: 'reset' } ); $.get('/painel/cronometro', { tipo: 'cronometro_' + "{{cron.id}}", action: 'reset' } );
$('#' + cronometro).runner('stop'); $('#cronometro_' + "{{cron.id}}").runner('stop');
$('#' + cronometro).runner('reset'); $('#cronometro_' + "{{cron.id}}").runner('reset');
}); });
{% endfor %} {% endfor %}

Loading…
Cancel
Save