Repository: interlegis/sapl

Issue:
Tramitação em Lote
Bom dia Pessoal,
Sou Matheus da CM de Pato Branco, estou com problemas no recebimento de resposta da Tramitação em Lote. Explico.
Quando um parlamentar apresenta um Requerimento, ele cadastra a opção "acompanhar matéria".
Quando vem a resposta da matéria, nós subimos a resposta no SAPL e tramitamos a mesma, para que o parlamentar receba em seu Email o tramite novo.
Como 90% dos Requerimentos são para o Executivo Municipal, vários Requerimentos são respondidos em um único Ofício pelo Executivo, então nós usamos a Tramitação em Lote.
Acontece que as matérias que são tramitadas em lote, mesmo o parlamentar tendo se cadastrado previamente para receber os tramites, ele não recebe. 
Quando o parlamentar se cadastra para receber o tramite, o SAPL manda um Email de confirmação do cadastro para aquela matéria, mas quando a matéria é tramitada em lote, ele não recebe o Email de tramitação.
Quando a matéria é tramitada individualmente, o parlamentar que fez o cadastro recebe o Email de tramitação.
Alguém já passou por isso?
Obrigado.
Matheus


Discussion:

Resolving patch:
diff --git a/sapl/materia/views.py b/sapl/materia/views.py
--- a/sapl/materia/views.py
+++ b/sapl/materia/views.py
@@ -530,7 +530,7 @@ def dispatch(self, request, *args, **kwargs):
         if p.autor.user != request.user:
              messages.error(
                  request,
-                 'Usuário sem acesso a esta opção.' % 
+                 'Usuário sem acesso a esta opção.' %
                      request.user)
              return redirect('/')
 
@@ -1805,6 +1805,7 @@ def get_context_data(self, **kwargs):
 
         return context
 
+
     def post(self, request, *args, **kwargs):
         marcadas = request.POST.getlist('materia_id')
 
@@ -1814,38 +1815,20 @@ def post(self, request, *args, **kwargs):
             msg = _('Nenhuma máteria foi selecionada.')
             messages.add_message(request, messages.ERROR, msg)
             return self.get(request, self.kwargs)
+        obrigatorios = {'data_tramitacao':'Data da Tramitação',
+                        'unidade_tramitacao_local':'Unidade Local',
+                        'unidade_tramitacao_destino':'Unidade Destino',
+                        'status':'Status',
+                        'urgente':'Urgente',
+                        'texto':'Texto da Ação'}
+        for field,nome in obrigatorios.items():
+            if not request.POST[field]:
+                msg = _('Campo {} deve ser preenchido.'.format(nome))
+                messages.add_message(request, messages.ERROR, msg)
+                return self.get(request, self.kwargs)
 
-        if request.POST['status'] == '':
-            msg = _('Campo Status deve ser preenchido.')
-            messages.add_message(request, messages.ERROR, msg)
-            return self.get(request, self.kwargs)
-
-        if request.POST['unidade_tramitacao_local'] == '':
-            msg = _('Campo Unidade Local deve ser preenchido.')
-            messages.add_message(request, messages.ERROR, msg)
-            return self.get(request, self.kwargs)
-
-        if request.POST['data_tramitacao'] == '':
-            msg = _('Campo Data da Tramitação deve ser preenchido.')
-            messages.add_message(request, messages.ERROR, msg)
-            return self.get(request, self.kwargs)
-
-        if request.POST['unidade_tramitacao_destino'] == '':
-            msg = _('Campo Unidade Destino deve ser preenchido.')
-            messages.add_message(request, messages.ERROR, msg)
-            return self.get(request, self.kwargs)
-
-        if request.POST['urgente'] == '':
-            msg = _('Campo Urgente deve ser preenchido.')
-            messages.add_message(request, messages.ERROR, msg)
-            return self.get(request, self.kwargs)
-
-        if request.POST['texto'] == '':
-            msg = _('Campo Texto da Ação deve ser preenchido.')
-            messages.add_message(request, messages.ERROR, msg)
-            return self.get(request, self.kwargs)
 
-        if request.POST['data_encaminhamento'] == '':
+        if not request.POST['data_encaminhamento']:
             data_encaminhamento = None
         else:
             data_encaminhamento = tz.localize(datetime.strptime(
@@ -1878,6 +1861,9 @@ def post(self, request, *args, **kwargs):
                 texto=request.POST['texto']
             )
             t.save()
+            tramitacao_signal.send(sender=Tramitacao,
+                                   post=t,
+                                   request=self.request)
 
         status = StatusTramitacao.objects.get(id=request.POST['status'])
 


Test patch: