|
|
|
@ -30,6 +30,10 @@ from sapl.materia.models import Autoria |
|
|
|
from django.contrib.contenttypes.models import ContentType |
|
|
|
from django.db.models.aggregates import Count |
|
|
|
|
|
|
|
import datetime |
|
|
|
import json |
|
|
|
|
|
|
|
|
|
|
|
CargoMesaCrud = CrudAux.build(CargoMesa, 'cargo_mesa') |
|
|
|
PartidoCrud = CrudAux.build(Partido, 'partidos') |
|
|
|
SessaoLegislativaCrud = CrudAux.build(SessaoLegislativa, 'sessao_legislativa') |
|
|
|
@ -208,20 +212,67 @@ class ColigacaoCrud(CrudAux): |
|
|
|
subnav_template_name = 'parlamentares/subnav_coligacao.yaml' |
|
|
|
|
|
|
|
|
|
|
|
def frente_lista_parlamentar(request): |
|
|
|
presencas = model.objects.filter( |
|
|
|
sessao_plenaria=sessao) |
|
|
|
def json_date_convert(date): |
|
|
|
''' |
|
|
|
:param date: recebe a data de uma chamada ajax no formato de |
|
|
|
string "dd/mm/yyyy" |
|
|
|
:return: |
|
|
|
''' |
|
|
|
dia, mes, ano = date.split('/') |
|
|
|
return datetime.date(day=int(dia), |
|
|
|
month=int(mes), |
|
|
|
year=int(ano)) |
|
|
|
|
|
|
|
|
|
|
|
def parlamentares_ativos(data_inicio, data_fim=None): |
|
|
|
''' |
|
|
|
:param data_inicio: define a data de inicial do período desejado |
|
|
|
:param data_fim: define a data final do período desejado |
|
|
|
:return: queryset dos parlamentares ativos naquele período |
|
|
|
''' |
|
|
|
mandatos_ativos = Mandato.objects.filter(Q( |
|
|
|
data_inicio_mandato__lte=data_inicio, |
|
|
|
data_fim_mandato__isnull=True)) |
|
|
|
if data_fim: |
|
|
|
mandatos_ativos = mandatos_ativos | Mandato.objects.filter(Q( |
|
|
|
data_inicio_mandato__lte=data_inicio, |
|
|
|
data_fim_mandato__gte=data_inicio) | Q( |
|
|
|
data_inicio_mandato__gte=data_inicio, |
|
|
|
data_inicio_mandato__lte=data_fim)) |
|
|
|
else: |
|
|
|
mandatos_ativos = mandatos_ativos | Mandato.objects.filter( |
|
|
|
data_inicio_mandato__gte=data_inicio) |
|
|
|
|
|
|
|
parlamentares_id = mandatos_ativos.values_list( |
|
|
|
'parlamentar_id', |
|
|
|
flat=True).distinct('parlamentar_id') |
|
|
|
|
|
|
|
presentes = [p.parlamentar for p in presencas] |
|
|
|
return Parlamentar.objects.filter(id__in=parlamentares_id) |
|
|
|
|
|
|
|
mandato = Mandato.objects.filter( |
|
|
|
legislatura=legislatura).order_by('parlamentar__nome_parlamentar') |
|
|
|
|
|
|
|
for m in mandato: |
|
|
|
if m.parlamentar in presentes: |
|
|
|
yield (m.parlamentar, True) |
|
|
|
else: |
|
|
|
yield (m.parlamentar, False) |
|
|
|
def frente_atualiza_lista_parlamentares(request): |
|
|
|
''' |
|
|
|
:param request: recebe os parâmetros do GET da chamada Ajax |
|
|
|
:return: retorna a lista atualizada dos parlamentares |
|
|
|
''' |
|
|
|
ativos = json.loads(request.GET['ativos']) |
|
|
|
|
|
|
|
parlamentares = Parlamentar.objects.all() |
|
|
|
|
|
|
|
if ativos: |
|
|
|
if 'data_criacao' in request.GET and request.GET['data_criacao']: |
|
|
|
data_criacao = json_date_convert(request.GET['data_criacao']) |
|
|
|
|
|
|
|
if 'data_extincao' in request.GET and request.GET['data_extincao']: |
|
|
|
data_extincao = json_date_convert(request.GET['data_extincao']) |
|
|
|
parlamentares = parlamentares_ativos(data_criacao, |
|
|
|
data_extincao) |
|
|
|
else: |
|
|
|
parlamentares = parlamentares_ativos(data_criacao) |
|
|
|
|
|
|
|
parlamentares_list = [(p.id, p.__str__()) for p in parlamentares] |
|
|
|
|
|
|
|
return JsonResponse({'parlamentares_list': parlamentares_list}) |
|
|
|
|
|
|
|
|
|
|
|
class FrenteCrud(CrudAux): |
|
|
|
|