From 52e37fe358769d975761d2399fc5ac461b684cb1 Mon Sep 17 00:00:00 2001 From: ulyssesBML Date: Fri, 17 Jan 2020 14:27:50 -0300 Subject: [PATCH] =?UTF-8?q?Adaptando=20logica=20para=20que=20na=20legislat?= =?UTF-8?q?ura=20atual=20n=C3=A3o=20apresentar=20parlamentares=20desligado?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/api/serializers.py | 18 ++++++++++----- sapl/api/views.py | 22 ++++++++++++++----- .../parlamentares/parlamentares_list.html | 3 +-- 3 files changed, 29 insertions(+), 14 deletions(-) diff --git a/sapl/api/serializers.py b/sapl/api/serializers.py index 726b1679a..139927b73 100644 --- a/sapl/api/serializers.py +++ b/sapl/api/serializers.py @@ -70,16 +70,21 @@ class ParlamentarResumeSerializer(serializers.ModelSerializer): def check_titular(self,obj): is_titular = None if Legislatura.objects.exists(): - legislatura = Legislatura.objects.get(id=self.context.get('legislatura')) - if not legislatura: + try: + legislatura = Legislatura.objects.get(id=self.context.get('legislatura')) + except ObjectDoesNotExist: legislatura = Legislatura.objects.first() + + mandato = Mandato.objects.filter( parlamentar=obj, data_inicio_mandato__gte=legislatura.data_inicio, data_fim_mandato__lte=legislatura.data_fim ).order_by('-data_inicio_mandato').first() - - is_titular = mandato.titular if mandato else False + if mandato: + is_titular = 'Sim' if mandato.titular else 'Não' + else: + is_titular = '-' return is_titular def check_partido(self,obj): @@ -91,8 +96,9 @@ class ParlamentarResumeSerializer(serializers.ModelSerializer): username = self.context['request'].user.username if Legislatura.objects.exists(): - legislatura = Legislatura.objects.get(id=self.context.get('legislatura')) - if not legislatura: + try: + legislatura = Legislatura.objects.get(id=self.context.get('legislatura')) + except ObjectDoesNotExist: legislatura = Legislatura.objects.first() try: diff --git a/sapl/api/views.py b/sapl/api/views.py index 6e7838ea1..a5ce4e3ce 100644 --- a/sapl/api/views.py +++ b/sapl/api/views.py @@ -13,6 +13,7 @@ from django_filters.filters import CharFilter from django_filters.rest_framework.backends import DjangoFilterBackend from django_filters.rest_framework.filterset import FilterSet from django_filters.utils import resolve_field +from django.utils import timezone from rest_framework import serializers as rest_serializers from rest_framework.decorators import action from rest_framework.fields import SerializerMethodField @@ -351,11 +352,20 @@ class _ParlamentarViewSet: Pega lista de parlamentares pelo id da legislatura. """ legislatura = Legislatura.objects.get(pk=kwargs['pk']) - mandatos = Mandato.objects.filter( - legislatura=legislatura, - data_inicio_mandato__gte=legislatura.data_inicio, - data_fim_mandato__lte=legislatura.data_fim - ).order_by('-data_inicio_mandato') + data_atual = timezone.now().date() + + if legislatura.data_inicio < data_atual < legislatura.data_fim: + mandatos = Mandato.objects.filter( + legislatura=legislatura, + data_inicio_mandato__gte=legislatura.data_inicio, + data_fim_mandato__gte=data_atual, + ).order_by('-data_inicio_mandato') + else: + mandatos = Mandato.objects.filter( + legislatura=legislatura, + data_inicio_mandato__gte=legislatura.data_inicio, + data_fim_mandato__lte=legislatura.data_fim + ).order_by('-data_inicio_mandato') parlamentares = Parlamentar.objects.filter(mandato__in=mandatos).distinct() serializer_class = ParlamentarResumeSerializer(parlamentares, @@ -367,7 +377,7 @@ class _ParlamentarViewSet: def search_parlamentares(self,request,*args,**kwargs): nome = request.query_params.get('nome_parlamentar','') parlamentares = Parlamentar.objects.filter(nome_parlamentar__icontains=nome) - serializer_class= ParlamentarResumeSerializer(parlamentares,many=True) + serializer_class= ParlamentarResumeSerializer(parlamentares,many=True,context={'request':request}) return Response(serializer_class.data) diff --git a/sapl/templates/parlamentares/parlamentares_list.html b/sapl/templates/parlamentares/parlamentares_list.html index dcc6e3112..d28dbc471 100644 --- a/sapl/templates/parlamentares/parlamentares_list.html +++ b/sapl/templates/parlamentares/parlamentares_list.html @@ -71,8 +71,7 @@

Não

-

Sim

-

Não

+

[[ parlamentar.titular]]