Browse Source

adicionados loggins no app parlamentares

pull/2307/head
Cesar Carvalho 7 years ago
parent
commit
29d4013868
  1. 52
      sapl/parlamentares/views.py

52
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

Loading…
Cancel
Save