Repository: interlegis/sapl

Issue:
Campo Número de Protocolo protegido mesmo quando é vazio
<!--- 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 usuário pode criar uma matéria sem número de protocolo vinculado (deixando vazio), e posteriormente querer vincular isso a um protocolo. Se a matéria já tiver um número de protocolo, ele não pode ser alterado para um número diferente.

## 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. -->
Após a matéria ser criada, o Número de Protocolo não pode ser alterado.

## 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. -->
Permitir alteração do número do protocolo na matéria caso o mesmo seja vazio.

## 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 -->
![screenshot from 2019-01-24 16-11-23](https://user-images.githubusercontent.com/20192488/51698980-cb028f00-1ff2-11e9-946d-56764010c46d.png)

Campo Número de Protocolo protegido mesmo quando é vazio
<!--- 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 usuário pode criar uma matéria sem número de protocolo vinculado (deixando vazio), e posteriormente querer vincular isso a um protocolo. Se a matéria já tiver um número de protocolo, ele não pode ser alterado para um número diferente.

## 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. -->
Após a matéria ser criada, o Número de Protocolo não pode ser alterado.

## 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. -->
Permitir alteração do número do protocolo na matéria caso o mesmo seja vazio.

## 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 -->
![screenshot from 2019-01-24 16-11-23](https://user-images.githubusercontent.com/20192488/51698980-cb028f00-1ff2-11e9-946d-56764010c46d.png)



Discussion:

Resolving patch:
diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py
--- a/sapl/materia/forms.py
+++ b/sapl/materia/forms.py
@@ -202,7 +202,8 @@ def __init__(self, *args, **kwargs):
                                                         widget=forms.HiddenInput())
             self.fields['autor'] = forms.CharField(required=False,
                                                    widget=forms.HiddenInput())
-            self.fields['numero_protocolo'].widget.attrs['readonly'] = True
+            if kwargs['instance'].numero_protocolo:
+                self.fields['numero_protocolo'].widget.attrs['readonly'] = True
 
     def clean(self):
         super(MateriaLegislativaForm, self).clean()


Test patch: