Sistema de Apoio ao Processo Legislativo
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
3.3 KiB

from django.shortcuts import render
from django.http import HttpResponse
from django.http import JsonResponse
from django.core import serializers
import json
from parlamentares.models import Parlamentar
from sessao.models import SessaoPlenaria, SessaoPlenariaPresenca, PresencaOrdemDia, RegistroVotacao, VotoParlamentar, OrdemDia, PresencaOrdemDia
# REST web services
def json_presenca(request):
presencas = PresencaOrdemDia.objects.filter(sessao_plenaria_id = 50)
parlamentares = []
for p in presencas:
parlamentares.append(p.parlamentar)
#parlamentares = serializers.serialize('json', Parlamentar.objects.all())
parlamentares = serializers.serialize('json', parlamentares)
return HttpResponse(parlamentares, content_type='application/json')
#return JsonResponse(data) # work with python dict
def json_votacao(request):
#TODO: se tentar usar objects.get(ordem_id = 104 ocorre a msg: 'RegistroVotacao' object does not support indexing
#TODO; tratar o caso de vir vazio
votacao = RegistroVotacao.objects.filter(ordem_id = 104)[0]
# Magic! http://stackoverflow.com/questions/15507171/django-filter-query-foreign-key
voto_parlamentar = VotoParlamentar.objects.filter(votacao__ordem__id = 140)
ordem_dia = OrdemDia.objects.get(id = 104)
sessaoplenaria_id = ordem_dia.sessao_plenaria_id
sessao_plenaria = SessaoPlenaria.objects.get(id = sessaoplenaria_id)
presenca_ordem_dia = PresencaOrdemDia.objects.filter(sessao_plenaria_id = sessaoplenaria_id)
presentes_ordem_dia = []
for p in presenca_ordem_dia:
presentes_ordem_dia.append(p.parlamentar.nome_parlamentar)
presentes_ordem_dia.sort()
total_votos = votacao.numero_votos_sim + votacao.numero_votos_nao + votacao.numero_abstencoes
sessao_plenaria_presenca = SessaoPlenariaPresenca.objects.filter(id = sessaoplenaria_id)
presentes_sessao_plenaria = []
for p in sessao_plenaria_presenca:
presentes_sessao_plenaria.append(p.parlamentar.nome_parlamentar)
votacao_json = {"sessao_plenaria": str(sessao_plenaria),
"sessao_plenaria_data": sessao_plenaria.data_inicio,
"sessao_plenaria_hora_inicio": sessao_plenaria.hora_inicio,
"materia_legislativa_texto": ordem_dia.materia.ementa,
"observacao_materia": ordem_dia.materia.observacao,
"tipo_votacao": ordem_dia.tipo_votacao, # TODO: verbose name
"numero_votos_sim": votacao.numero_votos_sim,
"numero_votos_nao": votacao.numero_votos_nao,
"numero_abstencoes": votacao.numero_abstencoes,
"total_votos": total_votos,
"tipo_resultado": votacao.tipo_resultado_votacao.nome.upper(),
"presentes_ordem_dia": presentes_ordem_dia,
"presentes_sessao_plenaria": presentes_sessao_plenaria,
}
return JsonResponse(votacao_json)
# UI views
def painel_view(request):
context = {'head_title': 'Painel Plenário', 'title': '3a. Sessao Ordinária do Município XYZ'}
return render(request, 'painel/index.html', {'context': context})
def painel_parlamentares_view(request):
return render(request, 'painel/parlamentares.html')
def painel_votacao_view(request):
return render(request, 'painel/votacao.html')