From 9c2eb19762e7031812cf93b4118fa2d19cb2562a Mon Sep 17 00:00:00 2001 From: Mariana Mendes Date: Wed, 8 Aug 2018 13:13:13 -0300 Subject: [PATCH] =?UTF-8?q?hotfix=20-=20corrige=20duplica=C3=A7=C3=A3o=20d?= =?UTF-8?q?e=20c=C3=B3digo=20(#2114)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sapl/comissoes/views.py | 21 ++++++++----------- sapl/compilacao/models.py | 43 ++++++++++++++++++++++----------------- 2 files changed, 33 insertions(+), 31 deletions(-) diff --git a/sapl/comissoes/views.py b/sapl/comissoes/views.py index 78e639168..699127409 100644 --- a/sapl/comissoes/views.py +++ b/sapl/comissoes/views.py @@ -24,18 +24,17 @@ from .models import (CargoComissao, Comissao, Composicao, DocumentoAcessorio, Participacao, Periodo, Reuniao, TipoComissao) -def pegar_url_composicao(pk): +def pegar_url(pk): participacao = Participacao.objects.get(id=pk) - comp_pk = participacao.composicao.pk - url = reverse('sapl.comissoes:composicao_detail', kwargs={'pk': comp_pk}) - return url - - -def pegar_url_reuniao(pk): + if participacao: + comp_pk = participacao.composicao.pk + url = reverse('sapl.comissoes:composicao_detail', kwargs={'pk': comp_pk}) + return url documentoacessorio = DocumentoAcessorio.objects.get(id=pk) - r_pk = documentoacessorio.reuniao.pk - url = reverse('sapl.comissoes:reuniao_detail', kwargs={'pk': r_pk}) - return url + if documentoacessorio: + r_pk = documentoacessorio.reuniao.pk + url = reverse('sapl.comissoes:reuniao_detail', kwargs={'pk': r_pk}) + return url CargoCrud = CrudAux.build(CargoComissao, 'cargo_comissao') @@ -53,8 +52,6 @@ class PeriodoComposicaoCrud(CrudAux): class UpdateView(CrudAux.UpdateView): form_class = PeriodoForm - # class ListView(CrudAux.ListView): - class ParticipacaoCrud(MasterDetailCrud): model = Participacao diff --git a/sapl/compilacao/models.py b/sapl/compilacao/models.py index 6ffb738b1..4d7701529 100644 --- a/sapl/compilacao/models.py +++ b/sapl/compilacao/models.py @@ -1557,25 +1557,30 @@ class Dispositivo(BaseModel, TimestampedMixin): irmao.clean() irmao.save() - def get_proximo_nivel_zero(self): - proxima_articulacao = Dispositivo.objects.order_by('ordem').filter( - ordem__gt=self.ordem, - nivel=0, - ta_id=self.ta_id).first() - return proxima_articulacao - - def get_nivel_zero_anterior(self): - anterior_articulacao = Dispositivo.objects.order_by('ordem').filter( - ordem__lt=self.ordem, - nivel=0, - ta_id=self.ta_id).last() - return anterior_articulacao - - def get_niveis_zero(self): - niveis_zero = Dispositivo.objects.order_by('ordem').filter( - nivel=0, - ta_id=self.ta_id) - return niveis_zero + def get_niveis(self): + ## Próximo nível zero: + proxima_articulacao = Dispositivo.objects.order_by('ordem').filter( + ordem__gt=self.ordem, + nivel=0, + ta_id=self.ta_id).first() + if proxima_articulacao: + return proxima_articulacao + + ## Nível zero anterior: + anterior_articulacao = Dispositivo.objects.order_by('ordem').filter( + ordem__lt=self.ordem, + nivel=0, + ta_id=self.ta_id).last() + if anterior_articulacao: + return anterior_articulacao + + ## Nível zero: + niveis_zero = Dispositivo.objects.order_by('ordem').filter( + nivel=0, + ta_id=self.ta_id) + if niveis_zero: + return niveis_zero + # metodo obsoleto, foi acrescentado o campo auto_inserido no modelo def is_relative_auto_insert__obsoleto(self, perfil_pk=None):