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