Repository: interlegis/sapl

Issue:
Relatório de Tramitações inconsistente
<!--- Forneça um resumo geral da _issue_ no título acima -->

## Comportamento Esperado
<!--- Se você está descrevendo um _bug_, conte-nos o que deveria acontecer. -->
<!--- Se você está sugerindo uma mudança/melhoria, conte-nos como deve funcionar. -->
O Relatório de Tramitações deve mostrar todas as tramitações que passaram por alguma Unidade, seja como Destino ou Origem (Unidade Local).

## Comportamento Atual
<!--- Se está descrevendo um bug, conte-nos o que acontece em vez do comportamento esperado. -->
<!--- Se está sugerindo uma mudança/melhoria, explique a diferença com o comportamento atual. -->
São mostrados apenas quando passaram por unidade de origem (Unidade Local).


## 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.Em Atividade Legislativa -> Relatórios -> Histórico de tramitações


## Contexto
<!--- Como esse problema o afeta? O que você está tentando realizar? -->
<!--- Fornecer o contexto nos ajuda a encontrar uma solução que seja mais útil no mundo real -->
Relatório inconsistente.


Discussion:

Resolving patch:
diff --git a/sapl/base/forms.py b/sapl/base/forms.py
--- a/sapl/base/forms.py
+++ b/sapl/base/forms.py
@@ -898,34 +898,35 @@ def qs(self):
 
     class Meta(FilterOverridesMetaMixin):
         model = MateriaLegislativa
-        fields = ['tipo', 'tramitacao__unidade_tramitacao_local',
-                  'tramitacao__status', 'tramitacao__data_tramitacao']
+        fields = ['tipo', 'tramitacao__status', 'tramitacao__data_tramitacao',
+        'tramitacao__unidade_tramitacao_local', 'tramitacao__unidade_tramitacao_destino']
 
     def __init__(self, *args, **kwargs):
         super(RelatorioHistoricoTramitacaoFilterSet, self).__init__(
             *args, **kwargs)
 
         self.filters['tipo'].label = 'Tipo de Matéria'
-
-        self.filters['tramitacao__unidade_tramitacao_local'
-                     ].label = _('Unidade Local')
         self.filters['tramitacao__status'].label = _('Status')
-        row1 = to_row([('tramitacao__data_tramitacao', 12)])
+        self.filters['tramitacao__unidade_tramitacao_local'].label = _('Unidade Local (Origem)')
+        self.filters['tramitacao__unidade_tramitacao_destino'].label = _('Unidade Destino')
 
-        row2 = to_row(
-            [('tipo', 4),
-             ('tramitacao__unidade_tramitacao_local', 4),
-             ('tramitacao__status', 4)])
+        row1 = to_row([('tramitacao__data_tramitacao', 12)])
+        row2 = to_row([('tramitacao__unidade_tramitacao_local', 6),
+                       ('tramitacao__unidade_tramitacao_destino', 6)])
+        row3 = to_row(
+            [('tipo', 6),
+             ('tramitacao__status', 6)])
 
         self.form.helper = SaplFormHelper()
         self.form.helper.form_method = 'GET'
         self.form.helper.layout = Layout(
-            Fieldset(_('Histórico de Tramitação'),
-                     row1, row2,
+            Fieldset(_(''),
+                     row1, row2, row3,
                      form_actions(label='Pesquisar'))
         )
 
 
+
 class RelatorioDataFimPrazoTramitacaoFilterSet(django_filters.FilterSet):
 
     @property
@@ -936,6 +937,7 @@ def qs(self):
     class Meta(FilterOverridesMetaMixin):
         model = MateriaLegislativa
         fields = ['tipo', 'tramitacao__unidade_tramitacao_local',
+                  'tramitacao__unidade_tramitacao_destino',
                   'tramitacao__status', 'tramitacao__data_fim_prazo']
 
     def __init__(self, *args, **kwargs):
@@ -943,20 +945,22 @@ def __init__(self, *args, **kwargs):
             *args, **kwargs)
 
         self.filters['tipo'].label = 'Tipo de Matéria'
-        self.filters['tramitacao__unidade_tramitacao_local'].label = 'Unidade de tramitação local'
+        self.filters['tramitacao__unidade_tramitacao_local'].label = 'Unidade Local (Origem)'
+        self.filters['tramitacao__unidade_tramitacao_destino'].label = 'Unidade Destino'
         self.filters['tramitacao__status'].label = 'Status de tramitação'
-        
+
         row1 = to_row([('tramitacao__data_fim_prazo', 12)])
-        row2 = to_row(
-            [('tipo', 4),
-             ('tramitacao__unidade_tramitacao_local', 4),
-             ('tramitacao__status', 4)])
+        row2 = to_row([('tramitacao__unidade_tramitacao_local', 6),
+                       ('tramitacao__unidade_tramitacao_destino', 6)])
+        row3 = to_row(
+            [('tipo', 6),
+             ('tramitacao__status', 6)])
 
         self.form.helper = SaplFormHelper()
         self.form.helper.form_method = 'GET'
         self.form.helper.layout = Layout(
             Fieldset(_('Tramitações por fim de prazo'),
-                     row1, row2,
+                     row1, row2, row3,
                      form_actions(label='Pesquisar'))
         )
 
diff --git a/sapl/base/views.py b/sapl/base/views.py
--- a/sapl/base/views.py
+++ b/sapl/base/views.py
@@ -294,11 +294,8 @@ class RelatoriosListView(TemplateView):
     def get_context_data(self, **kwargs):
         context = super(TemplateView, self).get_context_data(**kwargs)
         estatisticas_acesso_normas = AppConfig.objects.first().estatisticas_acesso_normas
-        if estatisticas_acesso_normas == 'S':
-            context['estatisticas_acesso_normas'] = True
-        else:
-            context['estatisticas_acesso_normas'] = False
-
+        context['estatisticas_acesso_normas'] = True if estatisticas_acesso_normas == 'S' else False
+        
         return context
 
 
@@ -450,7 +447,7 @@ class RelatorioHistoricoTramitacaoView(FilterView):
     def get_context_data(self, **kwargs):
         context = super(RelatorioHistoricoTramitacaoView,
                         self).get_context_data(**kwargs)
-        context['title'] = _('Histórico de Tramitações')
+        context['title'] = _('Histórico de Tramitações de Matérias Legislativas')
         if not self.filterset.form.is_valid():
             return context
         qr = self.request.GET.copy()
@@ -465,16 +462,25 @@ def get_context_data(self, **kwargs):
                 str(TipoMateriaLegislativa.objects.get(id=tipo)))
         else:
             context['tipo'] = ''
+
         if self.request.GET['tramitacao__status']:
             tramitacao_status = self.request.GET['tramitacao__status']
             context['tramitacao__status'] = (
                 str(StatusTramitacao.objects.get(id=tramitacao_status)))
         else:
             context['tramitacao__status'] = ''
+
         if self.request.GET['tramitacao__unidade_tramitacao_local']:
             context['tramitacao__unidade_tramitacao_local'] = \
                 (str(UnidadeTramitacao.objects.get(
                     id=self.request.GET['tramitacao__unidade_tramitacao_local'])))
+        else:
+            context['tramitacao__unidade_tramitacao_local'] = ''
+
+        if self.request.GET['tramitacao__unidade_tramitacao_destino']:
+            context['tramitacao__unidade_tramitacao_destino'] = \
+                (str(UnidadeTramitacao.objects.get(
+                    id=self.request.GET['tramitacao__unidade_tramitacao_destino'])))
         else:
             context['tramitacao__unidade_tramitacao_destino'] = ''
 
@@ -505,16 +511,25 @@ def get_context_data(self, **kwargs):
                 str(TipoMateriaLegislativa.objects.get(id=tipo)))
         else:
             context['tipo'] = ''
+
         if self.request.GET['tramitacao__status']:
             tramitacao_status = self.request.GET['tramitacao__status']
             context['tramitacao__status'] = (
                 str(StatusTramitacao.objects.get(id=tramitacao_status)))
         else:
             context['tramitacao__status'] = ''
+
         if self.request.GET['tramitacao__unidade_tramitacao_local']:
             context['tramitacao__unidade_tramitacao_local'] = \
                 (str(UnidadeTramitacao.objects.get(
                     id=self.request.GET['tramitacao__unidade_tramitacao_local'])))
+        else:
+            context['tramitacao__unidade_tramitacao_local'] = ''
+
+        if self.request.GET['tramitacao__unidade_tramitacao_destino']:
+            context['tramitacao__unidade_tramitacao_destino'] = \
+                (str(UnidadeTramitacao.objects.get(
+                    id=self.request.GET['tramitacao__unidade_tramitacao_destino'])))
         else:
             context['tramitacao__unidade_tramitacao_destino'] = ''
 


Test patch: