From bcaa5283e15b89c8c295704c59bb9893af727aaa Mon Sep 17 00:00:00 2001 From: Cesar Carvalho Date: Fri, 3 May 2019 09:22:17 -0300 Subject: [PATCH] =?UTF-8?q?Otimiza=20cria=C3=A7=C3=A3o=20das=20tramita?= =?UTF-8?q?=C3=A7=C3=B5es=20anexadas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/materia/forms.py | 20 ++++++++++++++++---- sapl/protocoloadm/forms.py | 23 +++++++++++++++++------ 2 files changed, 33 insertions(+), 10 deletions(-) diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index 82dd8248a..63112f85d 100644 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -553,13 +553,25 @@ class TramitacaoForm(ModelForm): def save(self, commit=True): tramitacao = super(TramitacaoForm, self).save(commit) materia = tramitacao.materia + lista_tramitacao = [] for ma in materia.anexadas.all(): if not ma.tramitacao_set.all() \ or ma.tramitacao_set.last().unidade_tramitacao_destino == tramitacao.unidade_tramitacao_local: - tramitacao_nova = tramitacao - tramitacao_nova.pk = None - tramitacao_nova.materia = ma - tramitacao_nova.save() + lista_tramitacao.append(Tramitacao( + status=tramitacao.status, + materia=ma, + data_tramitacao=tramitacao.data_tramitacao, + unidade_tramitacao_local=tramitacao.unidade_tramitacao_local, + data_encaminhamento=tramitacao.data_encaminhamento, + unidade_tramitacao_destino=tramitacao.unidade_tramitacao_destino, + urgente=tramitacao.urgente, + turno=tramitacao.turno, + texto=tramitacao.texto, + data_fim_prazo=tramitacao.data_fim_prazo, + user=tramitacao.user, + ip=tramitacao.ip + )) + Tramitacao.objects.bulk_create(lista_tramitacao) return tramitacao diff --git a/sapl/protocoloadm/forms.py b/sapl/protocoloadm/forms.py index f69bc9adf..10c5c1c9c 100644 --- a/sapl/protocoloadm/forms.py +++ b/sapl/protocoloadm/forms.py @@ -749,14 +749,25 @@ class TramitacaoAdmForm(ModelForm): def save(self, commit=True): tramitacao = super(TramitacaoAdmForm, self).save(commit) documento = tramitacao.documento + lista_tramitacao = [] for da in documento.anexados.all(): if not da.tramitacaoadministrativo_set.all() \ - or da.tramitacaoadministrativo_set.last() \ - .unidade_tramitacao_destino == tramitacao.unidade_tramitacao_local: - tramitacao_nova = tramitacao - tramitacao_nova.pk = None - tramitacao_nova.documento = da - tramitacao_nova.save() + or da.tramitacaoadministrativo_set.last() \ + .unidade_tramitacao_destino == tramitacao.unidade_tramitacao_local: + lista_tramitacao.append(TramitacaoAdministrativo( + status=tramitacao.status, + documento=da, + data_tramitacao=tramitacao.data_tramitacao, + unidade_tramitacao_local=tramitacao.unidade_tramitacao_local, + data_encaminhamento=tramitacao.data_encaminhamento, + unidade_tramitacao_destino=tramitacao.unidade_tramitacao_destino, + urgente=tramitacao.urgente, + texto=tramitacao.texto, + data_fim_prazo=tramitacao.data_fim_prazo, + user=tramitacao.user, + ip=tramitacao.ip + )) + TramitacaoAdministrativo.objects.bulk_create(lista_tramitacao) return tramitacao