Repository: interlegis/sapl

Issue:
Erro 500 ao acessar Extrato da Sessão plenária 
## Comportamento Atual
Após o merge #2539 está dando erro 500 ao ir no extrato de uma sessão plenária

## Passos para Reproduzir (para bugs)
<!--- Forneça um link para um exemplo, ou um conjunto de passos inequívocos -->
<!--- para reproduzir esse bug. Inclua código para reproduzir, se relevante. -->
1. Sessão Plenária - Resumo - Extrato

## Traceback
Environment:


Request Method: GET
Request URL: http://192.168.1.108/sessao/8/resumo_ata

Django Version: 1.11.20
Python Version: 3.6.7
Installed Applications:
('django_admin_bootstrapped',
 'django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django_extensions',
 'crispy_forms',
 'floppyforms',
 'drf_yasg',
 'rest_framework',
 'django_filters',
 'easy_thumbnails',
 'image_cropping',
 'reversion',
 'reversion_compare',
 'haystack',
 'whoosh',
 'speedinfo',
 'webpack_loader',
 'sapl.audiencia',
 'sapl.base',
 'sapl.crud',
 'sapl.parlamentares',
 'sapl.comissoes',
 'sapl.materia',
 'sapl.norma',
 'sapl.sessao',
 'sapl.lexml',
 'sapl.painel',
 'sapl.protocoloadm',
 'sapl.redireciona_urls',
 'sapl.compilacao',
 'sapl.api',
 'sapl.rules',
 'debug_toolbar')
Installed Middleware:
['reversion.middleware.RevisionMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware',
 'speedinfo.middleware.ProfilerMiddleware',
 'debug_toolbar.middleware.DebugToolbarMiddleware']


Template error:
In template /var/interlegis/sapl/sapl/templates/sessao/blocos_ata/assinaturas.html, error at line 14
   int() argument must be a string, a bytes-like object or a number, not 'dict'   4 : 		<div class="row">
   5 : 			</br></br>
   6 : 			{% for p in assinatura_mesa %}
   7 : 		  	<div class="col-md-6">___________________________________________ </br>
   8 : 					<b>{{p.cargo}}: </b> {{p.parlamentar.nome_completo}} / {{ p.parlamentar|filiacao_data_filter:object.data_inicio }}
   9 : 					</br></br></br>
   10 : 		  	</div>
   11 : 		  {% endfor %}
   12 : 		  {% for p in assinatura_presentes %}
   13 : 		  	<div class="col-md-6">___________________________________________ </br>
   14 : 					{{p.nome_completo}} /  {{ p|filiacao_data_filter:object.data_inicio }} 
   15 : 					</br></br></br>
   16 : 		  	</div>
   17 : 		  {% endfor %}
   18 : 		</div>
   19 : </fieldset>

Traceback:

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
  41.             response = get_response(request)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  217.                 response = self.process_exception_by_middleware(e, request)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
  215.                 response = response.render()

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/response.py" in render
  107.             self.content = self.rendered_content

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/response.py" in rendered_content
  84.         content = template.render(context, self._request)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/backends/django.py" in render
  66.             return self.template.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render
  207.                     return self._render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/test/utils.py" in instrumented_test_render
  107.     return self.nodelist.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render
  990.                 bit = node.render_annotated(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render_annotated
  957.             return self.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/loader_tags.py" in render
  177.             return compiled_parent._render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/test/utils.py" in instrumented_test_render
  107.     return self.nodelist.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render
  990.                 bit = node.render_annotated(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render_annotated
  957.             return self.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/loader_tags.py" in render
  177.             return compiled_parent._render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/test/utils.py" in instrumented_test_render
  107.     return self.nodelist.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render
  990.                 bit = node.render_annotated(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render_annotated
  957.             return self.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/loader_tags.py" in render
  72.                 result = block.nodelist.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render
  990.                 bit = node.render_annotated(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render_annotated
  957.             return self.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/loader_tags.py" in render
  72.                 result = block.nodelist.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render
  990.                 bit = node.render_annotated(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render_annotated
  957.             return self.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/loader_tags.py" in render
  72.                 result = block.nodelist.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render
  990.                 bit = node.render_annotated(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render_annotated
  957.             return self.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/loader_tags.py" in render
  216.                 return template.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render
  209.                 return self._render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/test/utils.py" in instrumented_test_render
  107.     return self.nodelist.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render
  990.                 bit = node.render_annotated(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render_annotated
  957.             return self.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/defaulttags.py" in render
  216.                     nodelist.append(node.render_annotated(context))

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render_annotated
  957.             return self.render(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in render
  1040.             output = self.filter_expression.resolve(context)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/template/base.py" in resolve
  736.                 new_obj = func(obj, *arg_vals)

File "/var/interlegis/sapl/sapl/base/templatetags/common_tags.py" in filiacao_data_filter
  275.     return filiacao_data(parlamentar, data_inicio)

File "/var/interlegis/sapl/sapl/utils.py" in filiacao_data
  808.         parlamentar=parlamentar)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/db/models/manager.py" in manager_method
  85.                 return getattr(self.get_queryset(), name)(*args, **kwargs)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/db/models/query.py" in filter
  787.         return self._filter_or_exclude(False, *args, **kwargs)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/db/models/query.py" in _filter_or_exclude
  805.             clone.query.add_q(Q(*args, **kwargs))

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/db/models/sql/query.py" in add_q
  1250.         clause, _ = self._add_q(q_object, self.used_aliases)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/db/models/sql/query.py" in _add_q
  1276.                     allow_joins=allow_joins, split_subq=split_subq,

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/db/models/sql/query.py" in build_filter
  1206.             condition = lookup_class(lhs, value)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/db/models/lookups.py" in __init__
  24.         self.rhs = self.get_prep_lookup()

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/db/models/fields/related_lookups.py" in get_prep_lookup
  112.                 self.rhs = target_field.get_prep_value(self.rhs)

File "/var/interlegis/.virtualenvs/sapl/lib/python3.6/site-packages/django/db/models/fields/__init__.py" in get_prep_value
  966.         return int(value)

Exception Type: TypeError at /sessao/8/resumo_ata
Exception Value: int() argument must be a string, a bytes-like object or a number, not 'dict'


## Seu Ambiente
<!--- Inclua detalhes relevantes sobre o ambiente em que você presenciou/experienciou o bug. -->
* Versão usada (_Release_):  3.1.147
* Nome e versão do navegador: Chrome 
* Nome e versão do Sistema Operacional (desktop ou mobile): Windows 10




Discussion:
Vá em Tabelas Auxiliares -> Resumo Ordenação. Altere os dois últimos selects para 'Votações Nominais - Ordem do dia' e 'Votações Nominais - Expediente', respectivamente. Clique em Salvar.

Cada caixa de select deve ter um elemento distinto, verificar se as outras estão cada uma com o seu respectivo elemento selecionado.
Não está na ordem sugerida acima, mas as opções de votação nominal estão selecionadas. E mesmo assim erro 500.
http://sapl.camarabento.rs.gov.br/relatorios/457/resumo_ata

Pelo que testei o erro ocorre na parte de assinaturas



![image](https://user-images.githubusercontent.com/13314947/54622973-5e7f9b80-4a49-11e9-9d93-aa902c56b475.png)

![image](https://user-images.githubusercontent.com/13314947/54623000-6ccdb780-4a49-11e9-8874-16ac634fde53.png)



@DtiLegBG exato, ao carregar a página extrato a assinatura já está com problema ... mas não emite erro 500 somente quando gera o PDF, no modo debug já retorna o erro informado acima
O que aparece no sapl.log? Me passa um dump dessa base de dados @DtiLegBG @puera 
@edwardoliveira  TypeError: int() argument must be a string, a bytes-like object or a number, not 'dict' no meu sapl.log
Me passa um dump dessa base de dados @DtiLegBG @puera

Resolving patch:
diff --git a/sapl/sessao/views.py b/sapl/sessao/views.py
--- a/sapl/sessao/views.py
+++ b/sapl/sessao/views.py
@@ -1464,7 +1464,7 @@ def get_presenca_ordem_do_dia(sessao_plenaria):
         context.update(
             {'texto_assinatura': 'Assinatura do Presidente da Sessão'})
         context.update({'assinatura_presentes': presidente_dia})
-
+    
     return context
 
 def get_materias_ordem_do_dia(sessao_plenaria):
@@ -1577,7 +1577,7 @@ def get_context(self,*args, **kwargs):
         self.object = self.get_object()
         context = self.get_context_data(object=self.object)
 
-               # Votos de Votação Nominal de Matérias Expediente
+        # Votos de Votação Nominal de Matérias Expediente
         materias_expediente_votacao_nominal = ExpedienteMateria.objects.filter(
             sessao_plenaria_id=self.object.id,
             tipo_votacao=2).order_by('-materia')
@@ -1626,14 +1626,13 @@ def get_context(self,*args, **kwargs):
         context.update(get_presenca_ordem_do_dia(self.object))
         # =====================================================================
         # Matérias Ordem do Dia
-         # Votos de Votação Nominal de Matérias Ordem do Dia
+        # Votos de Votação Nominal de Matérias Ordem do Dia
         materias_ordem_dia_votacao_nominal = OrdemDia.objects.filter(
             sessao_plenaria_id=self.object.id,
             tipo_votacao=2).order_by('-materia')
 
         votacoes_od = []
         for modvn in materias_ordem_dia_votacao_nominal:
-
             votos_materia_od = []
             t_materia = modvn.materia
             registro_od = RegistroVotacao.objects.filter(ordem=modvn)
@@ -1692,7 +1691,7 @@ def get_context(self,*args, **kwargs):
                     'decimo_segundo_ordenacao': dict_ord_template[ordenacao.decimo_segundo],
                     'decimo_terceiro_ordenacao': dict_ord_template[ordenacao.decimo_terceiro]})
             except KeyError as e:
-                self.logger.error('user=' + request.user.username + '. ' + "KeyError: " + str(e) + ". Erro "
+                self.logger.error('user=' + self.request.user.username + '. ' + "KeyError: " + str(e) + ". Erro "
                                   "ao tentar utilizar configuração de ordenação. Utilizando ordenação padrão.")
                 context.update(
                 {'primeiro_ordenacao': dict_ord_template['id_basica'],


Test patch: