From 7a53be0fbbb4509d2411efde87142f45ea265678 Mon Sep 17 00:00:00 2001 From: Eduardo Calil Date: Tue, 11 Jul 2017 12:24:43 -0300 Subject: [PATCH] Finaliza as melhorias em Frente --- sapl/parlamentares/urls.py | 6 +++ sapl/parlamentares/views.py | 45 ++++++++++++++++--- sapl/templates/parlamentares/frente_form.html | 30 +++++++++---- 3 files changed, 66 insertions(+), 15 deletions(-) diff --git a/sapl/parlamentares/urls.py b/sapl/parlamentares/urls.py index 7e381393a..7b0f8f031 100644 --- a/sapl/parlamentares/urls.py +++ b/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/', diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py index 018c0c6b3..309c8b3cd 100644 --- a/sapl/parlamentares/views.py +++ b/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)) + data_fim_mandato__isnull=True) | Q( + data_inicio_mandato__lte=data_inicio, + data_fim_mandato__gte=data_inicio)) if data_fim: - mandatos_ativos = mandatos_ativos | Mandato.objects.filter(Q( - data_inicio_mandato__lte=data_inicio, - data_fim_mandato__gte=data_inicio) | Q( + 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): diff --git a/sapl/templates/parlamentares/frente_form.html b/sapl/templates/parlamentares/frente_form.html index 4abbe0ea0..5d9ae8fc1 100644 --- a/sapl/templates/parlamentares/frente_form.html +++ b/sapl/templates/parlamentares/frente_form.html @@ -53,21 +53,37 @@ {% block extra_js %}