Repository: interlegis/sapl

Issue:
Mostrar no Painel somente Parlamentares presentes Ativos
Atualmente, o a função `get_presentes` em `painel/views.py` retorna todos os Parlamentares presentes. Entretanto, com mudanças recentes, parlamentares inativos podem estar presentes.

Isso acarreta o seguinte problema em votações nominais: Como um Parlamentar inativo não pode votar, o seu nome fica no Painel e seu voto fica como `null`

![image](https://user-images.githubusercontent.com/14843060/32283617-080a33ec-bf0c-11e7-834d-ca39ef8cbd07.png)

![image](https://user-images.githubusercontent.com/14843060/32283659-28e2791c-bf0c-11e7-8306-8617611f86ab.png)

![image](https://user-images.githubusercontent.com/14843060/32283681-3223a0aa-bf0c-11e7-8b15-463c4f0d9149.png)



Discussion:

Resolving patch:
diff --git a/sapl/painel/views.py b/sapl/painel/views.py
--- a/sapl/painel/views.py
+++ b/sapl/painel/views.py
@@ -8,13 +8,14 @@
 from django.http import HttpResponse, JsonResponse
 from django.http.response import Http404, HttpResponseRedirect
 from django.shortcuts import render
+from django.utils import timezone
 from django.utils.translation import ugettext_lazy as _
 
 from sapl.base.models import AppConfig as ConfiguracoesAplicacao
 from sapl.base.models import CasaLegislativa
 from sapl.crud.base import Crud
 from sapl.painel.apps import AppConfig
-from sapl.parlamentares.models import Votante
+from sapl.parlamentares.models import Legislatura, Parlamentar, Votante
 from sapl.sessao.models import (ExpedienteMateria, OrdemDia, PresencaOrdemDia,
                                 RegistroVotacao, SessaoPlenaria,
                                 SessaoPlenariaPresenca, VotoParlamentar)
@@ -296,20 +297,27 @@ def get_presentes(pk, response, materia):
 
     presentes_list = []
     for p in presentes:
-        filiacao = filiacao_data(p.parlamentar, data_sessao, data_sessao)
-
-        if not filiacao:
-            partido = 'Sem Registro'
-        else:
-            partido = filiacao
-
-        presentes_list.append(
-            {'id': p.id,
-             'parlamentar_id': p.parlamentar.id,
-             'nome': p.parlamentar.nome_parlamentar,
-             'partido': partido,
-             'voto': ''
-             })
+        now_year = timezone.now().year
+        # Recupera a legislatura vigente
+        legislatura = Legislatura.objects.get(data_inicio__year__lte = now_year,
+                                                 data_fim__year__gte = now_year)
+        # Recupera os mandatos daquele parlamentar
+        mandatos = p.parlamentar.mandato_set.filter(legislatura=legislatura)
+
+        if p.parlamentar.ativo and mandatos:
+            filiacao = filiacao_data(p.parlamentar, data_sessao, data_sessao)
+            if not filiacao:
+                partido = 'Sem Registro'
+            else:
+                partido = filiacao
+
+            presentes_list.append(
+                {'id': p.id,
+                 'parlamentar_id': p.parlamentar.id,
+                 'nome': p.parlamentar.nome_parlamentar,
+                 'partido': partido,
+                 'voto': ''
+                 })
 
     if materia:
         if materia.tipo_votacao == 1:


Test patch: