Browse Source

loggers na view do app materia

pull/2307/head
Cesar Carvalho 7 years ago
parent
commit
889f0d9ba5
  1. 83
      sapl/materia/views.py

83
sapl/materia/views.py

@ -7,7 +7,7 @@ from crispy_forms.layout import HTML
from django.contrib import messages
from django.contrib.auth.decorators import permission_required
from django.contrib.auth.mixins import PermissionRequiredMixin
from django.core.exceptions import ObjectDoesNotExist
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
from django.core.urlresolvers import reverse
from django.db.models import Max
from django.http import HttpResponse, JsonResponse
@ -21,6 +21,7 @@ from django.views.generic.base import RedirectView
from django.views.generic.edit import FormView
from django_filters.views import FilterView
import weasyprint
import logging
import sapl
from sapl.base.models import Autor, CasaLegislativa
@ -92,6 +93,8 @@ def autores_ja_adicionados(materia_pk):
def proposicao_texto(request, pk):
logger = logging.getLogger(__name__)
logger.info('- Tentando obter objeto Proposicao.')
proposicao = Proposicao.objects.get(pk=pk)
if proposicao.texto_original:
@ -113,6 +116,7 @@ def proposicao_texto(request, pk):
response['Content-Disposition'] = (
'inline; filename="%s"' % arquivo.name.split('/')[-1])
return response
logger.error('- Objeto Proposicao não encontrado.')
raise Http404
@ -171,21 +175,26 @@ class CriarProtocoloMateriaView(CreateView):
'pk': materia.pk})
def get_context_data(self, **kwargs):
logger = logging.getLogger(__name__)
context = super(
CriarProtocoloMateriaView, self).get_context_data(**kwargs)
try:
logger.info("- Tentando obter objeto Protocolo.")
protocolo = Protocolo.objects.get(pk=self.kwargs['pk'])
except ObjectDoesNotExist:
logger.error("- Objeto Protocolo não encontrado.")
raise Http404()
numero = 1
try:
logger.info("- Tentando obter materias do último ano.")
materias_ano = MateriaLegislativa.objects.filter(
ano=protocolo.ano,
tipo=protocolo.tipo_materia).latest('numero')
numero = materias_ano.numero + 1
except ObjectDoesNotExist:
logger.error("- Não foram encontradas matérias no último ano. Definido 1 como padrão.")
pass # numero ficou com o valor padrão 1 acima
context['form'].fields['tipo'].initial = protocolo.tipo_materia
@ -198,11 +207,14 @@ class CriarProtocoloMateriaView(CreateView):
return context
def form_valid(self, form):
logger = logging.getLogger(__name__)
materia = form.save()
try:
logger.info("- Tentando obter objeto Procolo.")
protocolo = Protocolo.objects.get(pk=self.kwargs['pk'])
except ObjectDoesNotExist:
logger.error('- Objeto Protocolo não encontrado.')
raise Http404()
if protocolo.autor:
@ -286,14 +298,17 @@ class ProposicaoTaView(IntegracaoTaView):
@permission_required('materia.detail_materialegislativa')
def recuperar_materia(request):
logger = logging.getLogger(__name__)
tipo = TipoMateriaLegislativa.objects.get(pk=request.GET['tipo'])
ano = request.GET.get('ano', '')
numeracao = None
try:
logger.info("Tentando obter numeração da matéria.")
numeracao = sapl.base.models.AppConfig.objects.last(
).sequencia_numeracao
except AttributeError:
except AttributeError as e:
logger.error("- Excessão " + str(e) + ". Numeracao da matéria definida como None.")
pass
if tipo.sequencia_numeracao:
@ -521,18 +536,21 @@ class RetornarProposicao(UpdateView):
permission_required = ('materia.detail_proposicao_enviada', )
def dispatch(self, request, *args, **kwargs):
logger = logging.getLogger(__name__)
try:
logger.info("Tentando obter objeto Proposicao.")
p = Proposicao.objects.get(id=kwargs['pk'])
except:
logger.error("Objeto Proposicao não encontrado.")
raise Http404()
if p.autor.user != request.user:
messages.error(
logger.error("'Usuário sem acesso a esta opção.'")
messages.error(
request,
'Usuário sem acesso a esta opção.' %
request.user)
return redirect('/')
return redirect('/')
return super(RetornarProposicao, self).dispatch(
request, *args, **kwargs)
@ -554,12 +572,14 @@ class ConfirmarProposicao(PermissionRequiredForAppCrudMixin, UpdateView):
return self.object.results['url']
def get_object(self, queryset=None):
logger = logging.getLogger(__name__)
try:
"""
Não deve haver acesso na rotina de confirmação a proposições:
recebidas -> data_recebimento != None
não enviadas -> data_envio == None
"""
logger.info("- Tentando obter objeto Proposicao.")
proposicao = Proposicao.objects.get(pk=self.kwargs['pk'],
data_envio__isnull=False,
data_recebimento__isnull=True)
@ -576,9 +596,11 @@ class ConfirmarProposicao(PermissionRequiredForAppCrudMixin, UpdateView):
if hasher == 'P%s/%s' % (self.kwargs['hash'], proposicao.pk):
self.object = proposicao
except:
logger.error("- Objeto Proposicao não encontrado.")
raise Http404()
if not self.object:
logger.error("- Objeto vazio.")
raise Http404()
return self.object
@ -704,6 +726,7 @@ class ProposicaoCrud(Crud):
return context
def get(self, request, *args, **kwargs):
logger = logging.getLogger(__name__)
action = request.GET.get('action', '')
if not action:
@ -736,17 +759,21 @@ class ProposicaoCrud(Crud):
messages.success(request, _(
'Proposição enviada com sucesso.'))
try:
logger.info("- Tentando obter objeto MateriaLegislativa.")
numero = MateriaLegislativa.objects.filter(tipo=p.tipo.tipo_conteudo_related,
ano=p.ano).last().numero + 1
messages.success(request, _(
'%s : nº %s de %s <br>Atenção! Este número é apenas um provável '
'número que pode não corresponder com a realidade'
% (p.tipo, numero, p.ano)))
except ValueError:
except ValueError as e:
logger.error("- " + str(e))
pass
except AttributeError:
except AttributeError as e:
logger.error("- " + str(e))
pass
except TypeError:
except TypeError as e:
logger.error("- " + str(e))
pass
elif action == 'return':
@ -774,10 +801,12 @@ class ProposicaoCrud(Crud):
kwargs={'pk': kwargs['pk']}))
def dispatch(self, request, *args, **kwargs):
logger = logging.getLogger(__name__)
try:
logger.info("- Tentando obter objeto Proposicao")
p = Proposicao.objects.get(id=kwargs['pk'])
except:
logger.error("- Erro ao obter proposicao. Retornando 404.")
raise Http404()
if not self.has_permission():
@ -974,15 +1003,19 @@ class RelatoriaCrud(MasterDetailCrud):
form_class = RelatoriaForm
def get_context_data(self, **kwargs):
logger = logging.getLogger(__name__)
context = super().get_context_data(**kwargs)
try:
logger.info("- Tentando obter objeto Comissao.")
comissao = Comissao.objects.get(
pk=context['form'].initial['comissao'])
except:
logger.error("- Objeto Comissão não encontrado.")
pass
else:
logger.info("- Objeto Comissao obtido com sucesso.")
composicao = comissao.composicao_set.order_by(
'-periodo__data_inicio').first()
participacao = Participacao.objects.filter(
@ -1019,14 +1052,18 @@ class RelatoriaCrud(MasterDetailCrud):
form_class = RelatoriaForm
def get_context_data(self, **kwargs):
logger = logging.getLogger(__name__)
context = super().get_context_data(**kwargs)
try:
logger.info("- Tentando obter objeto Comissao.")
comissao = Comissao.objects.get(
pk=context['form'].initial['comissao'])
except ObjectDoesNotExist:
logger.error("- Objeto Comissão não encontrado.")
pass
else:
logger.info("- Objeto Comissao obtido com sucesso.")
composicao = comissao.composicao_set.order_by(
'-periodo__data_inicio').first()
participacao = Participacao.objects.filter(
@ -1097,6 +1134,8 @@ class TramitacaoCrud(MasterDetailCrud):
return context
def form_valid(self, form):
logger = logging.getLogger(__name__)
self.object = form.save()
if form.instance.status.indicador == 'F':
@ -1106,6 +1145,7 @@ class TramitacaoCrud(MasterDetailCrud):
form.instance.materia.save()
try:
logger.info("Tentando enviar Tramitacao.")
tramitacao_signal.send(sender=Tramitacao,
post=self.object,
request=self.request)
@ -1114,6 +1154,9 @@ class TramitacaoCrud(MasterDetailCrud):
msg = _('Tramitação criada, mas e-mail de acompanhamento '
'de matéria não enviado. Há problemas na configuração '
'do e-mail.')
logger.error('- Tramitação criada, mas e-mail de acompanhamento '
'de matéria não enviado. Há problemas na configuração '
'do e-mail.')
messages.add_message(self.request, messages.ERROR, msg)
return HttpResponseRedirect(self.get_success_url())
return super().form_valid(form)
@ -1124,6 +1167,7 @@ class TramitacaoCrud(MasterDetailCrud):
layout_key = 'TramitacaoUpdate'
def form_valid(self, form):
logger = logging.getLogger(__name__)
self.object = form.save()
if form.instance.status.indicador == 'F':
@ -1133,6 +1177,7 @@ class TramitacaoCrud(MasterDetailCrud):
form.instance.materia.save()
try:
logger.info("Tentando enviar Tramitacao.")
tramitacao_signal.send(sender=Tramitacao,
post=self.object,
request=self.request)
@ -1141,6 +1186,9 @@ class TramitacaoCrud(MasterDetailCrud):
msg = _('Tramitação atualizada, mas e-mail de acompanhamento '
'de matéria não enviado. Há problemas na configuração '
'do e-mail.')
logger.error('- Tramitação atualizada, mas e-mail de acompanhamento '
'de matéria não enviado. Há problemas na configuração '
'do e-mail.')
messages.add_message(self.request, messages.ERROR, msg)
return HttpResponseRedirect(self.get_success_url())
return super().form_valid(form)
@ -1516,20 +1564,24 @@ class AcompanhamentoConfirmarView(TemplateView):
kwargs={'pk': self.kwargs['pk']})
def get(self, request, *args, **kwargs):
logger = logging.getLogger(__name__)
materia_id = kwargs['pk']
hash_txt = request.GET.get('hash_txt', '')
try:
logger.info("- Tentando obter objeto AcompanhamentoMateria.")
acompanhar = AcompanhamentoMateria.objects.get(
materia_id=materia_id,
hash=hash_txt)
except ObjectDoesNotExist:
logger.error("- Objeto AcompanhamentoMateria não encontrado.")
raise Http404()
# except MultipleObjectsReturned:
except MultipleObjectsReturned as e:
# A melhor solução deve ser permitir que a exceção
# (MultipleObjectsReturned) seja lançada e vá para o log,
# pois só poderá ser causada por um erro de desenvolvimente
logger.error("- " + str(e))
pass
acompanhar.confirmado = True
acompanhar.save()
@ -1545,13 +1597,16 @@ class AcompanhamentoExcluirView(TemplateView):
kwargs={'pk': self.kwargs['pk']})
def get(self, request, *args, **kwargs):
logger = logging.getLogger(__name__)
materia_id = kwargs['pk']
hash_txt = request.GET.get('hash_txt', '')
try:
logger.info("- Tentando obter objeto AcompanhamentoMateria.")
AcompanhamentoMateria.objects.get(materia_id=materia_id,
hash=hash_txt).delete()
except ObjectDoesNotExist:
logger.error("- Objeto AcompanhamentoMateria não encontrado.")
pass
return HttpResponseRedirect(self.get_success_url())
@ -1814,6 +1869,7 @@ class PrimeiraTramitacaoEmLoteView(PermissionRequiredMixin, FilterView):
def post(self, request, *args, **kwargs):
logger = logging.getLogger(__name__)
marcadas = request.POST.getlist('materia_id')
tz = timezone.get_current_timezone()
@ -1869,10 +1925,14 @@ class PrimeiraTramitacaoEmLoteView(PermissionRequiredMixin, FilterView):
)
t.save()
try:
logger.info("Tentando enviar tramitação.")
tramitacao_signal.send(sender=Tramitacao,
post=t,
request=self.request)
except Exception:
logger.error('Tramitação criada, mas e-mail de acompanhamento '
'de matéria não enviado. Há problemas na configuração '
'do e-mail.')
flag_error = True
if flag_error:
msg = _('Tramitação criada, mas e-mail de acompanhamento '
@ -1890,6 +1950,7 @@ class PrimeiraTramitacaoEmLoteView(PermissionRequiredMixin, FilterView):
materia.save()
msg = _('Tramitação completa.')
logger.info('Tramitação completa.')
messages.add_message(request, messages.SUCCESS, msg)
return self.get(request, self.kwargs)

Loading…
Cancel
Save