Repository: interlegis/sapl

Issue:
Comissões - Permanente X Temporária
A função que trata os dados das Comissões não deve permitir atualização de informações de dados da temporária na Comissão permanente, conforme indicado pelo atributo "natureza" definido no tipo de comissão selecionado. Ou seja, em se tratando de Comissão Permanente os dados relativos a Comissão Temporária não devem ser preenchidos.


Discussion:

Resolving patch:
diff --git a/sapl/comissoes/forms.py b/sapl/comissoes/forms.py
--- a/sapl/comissoes/forms.py
+++ b/sapl/comissoes/forms.py
@@ -134,6 +134,19 @@ class Meta:
         model = Comissao
         fields = '__all__'
 
+    def __init__(self, user=None, **kwargs):
+        super(ComissaoForm, self).__init__(**kwargs)
+        inst = self.instance
+        if inst.pk:
+            if inst.tipo.natureza == 'P':
+                self.fields['apelido_temp'].widget.attrs['disabled'] = 'disabled'
+                self.fields['data_instalacao_temp'].widget.attrs['disabled'] = 'disabled'
+                self.fields['data_final_prevista_temp'].widget.attrs['disabled'] = 'disabled'
+                self.fields['data_prorrogada_temp'].widget.attrs['disabled'] = 'disabled'
+                self.fields['data_fim_comissao'].widget.attrs['disabled'] = 'disabled'
+
+
+
     def clean(self):
         super(ComissaoForm, self).clean()
 
@@ -149,18 +162,23 @@ def clean(self):
 
     @transaction.atomic
     def save(self, commit=True):
-        comissao = super(ComissaoForm, self).save(commit)
-        content_type = ContentType.objects.get_for_model(Comissao)
-        object_id = comissao.pk
-        tipo = TipoAutor.objects.get(descricao__icontains='Comiss')
-        nome = comissao.sigla + ' - ' + comissao.nome
-        Autor.objects.create(
-            content_type=content_type,
-            object_id=object_id,
-            tipo=tipo,
-            nome=nome
-        )
-        return comissao
+        inst = self.instance
+        if not inst.pk:
+            comissao = super(ComissaoForm, self).save(commit)
+            content_type = ContentType.objects.get_for_model(Comissao)
+            object_id = comissao.pk
+            tipo = TipoAutor.objects.get(descricao__icontains='Comiss')
+            nome = comissao.sigla + ' - ' + comissao.nome
+            Autor.objects.create(
+                content_type=content_type,
+                object_id=object_id,
+                tipo=tipo,
+                nome=nome
+            )
+            return comissao
+        else:
+            comissao = super(ComissaoForm, self).save(commit)
+            return comissao
 
 
 class ReuniaoForm(ModelForm):
diff --git a/sapl/comissoes/views.py b/sapl/comissoes/views.py
--- a/sapl/comissoes/views.py
+++ b/sapl/comissoes/views.py
@@ -127,6 +127,12 @@ class CreateView(Crud.CreateView):
         def form_valid(self, form):
             return super(Crud.CreateView, self).form_valid(form)
 
+    class UpdateView(Crud.UpdateView):
+        form_class = ComissaoForm
+
+        def form_valid(self, form):
+            return super(Crud.UpdateView, self).form_valid(form)
+
 
 class MateriasTramitacaoListView(ListView):
     template_name = "comissoes/materias_em_tramitacao.html"


Test patch: