Browse Source

Fix #3117 - Filtra as coligações no cadastro de Mandato (#3118)

* Criar novo endpoint

* Implementa retorno de coligações por legislatura

* Filtra coligacões por legislatura

* Refatoração

* Update sapl/parlamentares/views.py

Co-Authored-By: Edward <9326037+edwardoliveira@users.noreply.github.com>

* Update sapl/templates/parlamentares/mandato_form.html

Co-Authored-By: Edward <9326037+edwardoliveira@users.noreply.github.com>

* Refatoração

Co-authored-by: Edward <9326037+edwardoliveira@users.noreply.github.com>
pull/3126/head
João Rodrigues 5 years ago
committed by GitHub
parent
commit
01b9b6e042
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      sapl/parlamentares/urls.py
  2. 13
      sapl/parlamentares/views.py
  3. 41
      sapl/templates/parlamentares/mandato_form.html

4
sapl/parlamentares/urls.py

@ -1,6 +1,7 @@
from django.conf.urls import include, url
from sapl.parlamentares.views import (CargoMesaCrud, ColigacaoCrud,
coligacao_legislatura,
ComposicaoColigacaoCrud, DependenteCrud,
FiliacaoCrud, FrenteCrud, FrenteList,
LegislaturaCrud, MandatoCrud,
@ -45,6 +46,9 @@ urlpatterns = [
url(r'^parlamentar/vincular-parlamentar/$',
VincularParlamentarView.as_view(), name='vincular_parlamentar'),
url(r'^parlamentar/coligacao-legislatura/',
coligacao_legislatura, name="coligacao_legislatura"),
url(r'^sistema/coligacao/',
include(ColigacaoCrud.get_urls() +
ComposicaoColigacaoCrud.get_urls())),

13
sapl/parlamentares/views.py

@ -312,6 +312,17 @@ class ColigacaoCrud(CrudAux):
return context
def coligacao_legislatura(request):
try:
coligacoes = Coligacao.objects.filter(legislatura=request.GET['legislatura']).order_by('nome')
except:
coligacoes = []
lista_coligacoes = [(coligacao.id, str(coligacao)) for coligacao in coligacoes]
return JsonResponse({'coligacoes': lista_coligacoes})
def json_date_convert(date):
"""
:param date: recebe a data de uma chamada ajax no formato de
@ -1124,4 +1135,4 @@ def get_sessoes_legislatura(request):
for s in SessaoLegislativa.objects.filter(legislatura_id=legislatura_id):
json_response['sessoes_legislativas'].append( (s.id, str(s)) )
return JsonResponse(json_response)
return JsonResponse(json_response)

41
sapl/templates/parlamentares/mandato_form.html

@ -0,0 +1,41 @@
{% extends "crud/form.html" %}
{% load i18n %}
{% load crispy_forms_tags %}
{% load common_tags %}
{% block extra_js %}
<script language="Javascript">
function coligacoes_disponiveis(){
var id_legislatura = $("#id_legislatura").val();
var id_coligacao = $("#id_coligacao").val();
$("#id_coligacao option").remove();
if (id_legislatura){
$.get(
"{% url 'sapl.parlamentares:coligacao_legislatura' %}",
{legislatura: id_legislatura},
function(data){
lista_coligacoes = data['coligacoes'];
$('#id_coligacao').append('<option value=""</option>');
for (i=0; i<lista_coligacoes.length; i++){
$('#id_coligacao').append('<option value="' + lista_coligacoes[i][0] + '">' + lista_coligacoes[i][1] + '</option>');
}
$('#id_coligacao').val(id_coligacao);
}
);
} else {
$("#id_coligacao option").remove();
}
}
$(document).ready(
function(){
$("#id_legislatura").ready(coligacoes_disponiveis);
$("#id_legislatura").change(coligacoes_disponiveis);
}
);
</script>
{% endblock %}
Loading…
Cancel
Save