Browse Source

Fix #2798 (#2799)

* Fix #2798

* Refatorar cód. que verifica alterações
pull/2824/head
João Rodrigues 6 years ago
committed by Cesar Carvalho
parent
commit
5f8d4634f6
  1. 11
      sapl/materia/forms.py
  2. 29
      sapl/materia/views.py

11
sapl/materia/forms.py

@ -659,17 +659,6 @@ class TramitacaoUpdateForm(TramitacaoForm):
'Você não pode mudar a Unidade de Destino desta '
'tramitação, pois irá conflitar com a Unidade '
'Local da tramitação seguinte')
# Se não houve qualquer alteração em um dos dados, mantém o usuário e ip
if not (cd['data_tramitacao'] != obj.data_tramitacao or \
cd['unidade_tramitacao_destino'] != obj.unidade_tramitacao_destino or \
cd['status'] != obj.status or cd['texto'] != obj.texto or \
cd['data_encaminhamento'] != obj.data_encaminhamento or \
cd['data_fim_prazo'] != obj.data_fim_prazo or \
cd['urgente'] != obj.urgente or \
cd['turno'] != obj.turno):
cd['user'] = obj.user
cd['ip'] = obj.ip
cd['data_tramitacao'] = obj.data_tramitacao
cd['unidade_tramitacao_local'] = obj.unidade_tramitacao_local

29
sapl/materia/views.py

@ -1256,18 +1256,29 @@ class TramitacaoCrud(MasterDetailCrud):
layout_key = 'TramitacaoUpdate'
def get_initial(self):
initial = super(UpdateView, self).get_initial()
initial['ip'] = get_client_ip(self.request)
initial['user'] = self.request.user
return initial
def form_valid(self, form):
dict_objeto_antigo = Tramitacao.objects.get(pk=self.kwargs['pk']).__dict__
self.object = form.save()
username = self.request.user.username
dict_objeto_novo = self.object.__dict__
user = self.request.user
atributos = [
'data_tramitacao', 'unidade_tramitacao_destino_id', 'status_id', 'texto',
'data_encaminhamento', 'data_fim_prazo', 'urgente', 'turno'
]
# Se não houve qualquer alteração em um dos dados, mantém o usuário e ip
for atributo in atributos:
if dict_objeto_antigo[atributo] != dict_objeto_novo[atributo]:
self.object.user = user
self.object.ip = get_client_ip(self.request)
self.object.save()
break
try:
self.logger.debug("user=" + username + ". Tentando enviar Tramitacao (sender={}, post={}, request={}"
self.logger.debug("user=" + user.username + ". Tentando enviar Tramitacao (sender={}, post={}, request={}"
.format(Tramitacao, self.object, self.request))
tramitacao_signal.send(sender=Tramitacao,
post=self.object,
@ -1276,7 +1287,7 @@ class TramitacaoCrud(MasterDetailCrud):
msg = _('Tramitação atualizada, mas e-mail de acompanhamento '
'de matéria não enviado. Há problemas na configuração '
'do e-mail.')
self.logger.warning('user=' + username + '. Tramitação atualizada, mas e-mail de acompanhamento '
self.logger.warning('user=' + user.username + '. Tramitação atualizada, mas e-mail de acompanhamento '
'de matéria não enviado. Há problemas na configuração '
'do e-mail.')
messages.add_message(self.request, messages.WARNING, msg)

Loading…
Cancel
Save