Repository: interlegis/sapl

Issue:
Incluir Justificativa de ausências no extrato da sessão
No Extrato da Sessão seria interessante incluir as ausências cadastradas em Sessão/Abertura/Ausência:
http://sapl.camarabento.rs.gov.br/sessao/441/justificativaausencia

## Comportamento Esperado
O objetivo do extrato da sessão é funcionar como uma ata, ou mesmo se tornar a ata e para tanto as justificativas de ausências cadastradas são fundamentais que constem no extrato

![image](https://user-images.githubusercontent.com/13314947/48367188-11547d00-e697-11e8-864c-1f4b22789a80.png)


Poderia ser logo abaixo da lista de presença na sessão
Ausências Justificadas: Vereador..., ausente em ....., tipo de justificativa......, data....

![image](https://user-images.githubusercontent.com/13314947/48367226-2f21e200-e697-11e8-9e24-472b81c835d1.png)



Discussion:
@tapumar Por que abriu de novo essa issue? :) É isso mesmo?
para mim ainda não está disponível
http://sapl.camarabento.rs.gov.br/sessao/441/justificativaausencia

http://sapl.camarabento.rs.gov.br/sessao/441/resumo_ata
O Extrato resolveu parte dessa issue
https://github.com/interlegis/sapl/issues/1733


Resolving patch:
diff --git a/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py b/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
--- a/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
+++ b/sapl/relatorios/templates/pdf_sessao_plenaria_gerar.py
@@ -144,7 +144,7 @@ def mesa(lst_mesa):
     return tmp
 
 
-def presenca(lst_presenca_sessao):
+def presenca(lst_presenca_sessao,lst_ausencia_sessao):
     """
 
     """
@@ -157,6 +157,19 @@ def presenca(lst_presenca_sessao):
         tmp += '\t\t<para style="P2" spaceAfter="5">' + \
             str(presenca['nom_parlamentar']) + '/' + \
             str(presenca['sgl_partido']) + '</para>\n'
+
+    tmp += '\t\t<para style="P1">Justificativas de Ausência da Sessão</para>\n'
+    tmp += '\t\t<para style="P2">\n'
+    tmp += '\t\t\t<font color="white"> <br/></font>\n'
+    tmp += '\t\t</para>\n'
+    tmp += '<blockTable style="repeater" repeatRows="1">\n'
+    tmp += '<tr><td >Parlamentar</td><td>Justificativa</td><td>Ausente em</td></tr>\n'
+    for ausencia in lst_ausencia_sessao:
+        tmp += '<tr><td>' + \
+            str(ausencia['parlamentar']) + '</td><td> ' + \
+            str(ausencia['justificativa']) + '</td><td>' + \
+            str(ausencia['tipo']) + '</td></tr>\n'
+    tmp += '</blockTable>'
     return tmp
 
 
@@ -305,7 +318,7 @@ def ocorrencias(lst_ocorrencias):
     return tmp
 
 
-def principal(cabecalho_dic, rodape_dic, imagem, sessao, inf_basicas_dic, lst_mesa, lst_presenca_sessao, lst_expedientes, lst_expediente_materia, lst_oradores_expediente, lst_presenca_ordem_dia, lst_votacao, lst_oradores, lst_ocorrencias):
+def principal(cabecalho_dic, rodape_dic, imagem, sessao, inf_basicas_dic, lst_mesa, lst_presenca_sessao,lst_ausencia_sessao, lst_expedientes, lst_expediente_materia, lst_oradores_expediente, lst_presenca_ordem_dia, lst_votacao, lst_oradores, lst_ocorrencias):
     """
     """
     arquivoPdf = str(int(time.time() * 100)) + ".pdf"
@@ -331,7 +344,7 @@ def principal(cabecalho_dic, rodape_dic, imagem, sessao, inf_basicas_dic, lst_me
         'cont_mult': '',
         'exp': expedientes(lst_expedientes),
         'id_basica': inf_basicas(inf_basicas_dic),
-        'lista_p': presenca(lst_presenca_sessao),
+        'lista_p': presenca(lst_presenca_sessao,lst_ausencia_sessao),
         'lista_p_o_d': presenca_ordem_dia(lst_presenca_ordem_dia),
         'mat_exp': expediente_materia(lst_expediente_materia),
         'mat_o_d': votacao(lst_votacao),
@@ -357,7 +370,7 @@ def principal(cabecalho_dic, rodape_dic, imagem, sessao, inf_basicas_dic, lst_me
     else:
         tmp += inf_basicas(inf_basicas_dic)
         tmp += mesa(lst_mesa)
-        tmp += presenca(lst_presenca_sessao)
+        tmp += presenca(lst_presenca_sessao,lst_ausencia_sessao)
         tmp += expedientes(lst_expedientes)
         tmp += expediente_materia(lst_expediente_materia)
         tmp += oradores_expediente(lst_oradores_expediente)
diff --git a/sapl/relatorios/views.py b/sapl/relatorios/views.py
--- a/sapl/relatorios/views.py
+++ b/sapl/relatorios/views.py
@@ -16,7 +16,8 @@
 from sapl.protocoloadm.models import (DocumentoAdministrativo, Protocolo,
                                       TramitacaoAdministrativo)
 from sapl.sessao.models import (ExpedienteMateria, ExpedienteSessao,
-                                IntegranteMesa, Orador, OradorExpediente,
+                                IntegranteMesa, JustificativaAusencia,
+                                Orador, OradorExpediente,
                                 OrdemDia, PresencaOrdemDia, SessaoPlenaria,
                                 SessaoPlenariaPresenca, OcorrenciaSessao)
 from sapl.settings import STATIC_ROOT
@@ -538,6 +539,20 @@ def get_sessao_plenaria(sessao, casa):
         dic_presenca['sgl_partido'] = partido_sigla
         lst_presenca_sessao.append(dic_presenca)
 
+    # Lista de ausencias na sessão
+    lst_ausencia_sessao = []
+    ausencia = JustificativaAusencia.objects.filter(
+        sessao_plenaria=sessao).order_by('parlamentar__nome_parlamentar')
+    for ausente in ausencia:
+        dic_ausencia = {}
+        dic_ausencia['parlamentar'] = ausente.parlamentar
+        dic_ausencia['justificativa'] = ausente.tipo_ausencia
+        if ausente.ausencia == 1:
+            dic_ausencia['tipo'] = 'Matéria'
+        else:
+            dic_ausencia['tipo'] = 'Sessão'
+
+        lst_ausencia_sessao.append(dic_ausencia)
 
     # Exibe os Expedientes
     lst_expedientes = []
@@ -779,6 +794,7 @@ def get_sessao_plenaria(sessao, casa):
     return (inf_basicas_dic,
             lst_mesa,
             lst_presenca_sessao,
+            lst_ausencia_sessao,
             lst_expedientes,
             lst_expediente_materia,
             lst_oradores_expediente,
@@ -833,6 +849,7 @@ def relatorio_sessao_plenaria(request, pk):
     (inf_basicas_dic,
      lst_mesa,
      lst_presenca_sessao,
+     lst_ausencia_sessao,
      lst_expedientes,
      lst_expediente_materia,
      lst_oradores_expediente,
@@ -856,6 +873,7 @@ def relatorio_sessao_plenaria(request, pk):
         inf_basicas_dic,
         lst_mesa,
         lst_presenca_sessao,
+        lst_ausencia_sessao,
         lst_expedientes,
         lst_expediente_materia,
         lst_oradores_expediente,
diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py
--- a/sapl/sessao/views.py
+++ b/sapl/sessao/views.py
@@ -1349,7 +1349,12 @@ def get(self, request, *args, **kwargs):
 
         parlamentares_sessao = [p.parlamentar for p in presencas]
 
-        context.update({'presenca_sessao': parlamentares_sessao})
+        ausentes_sessao = JustificativaAusencia.objects.filter(
+            sessao_plenaria_id=self.object.id
+        ).order_by('parlamentar__nome_parlamentar')
+
+        context.update({'presenca_sessao': parlamentares_sessao,
+                        'justificativa_ausencia': ausentes_sessao})
 
 
         # =====================================================================


Test patch: