Browse Source

Finaliza as melhorias em Frente

pull/1267/head
Eduardo Calil 9 years ago
parent
commit
7a53be0fbb
  1. 6
      sapl/parlamentares/urls.py
  2. 45
      sapl/parlamentares/views.py
  3. 30
      sapl/templates/parlamentares/frente_form.html

6
sapl/parlamentares/urls.py

@ -17,6 +17,7 @@ from sapl.parlamentares.views import (CargoMesaCrud, ColigacaoCrud,
altera_field_mesa_public_view,
frente_atualiza_lista_parlamentares,
insere_parlamentar_composicao,
parlamentares_frente_selected,
remove_parlamentar_composicao)
from .apps import AppConfig
@ -39,11 +40,16 @@ urlpatterns = [
url(r'^sistema/coligacao/',
include(ColigacaoCrud.get_urls() +
ComposicaoColigacaoCrud.get_urls())),
url(r'^sistema/frente/',
include(FrenteCrud.get_urls())),
url(r'^sistema/frente/atualiza-lista-parlamentares',
frente_atualiza_lista_parlamentares,
name='atualiza_lista_parlamentares'),
url(r'^sistema/frente/parlamentares-frente-selected',
parlamentares_frente_selected,
name='parlamentares_frente_selected'),
url(r'^sistema/parlamentar/legislatura/',
include(LegislaturaCrud.get_urls())),
url(r'^sistema/parlamentar/tipo-dependente/',

45
sapl/parlamentares/views.py

@ -232,13 +232,13 @@ def parlamentares_ativos(data_inicio, data_fim=None):
'''
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_fim_mandato__isnull=True) | Q(
data_inicio_mandato__lte=data_inicio,
data_fim_mandato__gte=data_inicio) | Q(
data_fim_mandato__gte=data_inicio))
if data_fim:
mandatos_ativos = mandatos_ativos | Mandato.objects.filter(
data_inicio_mandato__gte=data_inicio,
data_inicio_mandato__lte=data_fim))
data_inicio_mandato__lte=data_fim)
else:
mandatos_ativos = mandatos_ativos | Mandato.objects.filter(
data_inicio_mandato__gte=data_inicio)
@ -275,13 +275,44 @@ def frente_atualiza_lista_parlamentares(request):
return JsonResponse({'parlamentares_list': parlamentares_list})
def parlamentares_frente_selected(request):
'''
:return: Lista com o id dos parlamentares em uma frente
'''
try:
frente = Frente.objects.get(id=int(request.GET['frente_id']))
except ObjectDoesNotExist:
lista_parlamentar_id = []
else:
lista_parlamentar_id = frente.parlamentares.all().values_list(
'id', flat=True)
return JsonResponse({'id_list': list(lista_parlamentar_id)})
class FrenteCrud(CrudAux):
model = Frente
help_path = 'tabelas_auxiliares#tipo_situa_militar'
list_field_names = ['nome', 'data_criacao', 'parlamentares']
# class CreateView(CrudAux.ListView):
# pass
class CreateView(CrudAux.CreateView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
# Update view é um indicador para o javascript
# de que esta não é uma tela de edição de frente
context['update_view'] = 0
return context
class UpdateView(CrudAux.UpdateView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
# Update view é um indicador para o javascript
# de que esta não é uma tela de edição de frente
context['update_view'] = 1
return context
class MandatoCrud(MasterDetailCrud):

30
sapl/templates/parlamentares/frente_form.html

@ -53,21 +53,37 @@
{% block extra_js %}
<script language="JavaScript">
function selecionar_parlamentares_frente() {
// Seleciona automaticamente todos os parlamentares
// que já estão presentes naquela frente
var update_view = {{ update_view }}
if (update_view == 1) {
var frente_id = {{ object.id }}
$.get("/sistema/frente/parlamentares-frente-selected",
{frente_id: frente_id},
function (data) {
id_list = data['id_list'];
$("div.controls select").val(id_list);
});
}
}
function atualiza_parlamentares() {
// Coloca para selecao os parlamentares no intervalo informado
// e somente os ativos, caso seja solicitado
// var ativos;
var data_criacao = $("#id_data_criacao").val();
var data_extincao = $("#id_data_extincao").val();
var ativos = $('#id_selecionar_ativos').prop('checked');
if (data_criacao === '') {
$('#div_parlamentares').hide();
}
else{
$('#div_parlamentares').show();
var ativos = $('#id_selecionar_ativos').prop('checked');
// Limpa a listagem para atualizar
$("#id_parlamentares option").remove();
$("#id_parlamentares").find("option").remove();
$.get("/sistema/frente/atualiza-lista-parlamentares",
{data_criacao: data_criacao,
@ -81,8 +97,6 @@
}
lista_parlamentares = data['parlamentares_list'];
console.log(lista_parlamentares.length)
// Atualiza a listagem de parlamentares
for (i = 0; i < lista_parlamentares.length; i++) {
$('#id_parlamentares').append(
@ -91,15 +105,15 @@
}
}
);
).done(function(){selecionar_parlamentares_frente();});
}
}
// Fazer a listagem ficar escondida caso não haja data de criacao
// Caso contrario, lista os parlamentares para aquele intervalo
$(document).ready(atualiza_parlamentares());
$(document).ready(function(){
atualiza_parlamentares();
});
$("#id_data_criacao").change(function () {
atualiza_parlamentares();

Loading…
Cancel
Save