From 29d40138681305b8cff960fefb436d994a9f398a Mon Sep 17 00:00:00 2001 From: Cesar Carvalho Date: Mon, 15 Oct 2018 15:36:18 -0300 Subject: [PATCH] adicionados loggins no app parlamentares --- sapl/parlamentares/views.py | 52 ++++++++++++++++++++++++++++++++++--- 1 file changed, 49 insertions(+), 3 deletions(-) diff --git a/sapl/parlamentares/views.py b/sapl/parlamentares/views.py index ad4a8f5e5..514023c2a 100755 --- a/sapl/parlamentares/views.py +++ b/sapl/parlamentares/views.py @@ -1,4 +1,5 @@ import json +import logging from datetime import datetime from django.contrib import messages @@ -267,11 +268,15 @@ def parlamentares_frente_selected(request): """ :return: Lista com o id dos parlamentares em uma frente """ + logger = logging.getLogger(__name__) try: + logger.info("- Tentando objet objeto Frente.") frente = Frente.objects.get(id=int(request.GET['frente_id'])) except ObjectDoesNotExist: + logger.error("- Frente buscada não existe. Retornada lista vazia.") lista_parlamentar_id = [] else: + logger.info("- Frente encontrada com sucesso.") lista_parlamentar_id = frente.parlamentares.all().values_list( 'id', flat=True) return JsonResponse({'id_list': list(lista_parlamentar_id)}) @@ -356,10 +361,13 @@ class LegislaturaCrud(CrudAux): form_class = LegislaturaForm def get_initial(self): + logger = logging.getLogger(__name__) try: + logger.error("- Tentando obter última legislatura.") ultima_legislatura = Legislatura.objects.latest('numero') numero = ultima_legislatura.numero + 1 except Legislatura.DoesNotExist: + logger.error("- Legislatura não encontrada. Número definido como 1.") numero = 1 return {'numero': numero} @@ -457,9 +465,12 @@ class ParlamentarCrud(Crud): return super().get(request, *args, **kwargs) def take_legislatura_id(self): + logger = logging.getLogger(__name__) try: + logger.info("- Tentando obter id da legislatura.") return int(self.request.GET['pk']) except: + logger.error("- Legislatura não possui ID. Buscando em todas as entradas.") legislaturas = Legislatura.objects.all() for l in legislaturas: if l.atual(): @@ -469,6 +480,7 @@ class ParlamentarCrud(Crud): return -1 def get_queryset(self): + logger = logging.getLogger(__name__) queryset = super().get_queryset() legislatura_id = self.take_legislatura_id() # Pelo menos uma casa legislativa criou uma @@ -479,11 +491,14 @@ class ParlamentarCrud(Crud): mandato_titular=F('mandato__titular')) else: try: + logger.info("- Tentando obter o mais recente registro do objeto Legislatura.") l = Legislatura.objects.all().order_by( '-data_inicio').first() except ObjectDoesNotExist: + logger.error("- Objeto não encontrado. Retornando todos os registros.") return Legislatura.objects.all() else: + logger.info("- Objeto encontrado com sucesso.") if l is None: return Legislatura.objects.all() return queryset.filter(mandato__legislatura_id=l).annotate( @@ -495,6 +510,7 @@ class ParlamentarCrud(Crud): def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) + logger = logging.getLogger(__name__) # Adiciona legislatura para filtrar parlamentares legislaturas = Legislatura.objects.all().order_by('-numero') @@ -520,6 +536,7 @@ class ParlamentarCrud(Crud): # da legislatura e data de desfiliação deve nula, ou maior, # ou igual a data de fim da legislatura try: + logger.info("- Tentando obter filiação do parlamentar.") filiacao = parlamentar.filiacao_set.get(Q( data__lte=legislatura.data_fim, data_desfiliacao__gte=legislatura.data_fim) | Q( @@ -528,17 +545,20 @@ class ParlamentarCrud(Crud): # Caso não exista filiação com essas condições except ObjectDoesNotExist: + logger.error("- Parlamentar não possui filiação.") row[1] = ('Não possui filiação', None, None) # Caso exista mais de uma filiação nesse intervalo # Entretanto, NÃO DEVE OCORRER except MultipleObjectsReturned: + logger.error("- O Parlamentar possui duas filiações conflitantes") row[1] = ( 'O Parlamentar possui duas filiações conflitantes', None) # Caso encontre UMA filiação nessas condições else: + logger.info("- Filiação encontrada com sucesso.") row[1] = (filiacao.partido.sigla, None, None) return context @@ -566,13 +586,16 @@ class ParlamentarMateriasView(FormView): @xframe_options_exempt def get(self, request, *args, **kwargs): + logger = logging.getLogger(__name__) parlamentar_pk = kwargs['pk'] try: + logger.info("- Tentando obter autor da matéria.") autor = Autor.objects.get( content_type=ContentType.objects.get_for_model(Parlamentar), object_id=parlamentar_pk) except ObjectDoesNotExist: + logger.error("- Este Parlamentar não é autor de matéria.") mensagem = _('Este Parlamentar não é autor de matéria.') messages.add_message(request, messages.ERROR, mensagem) return HttpResponseRedirect( @@ -693,6 +716,7 @@ def altera_field_mesa(request): operação (Legislatura/Sessão/Inclusão/Remoção), atualizando os campos após cada alteração """ + logger = logging.getLogger(__name__) legislatura = request.GET['legislatura'] sessoes = SessaoLegislativa.objects.filter( legislatura=legislatura).order_by('-data_inicio') @@ -710,8 +734,10 @@ def altera_field_mesa(request): else: year = timezone.now().year try: + logger.info("- Tentando obter id da sessão.") sessao_selecionada = sessoes.get(data_inicio__year=year).id except ObjectDoesNotExist: + logger.error("- Id não encontrado. Selecionado o ID da primeira sessão.") sessao_selecionada = sessoes.first().id # Atualiza os componentes da view após a mudança @@ -751,7 +777,7 @@ def insere_parlamentar_composicao(request): Essa função lida com qualquer operação de inserção na composição da Mesa Diretora """ - + logger = logging.getLogger(__name__) if request.user.has_perm( '%s.add_%s' % ( AppConfig.label, ComposicaoMesa._meta.model_name)): @@ -759,19 +785,24 @@ def insere_parlamentar_composicao(request): composicao = ComposicaoMesa() try: + logger.info("- Tentando obter SessaoLegislativa correspondente.") composicao.sessao_legislativa = SessaoLegislativa.objects.get( id=int(request.POST['sessao'])) except MultiValueDictKeyError: + logger.error(" 'MultiValueDictKeyError', nenhuma sessão foi inserida!") return JsonResponse({'msg': ('Nenhuma sessão foi inserida!', 0)}) try: + logger.info("- Tentando obter Parlamentar correspondente.") composicao.parlamentar = Parlamentar.objects.get( id=int(request.POST['parlamentar'])) except MultiValueDictKeyError: + logger.error(" 'MultiValueDictKeyError', nenhum parlamentar foi inserido!") return JsonResponse({ 'msg': ('Nenhum parlamentar foi inserido!', 0)}) try: + logger.info("- Tentando obter CargoMesa correspondente.") composicao.cargo = CargoMesa.objects.get( id=int(request.POST['cargo'])) parlamentar_ja_inserido = ComposicaoMesa.objects.filter( @@ -784,11 +815,14 @@ def insere_parlamentar_composicao(request): composicao.save() except MultiValueDictKeyError: + logger.error("- 'MultiValueDictKeyError', nenhum cargo foi inserido!") return JsonResponse({'msg': ('Nenhum cargo foi inserido!', 0)}) + logger.info("- Parlamentar inserido com sucesso!") return JsonResponse({'msg': ('Parlamentar inserido com sucesso!', 1)}) else: + logger.error("- Você não tem permissão para esta operação!") return JsonResponse( {'msg': ('Você não tem permissão para esta operação!', 0)}) @@ -798,26 +832,30 @@ def remove_parlamentar_composicao(request): Essa função lida com qualquer operação de remoção na composição da Mesa Diretora """ - + logger = logging.getLogger(__name__) if request.POST and request.user.has_perm( '%s.delete_%s' % ( AppConfig.label, ComposicaoMesa._meta.model_name)): if 'composicao_mesa' in request.POST: try: + logger.info("- Tentando obter ComposicaoMesa correspondente.") composicao = ComposicaoMesa.objects.get( id=request.POST['composicao_mesa']) except ObjectDoesNotExist: + logger.error("- ComposicaoMesa não encontrada, portanto não pode ser removida.") return JsonResponse( {'msg': ( 'Composição da Mesa não pôde ser removida!', 0)}) composicao.delete() + logger.info("- Parlamentar excluido com sucesso!") return JsonResponse( {'msg': ( 'Parlamentar excluido com sucesso!', 1)}) else: + logger.info("- Nenhum parlamentar escolhido para ser excluído.") return JsonResponse( {'msg': ( 'Selecione algum parlamentar para ser excluido!', 0)}) @@ -833,7 +871,9 @@ def partido_parlamentar_sessao_legislativa(sessao, parlamentar): # A data de filiacao deve ser menor que a data de fim # da sessao legislativa e data de desfiliação deve nula, ou maior, # ou igual a data de fim da sessao + logger = logging.getLogger(__name__) try: + logger.info("- Tentando obter filiação correspondente.") filiacao = parlamentar.filiacao_set.get(Q( data__lte=sessao.data_fim, data_desfiliacao__gte=sessao.data_fim) | Q( @@ -842,15 +882,18 @@ def partido_parlamentar_sessao_legislativa(sessao, parlamentar): # Caso não exista filiação com essas condições except ObjectDoesNotExist: + logger.error("- Filiação não encontrada.") return '' # Caso exista mais de uma filiação nesse intervalo # Entretanto, NÃO DEVE OCORRER except MultipleObjectsReturned: + logger.error("- O Parlamentar possui duas filiações conflitantes.") return 'O Parlamentar possui duas filiações conflitantes' # Caso encontre UMA filiação nessas condições else: + logger.info("- Filiação encontrada com sucesso.") return filiacao.partido.sigla @@ -860,7 +903,7 @@ def altera_field_mesa_public_view(request): da Mesa Diretora para usuários anônimos, atualizando os campos após cada alteração """ - + logger = logging.getLogger(__name__) legislatura = request.GET['legislatura'] sessoes = SessaoLegislativa.objects.filter( legislatura=legislatura).order_by('-data_inicio') @@ -877,8 +920,11 @@ def altera_field_mesa_public_view(request): else: try: year = timezone.now().year + logger.info("- Tentando obter sessões correspondentes.") sessao_selecionada = sessoes.get(data_inicio__year=year).id except ObjectDoesNotExist as e: + logger.error("- Sessões não encontradas com aquelas correspondencias. " + "Selecionado o id da primeira sessão.") sessao_selecionada = sessoes.first().id # Atualiza os componentes da view após a mudança