From 75731bf8462d3aeb53cbce52f72540797e376bb4 Mon Sep 17 00:00:00 2001 From: Eliseu Egewarth Date: Tue, 8 Aug 2017 10:03:33 -0300 Subject: [PATCH] Fix #1342 Signed-off-by: Eliseu Egewarth --- sapl/protocoloadm/forms.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/sapl/protocoloadm/forms.py b/sapl/protocoloadm/forms.py index c8880960c..637c262f5 100644 --- a/sapl/protocoloadm/forms.py +++ b/sapl/protocoloadm/forms.py @@ -12,7 +12,7 @@ from django.utils.translation import ugettext_lazy as _ from sapl.base.models import Autor from sapl.crispy_layout_mixin import form_actions, to_row -from sapl.materia.models import TipoMateriaLegislativa, UnidadeTramitacao +from sapl.materia.models import MateriaLegislativa, TipoMateriaLegislativa, UnidadeTramitacao from sapl.utils import (RANGE_ANOS, AnoNumeroOrderingFilter, RangeWidgetOverride, autor_label, autor_modal) @@ -233,7 +233,20 @@ class AnularProcoloAdmForm(ModelForm): except ObjectDoesNotExist: raise forms.ValidationError( _("Protocolo %s/%s não existe" % (numero, ano))) - + exists = False + documentos_vinculados = [] + if protocolo.tipo_materia: + documentos_vinculados = MateriaLegislativa.objects.filter( + numero_protocolo=protocolo.numero, ano=protocolo.ano) + elif protocolo.tipo_documento: + documentos_vinculados = protocolo.documentoadministrativo_set.all( + ).order_by('-ano', '-numero') + + exists = documentos_vinculados.exists() + if exists: + raise forms.ValidationError( + _("Protocolo %s/%s não pode ser removido pois existem" + "documentos vinculados a ele." % (numero, ano))) class Meta: model = Protocolo fields = ['numero',