Browse Source

Adaptando logica para que na legislatura atual não apresentar parlamentares desligados

pull/3079/head
ulyssesBML 6 years ago
parent
commit
52e37fe358
  1. 18
      sapl/api/serializers.py
  2. 22
      sapl/api/views.py
  3. 3
      sapl/templates/parlamentares/parlamentares_list.html

18
sapl/api/serializers.py

@ -70,16 +70,21 @@ class ParlamentarResumeSerializer(serializers.ModelSerializer):
def check_titular(self,obj): def check_titular(self,obj):
is_titular = None is_titular = None
if Legislatura.objects.exists(): if Legislatura.objects.exists():
legislatura = Legislatura.objects.get(id=self.context.get('legislatura')) try:
if not legislatura: legislatura = Legislatura.objects.get(id=self.context.get('legislatura'))
except ObjectDoesNotExist:
legislatura = Legislatura.objects.first() legislatura = Legislatura.objects.first()
mandato = Mandato.objects.filter( mandato = Mandato.objects.filter(
parlamentar=obj, parlamentar=obj,
data_inicio_mandato__gte=legislatura.data_inicio, data_inicio_mandato__gte=legislatura.data_inicio,
data_fim_mandato__lte=legislatura.data_fim data_fim_mandato__lte=legislatura.data_fim
).order_by('-data_inicio_mandato').first() ).order_by('-data_inicio_mandato').first()
if mandato:
is_titular = mandato.titular if mandato else False is_titular = 'Sim' if mandato.titular else 'Não'
else:
is_titular = '-'
return is_titular return is_titular
def check_partido(self,obj): def check_partido(self,obj):
@ -91,8 +96,9 @@ class ParlamentarResumeSerializer(serializers.ModelSerializer):
username = self.context['request'].user.username username = self.context['request'].user.username
if Legislatura.objects.exists(): if Legislatura.objects.exists():
legislatura = Legislatura.objects.get(id=self.context.get('legislatura')) try:
if not legislatura: legislatura = Legislatura.objects.get(id=self.context.get('legislatura'))
except ObjectDoesNotExist:
legislatura = Legislatura.objects.first() legislatura = Legislatura.objects.first()
try: try:

22
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.backends import DjangoFilterBackend
from django_filters.rest_framework.filterset import FilterSet from django_filters.rest_framework.filterset import FilterSet
from django_filters.utils import resolve_field from django_filters.utils import resolve_field
from django.utils import timezone
from rest_framework import serializers as rest_serializers from rest_framework import serializers as rest_serializers
from rest_framework.decorators import action from rest_framework.decorators import action
from rest_framework.fields import SerializerMethodField from rest_framework.fields import SerializerMethodField
@ -351,11 +352,20 @@ class _ParlamentarViewSet:
Pega lista de parlamentares pelo id da legislatura. Pega lista de parlamentares pelo id da legislatura.
""" """
legislatura = Legislatura.objects.get(pk=kwargs['pk']) legislatura = Legislatura.objects.get(pk=kwargs['pk'])
mandatos = Mandato.objects.filter( data_atual = timezone.now().date()
legislatura=legislatura,
data_inicio_mandato__gte=legislatura.data_inicio, if legislatura.data_inicio < data_atual < legislatura.data_fim:
data_fim_mandato__lte=legislatura.data_fim mandatos = Mandato.objects.filter(
).order_by('-data_inicio_mandato') 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() parlamentares = Parlamentar.objects.filter(mandato__in=mandatos).distinct()
serializer_class = ParlamentarResumeSerializer(parlamentares, serializer_class = ParlamentarResumeSerializer(parlamentares,
@ -367,7 +377,7 @@ class _ParlamentarViewSet:
def search_parlamentares(self,request,*args,**kwargs): def search_parlamentares(self,request,*args,**kwargs):
nome = request.query_params.get('nome_parlamentar','') nome = request.query_params.get('nome_parlamentar','')
parlamentares = Parlamentar.objects.filter(nome_parlamentar__icontains=nome) 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) return Response(serializer_class.data)

3
sapl/templates/parlamentares/parlamentares_list.html

@ -71,8 +71,7 @@
<p v-else>Não</p> <p v-else>Não</p>
</th> </th>
<th v-if="!is_pesquisa"> <th v-if="!is_pesquisa">
<p v-if='[[ parlamentar.titular]]'>Sim</p> <p>[[ parlamentar.titular]]</p>
<p v-else>Não</p>
</th> </th>
</tr> </tr>
</tbody> </tbody>

Loading…
Cancel
Save