Repository: interlegis/sapl

Issue:
Matéria Legislativa: erro ao adicionar relatoria
Se uma matéria está com a localização atual vazia, ao Adicionar Relatoria o sistema responde Server Error (500). O ideal seria alertar "Sem localização atual, que deve deve ser uma comissão!"


Discussion:
A origem de tal erro está na Tramitação em Lote, quando não se indica a Unidade de Destino e o sistema não adverte sobre tal falta.

Resolving patch:
diff --git a/sapl/materia/views.py b/sapl/materia/views.py
--- a/sapl/materia/views.py
+++ b/sapl/materia/views.py
@@ -940,8 +940,9 @@ def get_context_data(self, **kwargs):
             try:
                 comissao = Comissao.objects.get(
                     pk=context['form'].initial['comissao'])
-            except ObjectDoesNotExist:
+            except:
                 pass
+
             else:
                 composicao = comissao.composicao_set.order_by(
                     '-periodo__data_inicio').first()
@@ -1778,17 +1779,47 @@ def post(self, request, *args, **kwargs):
             messages.add_message(request, messages.ERROR, msg)
             return self.get(request, self.kwargs)
 
-        if request.POST['data_encaminhamento']:
+        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'] == '':
+            data_encaminhamento = None
+        else:
             data_encaminhamento = tz.localize(datetime.strptime(
                 request.POST['data_encaminhamento'], "%d/%m/%Y"))
-        else:
-            data_encaminhamento = None
 
-        if request.POST['data_fim_prazo']:
+        if request.POST['data_fim_prazo'] == '':
+            data_fim_prazo = None
+        else:
             data_fim_prazo = tz.localize(datetime.strptime(
                 request.POST['data_fim_prazo'], "%d/%m/%Y"))
-        else:
-            data_fim_prazo = None
 
         # issue https://github.com/interlegis/sapl/issues/1123
         # TODO: usar Form


Test patch: