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') data_painel = models.DateField(verbose_name='Data painel')
mostrar = models.CharField(max_length=1, mostrar = models.CharField(max_length=1,
choices=PAINEL_TYPES, default='C') choices=PAINEL_TYPES, default='C')
def __str__(self):
return str(self.aberto) + ":" + self.data_painel.strftime("%d/%m/%Y")
class Cronometro(models.Model): class Cronometro(models.Model):

80
painel/views.py

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

33
templates/painel/index.html

@ -79,10 +79,16 @@
type: "GET", type: "GET",
success: function(data) { 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"); var presentes = $("#parlamentares");
presentes.children().remove(); presentes.children().remove();
@ -93,7 +99,7 @@
$('<li />', {text: parlamentar.nome + '/' + parlamentar.partido}).appendTo(presentes); $('<li />', {text: parlamentar.nome + '/' + parlamentar.partido}).appendTo(presentes);
}); });
//console.debug(presentes_ordem_dia) //console.debug(presentes_ordem_dia)
var votacao = $("#votacao") var votacao = $("#votacao")
votacao.children().remove() votacao.children().remove()
@ -103,14 +109,6 @@
votacao.append("<li>Presentes: " + data["num_presentes_ordem_dia"] + "</li>") votacao.append("<li>Presentes: " + data["num_presentes_ordem_dia"] + "</li>")
votacao.append("<li>Total votos: " + data["total_votos"] + "</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"]; var discurso_current = data["cronometro_discurso"];
if (discurso_current != discurso_previous) { if (discurso_current != discurso_previous) {
$('#cronometro_discurso').runner(discurso_current); $('#cronometro_discurso').runner(discurso_current);
@ -129,8 +127,10 @@
ordem_previous = ordem_current; ordem_previous = ordem_current;
} }
$("#counter").text(counter); $("#materia_legislativa_texto").text(data["materia_legislativa_texto"])
counter++; $("#observacao_materia").text(data["observacao_materia"])
$("#resultado_votacao").text(data["tipo_resultado"])
}, },
error: function(err) { error: function(err) {
console.error(err); console.error(err);
@ -145,13 +145,12 @@
</head> </head>
<body> <body>
<h1 id="title"></h1> <h1 id="title"></h1>
{{ pk }} <input id="json_url" type="hidden" value="{% url 'dados_painel' sessao_id %}">
<input id="json_url" type="hidden" value="{% url 'dados_painel' 2 %}">
<!-- <h2>Ajax refresh counter: <span id="counter"></span></h2> -->
<h3> <h3>
<span id="sessao_plenaria"></span><br/><br/> <span id="sessao_plenaria"></span><br/><br/>
<span id="sessao_plenaria_data"></span><br/><br/> <span id="sessao_plenaria_data"></span><br/><br/>
<span id="sessao_plenaria_hora_inicio"></span></br><br/> <span id="sessao_plenaria_hora_inicio"></span></br><br/>
<h2 id="message"></h2>
<h2><span id="relogio"></span></h2> <h2><span id="relogio"></span></h2>
<table> <table>
<tr> <tr>

Loading…
Cancel
Save