Repository: interlegis/sapl

Issue:
Dados de alteração causada pelo protocolo de matéria
<!--- 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. -->
Quando o Protocolo de uma Matéria gera alterações em uma Matéria Legislativa, salvar os dados de última alteração.

## 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. -->
Os dados de última alteração não são salvos.






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
@@ -223,7 +223,16 @@ def get_context_data(self, **kwargs):
         return context
 
     def form_valid(self, form):
-        materia = form.save()
+        materia = form.save() 
+
+        materia.user = self.request.user
+        materia.ip = get_client_ip(self.request)
+        
+        tz = timezone.get_current_timezone()
+        materia.ultima_edicao = tz.localize(datetime.now())
+        
+        materia.save()
+        
         username = self.request.user.username
 
         try:
diff --git a/sapl/protocoloadm/views.py b/sapl/protocoloadm/views.py
--- a/sapl/protocoloadm/views.py
+++ b/sapl/protocoloadm/views.py
@@ -883,12 +883,22 @@ def form_valid(self, form):
             protocolo.user_data_hora_manual = ''
             protocolo.ip_data_hora_manual = ''
         protocolo.save()
+
         data = form.cleaned_data
         if data['vincular_materia'] == 'True':
-            materia = MateriaLegislativa.objects.get(ano=data['ano_materia'],
-                                                     numero=data['numero_materia'],
-                                                     tipo=data['tipo_materia'])
+            materia = MateriaLegislativa.objects.get(
+                ano=data['ano_materia'],
+                numero=data['numero_materia'],
+                tipo=data['tipo_materia']
+            )
+            
             materia.numero_protocolo = protocolo.numero
+            materia.user = self.request.user
+            materia.ip = get_client_ip(self.request)
+
+            tz = timezone.get_current_timezone()
+            materia.ultima_edicao = tz.localize(datetime.now())
+            
             materia.save()
 
         return redirect(self.get_success_url(protocolo))
@@ -1464,10 +1474,20 @@ def get_success_url(self):
         return reverse('sapl.protocoloadm:protocolo')
 
     def form_valid(self, form):
-        materia = MateriaLegislativa.objects.get(numero=form.cleaned_data['numero'],
-                                                 ano=form.cleaned_data['ano'],
-                                                 tipo=form.cleaned_data['tipo'])
+        materia = MateriaLegislativa.objects.get(
+            numero=form.cleaned_data['numero'],
+            ano=form.cleaned_data['ano'],
+            tipo=form.cleaned_data['tipo']
+        )
+
         materia.numero_protocolo = None
+        
+        materia.user = self.request.user
+        materia.ip = get_client_ip(self.request)
+
+        tz = timezone.get_current_timezone()
+        materia.ultima_edicao = tz.localize(datetime.now())
+        
         materia.save()
         return redirect(self.get_success_url())
 


Test patch: