Repository: interlegis/sapl

Issue:
Turno(tipo votação) resumo sessão plenária - Matérias do expediente e ordem do dia
No resumo da Sessão Plenária, nas matérias da ordem do dia, falta exibir o turno
http://sapl.camarabento.rs.gov.br/sessao/388/resumo

![image](https://user-images.githubusercontent.com/13314947/32070846-505d764e-ba6c-11e7-8266-afe465197e19.png)

conforme o 2.5

![image](https://user-images.githubusercontent.com/13314947/32070872-625806ca-ba6c-11e7-8458-80ee3cd4c0f5.png)



Discussion:
Veja se essa modificação solucionou o problema, por favor. Caso contrário reabrimos a issue.
No resumo está ok.
http://sapl.camarabento.rs.gov.br/sessao/388/resumo
Porém no pdf aparecer Turno: mas sem informação
http://sapl.camarabento.rs.gov.br/relatorios/388/sessao-plenaria

Também seria interessante que fosse exibida a informação de turno, estando nos menus matérias da ordem do dia e expediente, não só no resumo.
http://sapl.camarabento.rs.gov.br/sessao/388/ordemdia

Outra coisa que acho que seria interessante, seria abreviar "Numero de Protocolo" para simplesmente "Protocolo" e o mesmo para "Numero de Processo" para "Processo" visualmente ficaria melhor e não comprometeria a informação

![image](https://user-images.githubusercontent.com/13314947/32166033-d3839594-bd4b-11e7-9a62-f0ae0a4ff19f.png)

e no resumo falta a informação de protocolo e processo

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
@@ -243,8 +243,8 @@ def votacao(lst_votacao):
     tmp += '<blockTable style="repeater" repeatRows="1">\n'
     tmp += '<tr><td >Matéria</td><td>Ementa</td><td>Resultado da Votação</td></tr>\n'
     for votacao in lst_votacao:
-        tmp += '<tr><td><para style="P3"><b>' + str(votacao['num_ordem']) + '</b> - ' + votacao['id_materia'] + '</para>\n' + '<para style="P3"><b>Turno:</b> ' + votacao[
-            'des_turno'] + '</para>\n' + '<para style="P3"><b>Autor: </b>' + votacao['nom_autor'] + '</para></td>\n'
+        tmp += '<tr><td><para style="P3"><b>' + str(votacao['num_ordem']) + '</b> - ' + votacao['id_materia'] + '</para>\n' + '<para style="P3"><b>Turno:</b> ' + str(votacao[
+            'des_turno']) + '</para>\n' + '<para style="P3"><b>Autor: </b>' + str(votacao['nom_autor']) + '</para></td>\n'
         txt_ementa = votacao['txt_ementa'].replace('&', '&amp;')
         tmp += '<td><para style="P4">' + txt_ementa + '</para></td>\n'
         tmp += '<td><para style="P3"><b>' + \
diff --git a/sapl/relatorios/views.py b/sapl/relatorios/views.py
--- a/sapl/relatorios/views.py
+++ b/sapl/relatorios/views.py
@@ -563,21 +563,9 @@ def get_sessao_plenaria(sessao, casa):
                 str(numeracao.numero_materia) + '/' + str(
                     numeracao.ano_materia))
 
-        dic_expediente_materia["des_turno"] = ' '
-        tram = Tramitacao.objects.filter(
-            materia=materia).first()
-        if tram is not None:
-            if tram.turno != '':
-                for turno in [("P", _("Primeiro")),
-                              ("S", _("Segundo")),
-                              ("U", _("Único")),
-                              ("L", _("Suplementar")),
-                              ("A", _("Votação Única em Regime de Urgência")),
-                              ("B", _("1ª Votação")),
-                              ("C", _("2ª e 3ª Votações")),
-                              ("F", "Final")]:
-                    if tram.turno == turno[0]:
-                        dic_expediente_materia["des_turno"] = turno[1]
+        turno, _ = get_turno(dic_expediente_materia, materia)
+
+        dic_expediente_materia["des_turno"] = turno
 
         dic_expediente_materia["txt_ementa"] = str(materia.ementa)
         dic_expediente_materia["ordem_observacao"] = ' '  # TODO
@@ -615,8 +603,8 @@ def get_sessao_plenaria(sessao, casa):
                 dic_expediente_materia["votacao_observacao"] = (
                     i.observacao)
         else:
-            dic_expediente_materia["nom_resultado"] = _("Matéria não votada")
-            dic_expediente_materia["votacao_observacao"] = _(" ")
+            dic_expediente_materia["nom_resultado"] = 'Matéria não votada'
+            dic_expediente_materia["votacao_observacao"] = ' '
         lst_expediente_materia.append(dic_expediente_materia)
 
     # Lista dos oradores do Expediente
@@ -677,22 +665,10 @@ def get_sessao_plenaria(sessao, casa):
                 str(numeracao.numero_materia) +
                 '/' +
                 str(numeracao.ano_materia))
-        dic_votacao["des_turno"] = ' '
-
-        tramitacao = Tramitacao.objects.filter(
-            materia=materia).first()
-        if tramitacao is not None:
-            if not tramitacao.turno:
-                for turno in [("P", _("Primeiro")),
-                              ("S", _("Segundo")),
-                              ("U", _("Único")),
-                              ("L", _("Suplementar")),
-                              ("F", _("Final")),
-                              ("A", _("Votação Única em Regime de Urgência")),
-                              ("B", _("1ª Votação")),
-                              ("C", _("2ª e 3ª Votações"))]:
-                    if tramitacao.turno == turno[0]:
-                        dic_votacao["des_turno"] = turno[1]
+
+        turno, _ = get_turno(dic_votacao, materia)
+
+        dic_votacao["des_turno"] = turno
 
         # https://github.com/interlegis/sapl/issues/1009
         dic_votacao["txt_ementa"] = html.unescape(materia.ementa)
@@ -728,8 +704,8 @@ def get_sessao_plenaria(sessao, casa):
                 if votacao.observacao:
                     dic_votacao["votacao_observacao"] = i.observacao
         else:
-            dic_votacao["nom_resultado"] = _("Matéria não votada")
-            dic_votacao["votacao_observacao"] = _(" ")
+            dic_votacao["nom_resultado"] = "Matéria não votada"
+            dic_votacao["votacao_observacao"] = " "
         lst_votacao.append(dic_votacao)
 
     # Lista dos oradores nas Explicações Pessoais
@@ -761,6 +737,20 @@ def get_sessao_plenaria(sessao, casa):
             lst_oradores)
 
 
+def get_turno(dic, materia):
+    descricao_turno = ' '
+    descricao_tramitacao = ' '
+    tramitacao = Tramitacao.objects.filter(materia=materia).order_by(
+        '-data_tramitacao').first()
+    if tramitacao is not None:
+        for t in Tramitacao.TURNO_CHOICES:
+            if t[0] == tramitacao.turno:
+                descricao_turno = t[1]
+                break
+        descricao_tramitacao = tramitacao.status.descricao if tramitacao.status else ' '
+    return (descricao_turno, descricao_tramitacao)
+
+
 def relatorio_sessao_plenaria(request, pk):
     '''
         pdf_sessao_plenaria_gerar.py
@@ -1064,28 +1054,12 @@ def get_pauta_sessao(sessao, casa):
         elif autoria is None:
             dic_expediente_materia["nom_autor"] = 'Desconhecido'
 
-        dic_expediente_materia["des_turno"] = ' '
-        dic_expediente_materia["des_situacao"] = ' '
-
-        tramitacao = Tramitacao.objects.filter(materia=materia)
-        if tramitacao is not None:
-            tramitacao = tramitacao.first()
-
-            if tramitacao.turno != '':
-                for turno in [("P", _("Primeiro")),
-                              ("S", _("Segundo")),
-                              ("U", _("Único")),
-                              ("F", _("Final")),
-                              ("L", _("Suplementar")),
-                              ("A", _("Votação Única em Regime de Urgência")),
-                              ("B", _("1ª Votação")),
-                              ("C", _("2ª e 3ª Votações"))]:
-                    if tramitacao.turno == turno.first():
-                        dic_expediente_materia["des_turno"] = turno.first()
-
-            dic_expediente_materia["des_situacao"] = tramitacao.status
-            if dic_expediente_materia["des_situacao"] is None:
-                dic_expediente_materia["des_situacao"] = ' '
+        turno, tramitacao = get_turno(dic_expediente_materia, materia)
+
+        dic_expediente_materia["des_turno"] = turno
+        dic_expediente_materia["des_situacao"] = tramitacao
+
+
         lst_expediente_materia.append(dic_expediente_materia)
 
     lst_votacao = []
@@ -1129,25 +1103,9 @@ def get_pauta_sessao(sessao, casa):
         elif autoria is None:
             dic_votacao["nom_autor"] = 'Desconhecido'
 
-        dic_votacao["des_turno"] = ' '
-        dic_votacao["des_situacao"] = ' '
-        tramitacao = Tramitacao.objects.filter(materia=materia)
-        if tramitacao is not None:
-            tramitacao = tramitacao.first()
-            if tramitacao.turno != '':
-                for turno in [("P", _("Primeiro")),
-                              ("S", _("Segundo")),
-                              ("U", _("Único")),
-                              ("L", _("Suplementar")),
-                              ("A", _("Votação Única em Regime de Urgência")),
-                              ("B", _("1ª Votação")),
-                              ("C", _("2ª e 3ª Votações"))]:
-                    if tramitacao.turno == turno.first():
-                        dic_votacao["des_turno"] = turno.first()
-
-            dic_votacao["des_situacao"] = tramitacao.status
-            if dic_votacao["des_situacao"] is None:
-                dic_votacao["des_situacao"] = ' '
+        turno, tramitacao = get_turno(dic_expediente_materia, materia)
+        dic_votacao["des_turno"] = turno
+        dic_votacao["des_situacao"] = tramitacao
         lst_votacao.append(dic_votacao)
 
     return (lst_expediente_materia,
diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py
--- a/sapl/sessao/views.py
+++ b/sapl/sessao/views.py
@@ -168,15 +168,25 @@ def customize_link_materia(context):
         autor = autoria.autor if autoria else None
         num_protocolo = materia.numero_protocolo
 
+        tramitacao = Tramitacao.objects.filter(materia=materia).last()
+        turno = '  '
+        if tramitacao is not None:
+            for t in Tramitacao.TURNO_CHOICES:
+               if t[0] == tramitacao.turno:
+                    turno = t[1]
+                    break
+
         title_materia = '''<a href=%s>%s</a> </br>
-                           <b>Número de Processo:</b> %s </br>
+                           <b>Processo:</b> %s </br>
                            <b>Autor:</b> %s </br>
-                           <b>Número de Protocolo:</b> %s </br>
+                           <b>Protocolo:</b> %s </br>
+                           <b>Turno:</b> %s </br>
                         ''' % (url_materia,
                                row[1][0],
                                numeracao if numeracao else '',
                                autor if autor else '',
-                               num_protocolo if num_protocolo else '')
+                               num_protocolo if num_protocolo else '',
+                               turno)
 
         # Na linha abaixo, o segundo argumento é None para não colocar
         # url em toda a string de title_materia
@@ -1242,7 +1252,9 @@ def get(self, request, *args, **kwargs):
                    'turno': turno,
                    'resultado': resultado,
                    'resultado_observacao': resultado_observacao,
-                   'autor': autor
+                   'autor': autor,
+                   'numero_protocolo': m.materia.numero_protocolo,
+                   'numero_processo': m.materia.numeracao_set.last()
                    }
             materias_expediente.append(mat)
 
@@ -1308,7 +1320,9 @@ def get(self, request, *args, **kwargs):
                    'turno': turno,
                    'resultado': resultado,
                    'resultado_observacao': resultado_observacao,
-                   'autor': autor
+                   'autor': autor,
+                   'numero_protocolo': o.materia.numero_protocolo,
+                   'numero_processo': o.materia.numeracao_set.last()
                    }
             materias_ordem.append(mat)
 


Test patch: