Browse Source

Corrigindo logs (#3199)

* Corrigindo logs

* Corrige log e formatação em ProposicaoCrud

* Update views.py

* Corrigindo erros relatados no PR

Co-authored-by: Vinícius Cantuária <cantuariavc@gmail.com>
frontend_assets
Ulysses Lara 5 years ago
committed by GitHub
parent
commit
ad6d369a75
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      sapl/api/serializers.py
  2. 229
      sapl/materia/views.py
  3. 2
      sapl/norma/forms.py
  4. 2
      sapl/norma/views.py

2
sapl/api/serializers.py

@ -139,7 +139,7 @@ class ParlamentarResumeSerializer(serializers.ModelSerializer):
# Caso não exista filiação com essas condições
except ObjectDoesNotExist:
self.logger.error("user=" + username + ". Parlamentar com (data<={} e data_desfiliacao>={}) "
self.logger.warning("user=" + username + ". Parlamentar com (data<={} e data_desfiliacao>={}) "
"ou (data<={} e data_desfiliacao=Null)) não possui filiação."
.format(legislatura.data_fim, legislatura.data_fim, legislatura.data_fim))
filiacao = 'Não possui filiação'

229
sapl/materia/views.py

@ -736,8 +736,14 @@ class ProposicaoCrud(Crud):
container_field = 'autor__user'
class BaseMixin(Crud.BaseMixin):
list_field_names = ['data_envio', 'data_recebimento', 'descricao',
'tipo', 'conteudo_gerado_related', 'cancelado', ]
list_field_names = [
'data_envio',
'data_recebimento',
'descricao',
'tipo',
'conteudo_gerado_related',
'cancelado'
]
class BaseLocalMixin:
form_class = ProposicaoForm
@ -751,22 +757,23 @@ class ProposicaoCrud(Crud):
def get(self, request, *args, **kwargs):
if not self._action_is_valid(request, *args, **kwargs):
return redirect(reverse('sapl.materia:proposicao_detail',
kwargs={'pk': kwargs['pk']}))
return redirect(reverse('sapl.materia:proposicao_detail', kwargs={'pk': kwargs['pk']}))
return super().get(self, request, *args, **kwargs)
def post(self, request, *args, **kwargs):
if not self._action_is_valid(request, *args, **kwargs):
return redirect(reverse('sapl.materia:proposicao_detail',
kwargs={'pk': kwargs['pk']}))
return redirect(reverse('sapl.materia:proposicao_detail', kwargs={'pk': kwargs['pk']}))
return super().post(self, request, *args, **kwargs)
class DetailView(Crud.DetailView):
layout_key = 'Proposicao'
permission_required = (RP_DETAIL, 'materia.detail_proposicao_enviada',
'materia.detail_proposicao_devolvida',
'materia.detail_proposicao_incorporada')
permission_required = (
RP_DETAIL,
'materia.detail_proposicao_enviada',
'materia.detail_proposicao_devolvida',
'materia.detail_proposicao_incorporada'
)
logger = logging.getLogger(__name__)
@ -785,7 +792,6 @@ class ProposicaoCrud(Crud):
return context
def get(self, request, *args, **kwargs):
action = request.GET.get('action', '')
user = request.user
username = user.username
@ -802,10 +808,8 @@ class ProposicaoCrud(Crud):
msg_error = _('Proposição já foi enviada e recebida.')
elif p.data_envio:
msg_error = _('Proposição já foi enviada.')
elif not p.texto_original and\
not p.texto_articulado.exists():
msg_error = _('Proposição não possui nenhum tipo de '
'Texto associado.')
elif not p.texto_original and not p.texto_articulado.exists():
msg_error = _('Proposição não possui nenhum tipo de Texto associado.')
else:
if p.texto_articulado.exists():
ta = p.texto_articulado.first()
@ -813,8 +817,7 @@ class ProposicaoCrud(Crud):
ta.editing_locked = True
ta.save()
receber_recibo = BaseAppConfig.attr(
'receber_recibo_proposicao')
receber_recibo = BaseAppConfig.attr('receber_recibo_proposicao')
if not receber_recibo:
ta = p.texto_articulado.first()
@ -824,45 +827,39 @@ class ProposicaoCrud(Crud):
p.data_envio = timezone.now()
p.save()
messages.success(request, _(
'Proposição enviada com sucesso.'))
messages.success(request, _('Proposição enviada com sucesso.'))
try:
self.logger.debug("user=" + username + ". Tentando obter número do objeto MateriaLegislativa com "
"atributos tipo={} e ano={}."
.format(p.tipo.tipo_conteudo_related, p.ano))
self.logger.debug("User={}. Tentando obter número do objeto MateriaLegislativa "
"com atributos tipo={} e ano={}."
.format(username, p.tipo.tipo_conteudo_related, p.ano))
if p.numero_materia_futuro:
numero = p.numero_materia_futuro
else:
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)))
messages.success(request, _("{}: nº {} de {} <br>Atenção! Este número é apenas um provável "
"número que pode não corresponder com a realidade"
.format(p.tipo, numero, p.ano)))
except ValueError as e:
self.logger.error(
"user=" + username + "." + str(e))
self.logger.warning("User=" + username + ". " + str(e))
pass
except AttributeError as e:
self.logger.error(
"user=" + username + "." + str(e))
self.logger.warning("User=" + username + ". " + str(e))
pass
except TypeError as e:
self.logger.error(
"user=" + username + "." + str(e))
self.logger.warning("User=" + username + ". " + str(e))
pass
elif action == 'return':
if not p.data_envio:
self.logger.error(
"user=" + username + ". Proposição (numero={}) ainda não foi enviada.".format(p.numero_proposicao))
self.logger.warning("User={}. Proposição (numero={}) ainda não foi enviada."
.format(username, p.numero_proposicao))
msg_error = _('Proposição ainda não foi enviada.')
elif p.data_recebimento:
self.logger.error("user=" + username + ". Proposição (numero={}) já foi recebida, não é "
"possível retorná-la.".format(p.numero_proposicao))
msg_error = _('Proposição já foi recebida, não é '
'possível retorná-la.')
self.logger.warning("User={}. Proposição (numero={}) já foi recebida, "
"não é possível retorná-la.".format(username, p.numero_proposicao))
msg_error = _('Proposição já foi recebida, não é possível retorná-la.')
else:
p.data_envio = None
p.save()
@ -871,27 +868,24 @@ class ProposicaoCrud(Crud):
ta.privacidade = STATUS_TA_PRIVATE
ta.editing_locked = False
ta.save()
self.logger.info(
"user=" + username + ". Proposição (numero={}) Retornada com sucesso.".format(p.numero_proposicao))
messages.success(request, _(
'Proposição Retornada com sucesso.'))
self.logger.info("User={}. Proposição (numero={}) Retornada com sucesso."
.format(username, p.numero_proposicao))
messages.success(request, _('Proposição Retornada com sucesso.'))
if msg_error:
messages.error(request, msg_error)
# retornar redirecionando para limpar a variavel action
return redirect(reverse('sapl.materia:proposicao_detail',
kwargs={'pk': kwargs['pk']}))
return redirect(reverse('sapl.materia:proposicao_detail', kwargs={'pk': kwargs['pk']}))
def dispatch(self, request, *args, **kwargs):
username = request.user.username
try:
self.logger.debug(
"user=" + username + ". Tentando obter objeto Proposicao com pk={}".format(kwargs['pk']))
self.logger.debug("User={}. Tentando obter objeto Proposicao com pk={}".format(username, kwargs['pk']))
p = Proposicao.objects.get(id=kwargs['pk'])
except Exception as e:
self.logger.error(
"user=" + username + ". Erro ao obter proposicao com pk={}. Retornando 404. ".format(kwargs['pk']) + str(e))
self.logger.warning("User={}. Erro ao obter proposicao com pk={}. Retornando 404. {}"
.format(username, kwargs['pk'], str(e)))
raise Http404()
if not self.has_permission():
@ -901,47 +895,38 @@ class ProposicaoCrud(Crud):
if not p.data_envio and not p.data_devolucao:
raise Http404()
if p.data_devolucao and not request.user.has_perm(
'materia.detail_proposicao_devolvida'):
if p.data_devolucao and not request.user.has_perm('materia.detail_proposicao_devolvida'):
raise Http404()
if p.data_envio and not p.data_recebimento\
and not request.user.has_perm(
'materia.detail_proposicao_enviada'):
if p.data_envio and not p.data_recebimento \
and not request.user.has_perm('materia.detail_proposicao_enviada'):
raise Http404()
if p.data_envio and p.data_recebimento\
and not request.user.has_perm(
'materia.detail_proposicao_incorporada'):
if p.data_envio and p.data_recebimento \
and not request.user.has_perm('materia.detail_proposicao_incorporada'):
raise Http404()
return super(PermissionRequiredMixin, self).dispatch(
request, *args, **kwargs)
return super(PermissionRequiredMixin, self).dispatch(request, *args, **kwargs)
class DeleteView(BaseLocalMixin, Crud.DeleteView):
logger = logging.getLogger(__name__)
def _action_is_valid(self, request, *args, **kwargs):
proposicao = Proposicao.objects.filter(
id=kwargs['pk']).values_list(
'data_envio', 'data_recebimento')
proposicao = Proposicao.objects.filter(id=kwargs['pk']).values_list('data_envio', 'data_recebimento')
username = request.user.username
if proposicao:
if proposicao[0][0] and proposicao[0][1]:
self.logger.error("user=" + username + ". Proposição (id={}) já foi enviada e recebida."
"Não pode mais ser excluida.".format(kwargs['pk']))
msg = _('Proposição já foi enviada e recebida.'
'Não pode mais ser excluida.')
self.logger.warning("User={}. Proposição (id={}) já foi enviada e recebida."
"Não pode mais ser excluida.".format(username, kwargs['pk']))
msg = _('Proposição já foi enviada e recebida. Não pode mais ser excluida.')
elif proposicao[0][0] and not proposicao[0][1]:
self.logger.error("user=" + username + ". Proposição (id={}) já foi enviada mas ainda não recebida "
"pelo protocolo. Use a opção Recuperar Proposição "
"para depois excluí-la.".format(kwargs['pk']))
msg = _('Proposição já foi enviada mas ainda não recebida '
'pelo protocolo. Use a opção Recuperar Proposição '
'para depois excluí-la.')
self.logger.warning("""\
User={}. Proposição (id={}) foi enviada, mas ainda não recebida pelo protocolo. \
Use a opção Recuperar Proposição para depois excluí-la.""".format(username, kwargs['pk']))
msg = _("Proposição já foi enviada mas ainda não recebida pelo protocolo. "
"Use a opção Recuperar Proposição para depois excluí-la.")
if proposicao[0][0] or proposicao[0][1]:
messages.error(request, msg)
@ -949,20 +934,18 @@ class ProposicaoCrud(Crud):
return True
class UpdateView(BaseLocalMixin, Crud.UpdateView):
logger = logging.getLogger(__name__)
form_class = ProposicaoForm
def form_valid(self, form):
tz = timezone.get_current_timezone()
objeto_antigo = Proposicao.objects.get(
pk=self.kwargs['pk']
)
objeto_antigo = Proposicao.objects.get(pk=self.kwargs['pk'])
dict_objeto_antigo = objeto_antigo.__dict__
tipo_texto = self.request.POST.get('tipo_texto', '')
if tipo_texto=='D' and objeto_antigo.texto_articulado.exists() or tipo_texto=='T' and not objeto_antigo.texto_articulado.exists():
if tipo_texto == 'D' and objeto_antigo.texto_articulado.exists()\
or tipo_texto == 'T' and not objeto_antigo.texto_articulado.exists():
self.object.user = self.request.user
self.object.ip = get_client_ip(self.request)
self.object.ultima_edicao = tz.localize(datetime.now())
@ -972,7 +955,10 @@ class ProposicaoCrud(Crud):
dict_objeto_novo = self.object.__dict__
atributos = [
'tipo_id', 'descricao', 'observacao', 'texto_original',
'tipo_id',
'descricao',
'observacao',
'texto_original',
'materia_de_vinculo_id'
]
@ -987,27 +973,22 @@ class ProposicaoCrud(Crud):
return super().form_valid(form)
def _action_is_valid(self, request, *args, **kwargs):
proposicao = Proposicao.objects.filter(
id=kwargs['pk']).values_list(
'data_envio', 'data_recebimento')
proposicao = Proposicao.objects.filter(id=kwargs['pk']).values_list('data_envio', 'data_recebimento')
username = request.user.username
if proposicao:
msg = ''
if proposicao[0][0] and proposicao[0][1]:
self.logger.error('user=' + username + '. Proposição (id={}) já foi enviada e recebida.'
'Não pode mais ser editada'.format(kwargs['pk']))
msg = _('Proposição já foi enviada e recebida.'
'Não pode mais ser editada')
self.logger.warning('User={}. Proposição (id={}) já foi enviada e recebida. '
'Não pode mais ser editada'.format(username, kwargs['pk']))
msg = _('Proposição já foi enviada e recebida. Não pode mais ser editada')
elif proposicao[0][0] and not proposicao[0][1]:
self.logger.error('user=' + username + '. Proposição (id={}) já foi enviada mas ainda não recebida '
'pelo protocolo. Use a opção Recuperar Proposição '
'para voltar para edição.'.format(kwargs['pk']))
msg = _('Proposição já foi enviada mas ainda não recebida '
'pelo protocolo. Use a opção Recuperar Proposição '
'para voltar para edição.')
self.logger.warning("""\
User={}. Proposição (id={}) foi enviada, mas ainda não recebida pelo protocolo. \
Use a opção Recuperar Proposição para voltar para edição.""".format(username, kwargs['pk']))
msg = _("Proposição já foi enviada, mas ainda não recebida pelo protocolo. "
"Use a opção Recuperar Proposição para voltar para edição.")
if proposicao[0][0] or proposicao[0][1]:
messages.error(request, msg)
@ -1015,22 +996,17 @@ class ProposicaoCrud(Crud):
return True
def get_success_url(self):
tipo_texto = self.request.POST.get('tipo_texto', '')
username = self.request.user.username
if tipo_texto == 'T':
messages.info(self.request,
_('Sempre que uma Proposição é inclusa ou '
'alterada e a opção "Texto Articulado " for '
'marcada, você será redirecionado para a '
'edição do Texto Eletrônico.'))
self.logger.debug('user=' + username + '. Sempre que uma Proposição é inclusa ou '
'alterada e a opção "Texto Articulado " for '
'marcada, você será redirecionado para a '
'edição do Texto Eletrônico.')
return reverse('sapl.materia:proposicao_ta',
kwargs={'pk': self.object.pk})
messages.info(self.request, _("""\
Sempre que uma Proposição é inclusa ou alterada e a opção "Texto Articulado " for marcada, \
você será redirecionado para a edição do Texto Eletrônico."""))
self.logger.debug("""\
User={}. Sempre que uma Proposição é inclusa ou alterada e a opção "Texto Articulado" for marcada, \
você será redirecionado para a edição do Texto Eletrônico.""".format(username))
return reverse('sapl.materia:proposicao_ta', kwargs={'pk': self.object.pk})
else:
return Crud.UpdateView.get_success_url(self)
@ -1061,43 +1037,38 @@ class ProposicaoCrud(Crud):
username = self.request.user.username
if tipo_texto == 'T':
messages.info(self.request,
_('Sempre que uma Proposição é inclusa ou '
'alterada e a opção "Texto Articulado " for '
'marcada, você será redirecionado para o '
'Texto Eletrônico. Use a opção "Editar Texto" '
'para construir seu texto.'))
self.logger.debug('user=' + username + '. Sempre que uma Proposição é inclusa ou '
'alterada e a opção "Texto Articulado " for '
'marcada, você será redirecionado para o '
'Texto Eletrônico. Use a opção "Editar Texto" '
'para construir seu texto.')
return reverse('sapl.materia:proposicao_ta',
kwargs={'pk': self.object.pk})
messages.info(self.request, _("""\
Sempre que uma Proposição é inclusa ou alterada e a opção "Texto Articulado" for marcada, \
você será redirecionado para o Texto Eletrônico. \
Use a opção "Editar Texto" para construir seu texto."""))
self.logger.debug("""\
User={}. Sempre que uma Proposição é inclusa ou alterada e a opção "Texto Articulado" for marcada, \
você será redirecionado para o Texto Eletrônico. \
Use a opção "Editar Texto" para construir seu texto.""".format(username))
return reverse('sapl.materia:proposicao_ta', kwargs={'pk': self.object.pk})
else:
return Crud.CreateView.get_success_url(self)
class ListView(Crud.ListView):
ordering = ['-data_envio', 'descricao']
ordering = [
'-data_envio',
'descricao'
]
def get_rows(self, object_list):
for obj in object_list:
if obj.data_recebimento is None:
obj.data_recebimento = 'Não recebida'\
if obj.data_envio else 'Não enviada'
obj.data_recebimento = 'Não recebida' if obj.data_envio else 'Não enviada'
else:
obj.data_recebimento = timezone.localtime(
obj.data_recebimento)
obj.data_recebimento = formats.date_format(
obj.data_recebimento, "DATETIME_FORMAT")
obj.data_recebimento = timezone.localtime(obj.data_recebimento)
obj.data_recebimento = formats.date_format(obj.data_recebimento, "DATETIME_FORMAT")
if obj.data_envio is None:
obj.data_envio = 'Em elaboração...'
else:
obj.data_envio = timezone.localtime(obj.data_envio)
obj.data_envio = formats.date_format(
obj.data_envio, "DATETIME_FORMAT")
obj.data_envio = formats.date_format(obj.data_envio, "DATETIME_FORMAT")
return [self._as_row(obj) for obj in object_list]
@ -2757,11 +2728,11 @@ def create_zip_docacessorios(materia):
def get_zip_docacessorios(request, pk):
logger = logging.getLogger(__name__)
username = request.user.username
username = 'Usuário anônimo' if request.user.is_anonymous else request.user.username
materia = get_object_or_404(MateriaLegislativa, pk=pk)
try:
external_name, zipfilename = create_zip_docacessorios(materia)
logger.info("user= {}. Gerou o zip compilado de documento acessorios")
logger.info("user= {}. Gerou o zip compilado de documento acessorios".format(username))
except FileNotFoundError:
logger.error("user= {}.Não há arquivos cadastrados".format(username))
msg=_('Não há arquivos cadastrados nesses documentos acessórios.')
@ -2822,10 +2793,10 @@ def create_pdf_docacessorios(materia):
def get_pdf_docacessorios(request, pk):
materia = get_object_or_404(MateriaLegislativa, pk=pk)
logger = logging.getLogger(__name__)
username = request.user.username
username = 'Usuário anônimo' if request.user.is_anonymous else request.user.username
try:
external_name, pdffilename = create_pdf_docacessorios(materia)
logger.info("user= {}. Gerou o pdf compilado de documento acessorios")
logger.info("user= {}. Gerou o pdf compilado de documento acessorios".format(username))
except FileNotFoundError:
logger.error("user= {}.Não há arquivos cadastrados".format(username))
msg=_('Não há arquivos cadastrados nesses documentos acessórios.')

2
sapl/norma/forms.py

@ -163,7 +163,7 @@ class NormaJuridicaForm(FileFieldCheckMixin, ModelForm):
numero=cleaned_data['numero'],
tipo=cleaned_data['tipo']).exists()
if norma:
self.logger.error("Já existe uma norma de mesmo Tipo ({}), Ano ({}) "
self.logger.warning("Já existe uma norma de mesmo Tipo ({}), Ano ({}) "
"e Número ({}) no sistema."
.format(cleaned_data['tipo'], cleaned_data['ano'], cleaned_data['numero']))
raise ValidationError("Já existe uma norma de mesmo Tipo, Ano "

2
sapl/norma/views.py

@ -329,7 +329,7 @@ def recuperar_norma(request):
response = JsonResponse({'ementa': norma.ementa,
'id': norma.id})
except ObjectDoesNotExist:
logger.error('user=' + username + '. NormaJuridica buscada (tipo={}, ano={}, numero={}) não existe. '
logger.warning('user=' + username + '. NormaJuridica buscada (tipo={}, ano={}, numero={}) não existe. '
'Definida com ementa vazia e id 0.'.format(tipo, ano, numero))
response = JsonResponse({'ementa': '', 'id': 0})

Loading…
Cancel
Save