From 8e66120d9a5c6ae1e18022d729720cbddba111d6 Mon Sep 17 00:00:00 2001 From: ulyssesBML Date: Mon, 18 Nov 2019 13:04:29 -0300 Subject: [PATCH] Adaptando pagina de parlamentar para vuejs Fix #3030 --- sapl/parlamentares/urls.py | 10 ++- sapl/parlamentares/views.py | 46 ++++++++++- .../parlamentares/parlamentares_list.html | 82 +++++++++++++++---- 3 files changed, 116 insertions(+), 22 deletions(-) diff --git a/sapl/parlamentares/urls.py b/sapl/parlamentares/urls.py index 86c84859d..2308a5129 100644 --- a/sapl/parlamentares/urls.py +++ b/sapl/parlamentares/urls.py @@ -20,7 +20,8 @@ from sapl.parlamentares.views import (CargoMesaCrud, ColigacaoCrud, remove_parlamentar_composicao, parlamentares_filiados, BlocoCrud, PesquisarParlamentarView, VincularParlamentarView, - get_sessoes_legislatura, get_all_legislaturas_json) + get_sessoes_legislatura, get_all_legislaturas_json, + get_parlamentare_by_legislaturas_json, search_parlamentare_json) from .apps import AppConfig @@ -97,4 +98,11 @@ urlpatterns = [ url(r'^parlamentar/get-all-legislaturas_json/$', get_all_legislaturas_json, name='get-all-legislaturas_json'), + + url(r'^parlamentar/get_parlamentare_by_legislaturas_json/(?P\d+)/$', + get_parlamentare_by_legislaturas_json, name='get_parlamentare_by_legislaturas_json/'), + + url(r'^parlamentar/search_parlamentare_json/$', + search_parlamentare_json, name='search_parlamentare_json'), ] + diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py index e0756c1b0..e1c912c23 100644 --- a/sapl/parlamentares/views.py +++ b/sapl/parlamentares/views.py @@ -1,6 +1,7 @@ from datetime import datetime import json import logging +import os from django.contrib import messages from django.contrib.auth.mixins import PermissionRequiredMixin @@ -32,7 +33,7 @@ from sapl.crud.base import (RP_CHANGE, RP_DETAIL, RP_LIST, Crud, CrudAux, MasterDetailCrud, make_pagination) from sapl.materia.models import Autoria, Proposicao, Relatoria from sapl.parlamentares.apps import AppConfig -from sapl.utils import (parlamentares_ativos, show_results_filter_set) +from sapl.utils import (parlamentares_ativos, show_results_filter_set,filiacao_data) from .forms import (FiliacaoForm, FrenteForm, LegislaturaForm, MandatoForm, ParlamentarCreateForm, ParlamentarForm, VotanteForm, @@ -1207,5 +1208,44 @@ def get_sessoes_legislatura(request): return JsonResponse(json_response) def get_all_legislaturas_json(request): - all_legislaturas = [(str(e),e.id) for e in Legislatura.objects.all()] - return JsonResponse({'legislaturas':all_legislaturas}) \ No newline at end of file + all_legislaturas = [(e.id,str(e)) for e in Legislatura.objects.all()] + return JsonResponse({'legislaturas':all_legislaturas}) + +def get_parlamentare_by_legislaturas_json(request,id_legislatura): + id_parlamentares = Mandato.objects.filter(legislatura__id=id_legislatura).values_list('parlamentar__id','titular','data_inicio_mandato','data_fim_mandato').distinct() + parlamentares = Parlamentar.objects.filter(id__in=[i[0] for i in id_parlamentares]) + + my_json = [] + + for i, p in enumerate(parlamentares): + p_dict = {} + p_dict['parlamentar_id'] = p.id + p_dict['fotografia'] = p.fotografia.url if (p.fotografia and os.path.exists(p.fotografia.path)) else "" + p_dict['nome_parlamentar'] = p.nome_parlamentar + p_dict['partido'] = filiacao_data(p,id_parlamentares[i][2],id_parlamentares[i][3]) + p_dict['ativo'] = p.ativo + p_dict['titular'] = id_parlamentares[i][1] + my_json.append(p_dict) + + return JsonResponse({'parlamentares':my_json}) + +def search_parlamentare_json(request): + my_json = [] + + if request.method == 'GET': + pass + elif request.method == 'POST': + nome = request.POST.get("nome","") + parlamentares = Parlamentar.objects.filter(nome_parlamentar__icontains=nome) + for p in parlamentares: + p_dict = {} + p_dict['parlamentar_id'] = p.id + p_dict['fotografia'] = p.fotografia.url if (p.fotografia and os.path.exists(p.fotografia.path)) else "" + p_dict['nome_parlamentar'] = p.nome_parlamentar + p_dict['partido'] = p.filiacao_atual + p_dict['ativo'] = p.ativo + p_dict['titular'] = None + my_json.append(p_dict) + + + return JsonResponse({'parlamentares': my_json}) \ No newline at end of file diff --git a/sapl/templates/parlamentares/parlamentares_list.html b/sapl/templates/parlamentares/parlamentares_list.html index 85183cdf0..807df56c1 100644 --- a/sapl/templates/parlamentares/parlamentares_list.html +++ b/sapl/templates/parlamentares/parlamentares_list.html @@ -7,39 +7,83 @@ {% block base_content %} +
-
- Pesquisar Parlamentar +
+ Listar Parlamentar + Pesquisar Parlamentar {% if not request.user.is_anonymous %} Vincular Parlamentar {% endif %} {% block more_buttons %}{% endblock more_buttons %}
+ +
+

Pesquisa Parlamentar

+
+
+ Pesquisa +
+ +
+
+ +
Selecione o Período
- -
- + -
- -

- +
+ +
+
Total de Parlamentares: [[parlamentares.length]]
+ + + + {% for name in headers %} + {% if forloop.first %} + + {% endfor %} + + + + + + + + + + + + +
+ {% endblock base_content %}