Browse Source

Painel tweaks

pull/11/merge
Edward Ribeiro 9 years ago
parent
commit
21d8c363c2
  1. 19
      compilacao/migrations/0030_auto_20151203_1114.py
  2. 2
      painel/models.py
  3. 80
      painel/views.py
  4. 33
      templates/painel/index.html

19
compilacao/migrations/0030_auto_20151203_1114.py

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('compilacao', '0029_auto_20151201_1611'),
]
operations = [
migrations.AlterField(
model_name='tipodispositivo',
name='relacoes_diretas_pai_filho',
field=models.ManyToManyField(to='compilacao.TipoDispositivo', related_name='+', through='compilacao.TipoDispositivoRelationship'),
),
]

2
painel/models.py

@ -13,6 +13,8 @@ class Painel(models.Model):
data_painel = models.DateField(verbose_name='Data painel')
mostrar = models.CharField(max_length=1,
choices=PAINEL_TYPES, default='C')
def __str__(self):
return str(self.aberto) + ":" + self.data_painel.strftime("%d/%m/%Y")
class Cronometro(models.Model):

80
painel/views.py

@ -1,5 +1,6 @@
from datetime import date
import datetime
from django.core.exceptions import ObjectDoesNotExist
from django.http import HttpResponse, JsonResponse
from django.shortcuts import render
@ -14,8 +15,6 @@ from sessao.models import (OrdemDia, PresencaOrdemDia, RegistroVotacao,
from .models import Cronometro
# VotoParlamentar)
cronometro_painel_crud = build_crud(
Cronometro, '', [
@ -47,8 +46,8 @@ def controlador_painel(request):
def painel_view(request, pk):
context = {'head_title': 'Painel Plenário', 'sessao_id': pk}
return render(request, 'painel/index.html', {'context': context})
context = {'head_title': 'Painel Plenário', 'sessao_id': pk}
return render(request, 'painel/index.html', context)
def painel_mensagem_view(request):
@ -81,6 +80,30 @@ def get_dados_painel(request, pk):
sessao_plenaria_id = pk
sessao_plenaria = SessaoPlenaria.objects.get(id=sessao_plenaria_id)
status_painel = "FECHADO"
try:
painel = Painel.objects.get(data_painel=datetime.date.today())
if painel.aberto:
status_painel = "ABERTO"
else:
response = {"sessao_plenaria": str(sessao_plenaria),
"sessao_plenaria_data": sessao_plenaria.data_inicio.strftime("%d/%m/%Y"),
"sessao_plenaria_hora_inicio": sessao_plenaria.hora_inicio,
"status_painel": status_painel,
}
return JsonResponse(response)
except ObjectDoesNotExist:
response = {"sessao_plenaria": str(sessao_plenaria),
"sessao_plenaria_data": sessao_plenaria.data_inicio.strftime("%d/%m/%Y"),
"sessao_plenaria_hora_inicio": sessao_plenaria.hora_inicio,
"status_painel": status_painel,
}
return JsonResponse(response)
# # Pra recuperar o partido do parlamentar
# # tem que fazer OUTRA query, deve ter uma
# # forma de fazer isso na base do join de data models.
@ -158,27 +181,28 @@ def get_dados_painel(request, pk):
cronometro_aparte = get_cronometro_status(request, 'aparte')
cronometro_ordem = get_cronometro_status(request, 'ordem')
votacao_json = {"sessao_plenaria": str(sessao_plenaria),
"sessao_plenaria_data": sessao_plenaria.data_inicio,
"sessao_plenaria_hora_inicio": sessao_plenaria.hora_inicio,
"materia_titulo": materia_titulo,
"materia_legislativa_texto": materia_legislativa_texto,
"materia_observacao": materia_observacao,
"tipo_votacao": tipo_votacao,
"presentes_ordem_dia": presentes_ordem_dia,
"num_presentes_ordem_dia": num_presentes_ordem_dia,
"presentes_sessao_plenaria": presentes_sessao_plenaria,
"num_presentes_sessao_plenaria": num_presentes_sessao_plen,
"votacao_aberta": votacao_aberta,
"numero_votos_sim": numero_votos_sim,
"numero_votos_nao": numero_votos_nao,
"numero_abstencoes": numero_abstencoes,
"total_votos": total_votos,
"tipo_resultado": tipo_resultado,
"votos": votos,
"cronometro_aparte": cronometro_aparte,
"cronometro_discurso": cronometro_discurso,
"cronometro_ordem": cronometro_ordem,
}
return JsonResponse(votacao_json)
response = {"sessao_plenaria": str(sessao_plenaria),
"sessao_plenaria_data": sessao_plenaria.data_inicio.strftime("%d/%m/%Y"),
"sessao_plenaria_hora_inicio": sessao_plenaria.hora_inicio,
"materia_titulo": materia_titulo,
"materia_legislativa_texto": materia_legislativa_texto,
"materia_observacao": materia_observacao,
"tipo_votacao": tipo_votacao,
"presentes_ordem_dia": presentes_ordem_dia,
"num_presentes_ordem_dia": num_presentes_ordem_dia,
"presentes_sessao_plenaria": presentes_sessao_plenaria,
"num_presentes_sessao_plenaria": num_presentes_sessao_plen,
"votacao_aberta": votacao_aberta,
"numero_votos_sim": numero_votos_sim,
"numero_votos_nao": numero_votos_nao,
"numero_abstencoes": numero_abstencoes,
"total_votos": total_votos,
"tipo_resultado": tipo_resultado,
"votos": votos,
"cronometro_aparte": cronometro_aparte,
"cronometro_discurso": cronometro_discurso,
"cronometro_ordem": cronometro_ordem,
"status_painel": status_painel,
}
return JsonResponse(response)

33
templates/painel/index.html

@ -79,10 +79,16 @@
type: "GET",
success: function(data) {
//TODO: json spitted out is very complex, have to simplify/flat it
//TODO: probably building it by hand on REST side
console.debug(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();
@ -93,7 +99,7 @@
$('<li />', {text: parlamentar.nome + '/' + parlamentar.partido}).appendTo(presentes);
});
//console.debug(presentes_ordem_dia)
//console.debug(presentes_ordem_dia)
var votacao = $("#votacao")
votacao.children().remove()
@ -103,14 +109,6 @@
votacao.append("<li>Presentes: " + data["num_presentes_ordem_dia"] + "</li>")
votacao.append("<li>Total votos: " + data["total_votos"] + "</li>")
$("#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"])
$("#materia_legislativa_texto").text(data["materia_legislativa_texto"])
$("#observacao_materia").text(data["observacao_materia"])
$("#resultado_votacao").text(data["tipo_resultado"])
var discurso_current = data["cronometro_discurso"];
if (discurso_current != discurso_previous) {
$('#cronometro_discurso').runner(discurso_current);
@ -129,8 +127,10 @@
ordem_previous = ordem_current;
}
$("#counter").text(counter);
counter++;
$("#materia_legislativa_texto").text(data["materia_legislativa_texto"])
$("#observacao_materia").text(data["observacao_materia"])
$("#resultado_votacao").text(data["tipo_resultado"])
},
error: function(err) {
console.error(err);
@ -145,13 +145,12 @@
</head>
<body>
<h1 id="title"></h1>
{{ pk }}
<input id="json_url" type="hidden" value="{% url 'dados_painel' 2 %}">
<!-- <h2>Ajax refresh counter: <span id="counter"></span></h2> -->
<input id="json_url" type="hidden" value="{% url '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>

Loading…
Cancel
Save