Repository: interlegis/sapl

Issue:
Erro Server Error (500) ao criar Frente Parlamentar
<!--- 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. -->

Ao tentar criar uma frente parlamentar utilizando o menu Sistema > Tabelas Auxiliares > Frente parlamentares > Adicionar Frente Parlamentar. 
Ao adicionar o dados e clicar em Salvar o sistema retorna tela branca com o erro "Erro Server Error (500)".

## 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. -->
Erro: Server Error (500)

## Possível Solução
<!--- Não é obrigatório, mas sugira uma possível correção/razão para o bug -->
<!--- ou ideias de como implementar a adição/mudança. -->

## 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. Sistema > Tabelas Auxiliares > Frente parlamentares > Adicionar Frente Parlamentar.
2. Preencher os dados
3. Clicar em Salvar
4. Server Error (500)

## 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 -->

## Imagens do Ocorrido
<!--- Representação visual em vídeo ou imagem do ocorrido -->
<!--- Se está descrevendo um bug poste imagens ou vídeos na repordução do bug citado, caso se aplique --:

## Seu Ambiente
<!--- Inclua detalhes relevantes sobre o ambiente em que você presenciou/experienciou o bug. -->
* Versão usada (_Release_): sapl:3.1.117
* Nome e versão do navegador: Firefox e Chrome
* Nome e versão do Sistema Operacional (desktop ou mobile):
* Link para o seu projeto (Caso de fork deste projeto):


Discussion:
Favor atualizar para a versão 3.1.118 e verificar se o erro ainda ocorre. Importante: estamos com problema na versão 3.1.119, portanto deve ser para a 3.1.118 mesmo. Estamos terminando a versão 3.1.120 que deve solucionar esses problemas.

**Nos avise se a versão 3.1.118 funcionou.**
O erro persiste na versão 3.1.118.
Coloque o sistema como debug=True (arquivo .env), reinicie o servidor, e reproduza o erro. Copie e cole o stacktrace do erro nesta issue. 
Edward
Poderia por gentielza informar o caminho completo onde se encontra o arquivo .env a qual vc se refere?
Desde já agradeço,
Como vcs estão executando o SAPL? Está hospedado no Interlegis? Estão usando instâncias Docker ou está sendo direto no host? O host é Linux?

O arquivo .env vai estar no diretório raiz do SAPL ou no diretório sapl abaixo do raiz.

A versão 3.1.120 está disponível. Vcs tentaram com ela também pra ver se o erro persiste?
Docker/ Linux Ubuntu
O erro persiste na versão 3.1.120
Edward, poderia orientar a localização do .env no Docker?
Edward, consegui colocar em debug mode alterando a variável no docker-compose.yml
Segue a stack:

sapl_1    | Internal Server Error: /sistema/frente/create
sapl_1    | Traceback (most recent call last):
sapl_1    |   File "/usr/lib/python3.6/site-packages/django/core/handlers/base.py", line 149, in get_response
sapl_1    |     response = self.process_exception_by_middleware(e, request)
sapl_1    |   File "/usr/lib/python3.6/site-packages/django/core/handlers/base.py", line 147, in get_response
sapl_1    |     response = wrapped_callback(request, *callback_args, **callback_kwargs)
sapl_1    |   File "/usr/lib/python3.6/site-packages/django/views/generic/base.py", line 68, in view
sapl_1    |     return self.dispatch(request, *args, **kwargs)
sapl_1    |   File "/var/interlegis/sapl/sapl/crud/base.py", line 230, in dispatch
sapl_1    |     request, *args, **kwargs)
sapl_1    |   File "/usr/lib/python3.6/site-packages/django/views/generic/base.py", line 88, in dispatch
sapl_1    |     return handler(request, *args, **kwargs)
sapl_1    |   File "/usr/lib/python3.6/site-packages/django/views/generic/edit.py", line 256, in post
sapl_1    |     return super(BaseCreateView, self).post(request, *args, **kwargs)
sapl_1    |   File "/usr/lib/python3.6/site-packages/django/views/generic/edit.py", line 221, in post
sapl_1    |     if form.is_valid():
sapl_1    |   File "/usr/lib/python3.6/site-packages/django/forms/forms.py", line 161, in is_valid
sapl_1    |     return self.is_bound and not self.errors
sapl_1    |   File "/usr/lib/python3.6/site-packages/django/forms/forms.py", line 153, in errors
sapl_1    |     self.full_clean()
sapl_1    |   File "/usr/lib/python3.6/site-packages/django/forms/forms.py", line 363, in full_clean
sapl_1    |     self._clean_form()
sapl_1    |   File "/usr/lib/python3.6/site-packages/django/forms/forms.py", line 390, in _clean_form
sapl_1    |     cleaned_data = self.clean()
sapl_1    |   File "/var/interlegis/sapl/sapl/parlamentares/forms.py", line 356, in clean
sapl_1    |     if cd['data_criacao'] >= cd['data_extincao']:
sapl_1    | TypeError: '>=' not supported between instances of 'datetime.date' and 'NoneType'
sapl_1    | 172.17.0.1 - - [25/Sep/2018:14:22:48 -0300] "POST /sistema/frente/create HTTP/1.1" 500 103339 "http://localhost/sistema/frente/create" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0" "-"


Segue o link com a stack:

http://dpaste.com/1QR0T1Q

Resolving patch:
diff --git a/sapl/parlamentares/forms.py b/sapl/parlamentares/forms.py
--- a/sapl/parlamentares/forms.py
+++ b/sapl/parlamentares/forms.py
@@ -348,12 +348,12 @@ class Meta:
         fields = '__all__'
 
     def clean(self):
-        frente = super(FrenteForm, self).clean()
+        super(FrenteForm, self).clean()
         cd = self.cleaned_data
         if not self.is_valid():
             return self.cleaned_data
 
-        if cd['data_criacao'] >= cd['data_extincao']:
+        if cd['data_extincao'] and cd['data_criacao'] >= cd['data_extincao']:
             raise ValidationError(_("Data Dissolução não pode ser anterior a Data Criação"))
 
         return cd


Test patch: