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)
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)
@ -331,9 +334,21 @@ def painel_votacao_view(request):
return render(request, 'painel/votacao.html')
CRONOMETRO_STATUS = {
'start': 'I',
'reset': 'R',
'stop': 'S',
'increment': 'C'
}
@user_passes_test(check_permission)
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({})

15
sapl/sessao/views.py

@ -875,12 +875,17 @@ class PainelView(PermissionRequiredForAppCrudMixin, TemplateView):
if request.user.is_anonymous():
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'
request.session['aparte'] = 'stop'
request.session['ordem'] = 'stop'
request.session['consideracoes'] = 'stop'
cronometros = Cronometro.objects.all().order_by('ordenacao')
for cronometro in cronometros:
cronometro.status = 'S' # Stop
cronometro.save()
k = 'cronometro_' + str(cronometro.id)
request.session[k] = 'stop'
return TemplateView.get(self, request, *args, **kwargs)

52
sapl/templates/sessao/painel.html

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

Loading…
Cancel
Save