diff --git a/sapl/protocoloadm/forms.py b/sapl/protocoloadm/forms.py index f833e890f..f69bc9adf 100644 --- a/sapl/protocoloadm/forms.py +++ b/sapl/protocoloadm/forms.py @@ -7,7 +7,7 @@ from crispy_forms.layout import HTML, Button, Column, Fieldset, Layout, Div from django import forms from django.core.exceptions import (MultipleObjectsReturned, ObjectDoesNotExist, ValidationError) -from django.db import models +from django.db import models, transaction from django.db.models import Max from django.forms import ModelForm from django.utils import timezone @@ -745,6 +745,21 @@ class TramitacaoAdmForm(ModelForm): return self.cleaned_data + @transaction.atomic + def save(self, commit=True): + tramitacao = super(TramitacaoAdmForm, self).save(commit) + documento = tramitacao.documento + 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() + + return tramitacao + class TramitacaoAdmEditForm(TramitacaoAdmForm): diff --git a/sapl/protocoloadm/views.py b/sapl/protocoloadm/views.py index bc8ae0bd4..730f86097 100755 --- a/sapl/protocoloadm/views.py +++ b/sapl/protocoloadm/views.py @@ -1103,6 +1103,10 @@ class TramitacaoAdmCrud(MasterDetailCrud): form_class = TramitacaoAdmForm logger = logging.getLogger(__name__) + def get_success_url(self): + return reverse('sapl.protocoloadm:tramitacaoadministrativo_list', kwargs={ + 'pk': self.kwargs['pk']}) + def get_initial(self): initial = super(CreateView, self).get_initial() local = DocumentoAdministrativo.objects.get(