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 # Caso não exista filiação com essas condições
except ObjectDoesNotExist: 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." "ou (data<={} e data_desfiliacao=Null)) não possui filiação."
.format(legislatura.data_fim, legislatura.data_fim, legislatura.data_fim)) .format(legislatura.data_fim, legislatura.data_fim, legislatura.data_fim))
filiacao = 'Não possui filiação' filiacao = 'Não possui filiação'

229
sapl/materia/views.py

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

Loading…
Cancel
Save