Browse Source

Muda mensagens de ERROR para WARNING in quando da erro no envio do email na tramitação

pull/2257/head
tapumar@gmail.com 7 years ago
parent
commit
0e3d020253
  1. 10
      sapl/materia/views.py
  2. 29
      sapl/protocoloadm/receivers.py
  3. 3
      sapl/protocoloadm/signals.py
  4. 17
      sapl/protocoloadm/views.py

10
sapl/materia/views.py

@ -1114,7 +1114,7 @@ class TramitacaoCrud(MasterDetailCrud):
msg = _('Tramitação criada, mas e-mail de acompanhamento ' msg = _('Tramitação criada, mas e-mail de acompanhamento '
'de matéria não enviado. Há problemas na configuração ' 'de matéria não enviado. Há problemas na configuração '
'do e-mail.') 'do e-mail.')
messages.add_message(self.request, messages.ERROR, msg) messages.add_message(self.request, messages.WARNING, msg)
return HttpResponseRedirect(self.get_success_url()) return HttpResponseRedirect(self.get_success_url())
return super().form_valid(form) return super().form_valid(form)
@ -1141,7 +1141,7 @@ class TramitacaoCrud(MasterDetailCrud):
msg = _('Tramitação atualizada, mas e-mail de acompanhamento ' msg = _('Tramitação atualizada, mas e-mail de acompanhamento '
'de matéria não enviado. Há problemas na configuração ' 'de matéria não enviado. Há problemas na configuração '
'do e-mail.') 'do e-mail.')
messages.add_message(self.request, messages.ERROR, msg) messages.add_message(self.request, messages.WARNING, msg)
return HttpResponseRedirect(self.get_success_url()) return HttpResponseRedirect(self.get_success_url())
return super().form_valid(form) return super().form_valid(form)
@ -1876,9 +1876,9 @@ class PrimeiraTramitacaoEmLoteView(PermissionRequiredMixin, FilterView):
flag_error = True flag_error = True
if flag_error: if flag_error:
msg = _('Tramitação criada, mas e-mail de acompanhamento ' msg = _('Tramitação criada, mas e-mail de acompanhamento '
'de matéria não enviado. Há problemas na configuração ' 'de matéria não enviado. A não configuração do servidor de e-mail '
'do e-mail.') 'impede o envio de aviso de tramitação')
messages.add_message(self.request, messages.ERROR, msg) messages.add_message(self.request, messages.WARNING, msg)
status = StatusTramitacao.objects.get(id=request.POST['status']) status = StatusTramitacao.objects.get(id=request.POST['status'])

29
sapl/protocoloadm/receivers.py

@ -0,0 +1,29 @@
from django.db.models.signals import post_delete, post_save
from django.dispatch import receiver
from .models import TramitacaoAdministrativo
from .signals import tramitacao_signal
from sapl.utils import get_base_url
from .email_utils import do_envia_email_tramitacao
@receiver(tramitacao_signal)
def handle_tramitacao_signal(sender, **kwargs):
tramitacao = kwargs.get("post")
request = kwargs.get("request")
documento = tramitacao.documento
do_envia_email_tramitacao(
get_base_url(request),
documento,
tramitacao.status,
tramitacao.unidade_tramitacao_destino)
@receiver(post_delete, sender=Tramitacao)
def status_tramitacao_documento(sender, instance, **kwargs):
if instance.status.indicador == 'F':
documento = instance.documento
documento.tramitacao = True
documento.save()

3
sapl/protocoloadm/signals.py

@ -0,0 +1,3 @@
import django.dispatch
tramitacao_signal = django.dispatch.Signal(providing_args=['post', 'request'])

17
sapl/protocoloadm/views.py

@ -43,6 +43,7 @@ from .forms import (AcompanhamentoDocumentoForm, AnularProcoloAdmForm,
from .models import (AcompanhamentoDocumento, DocumentoAcessorioAdministrativo, from .models import (AcompanhamentoDocumento, DocumentoAcessorioAdministrativo,
DocumentoAdministrativo, StatusTramitacaoAdministrativo, DocumentoAdministrativo, StatusTramitacaoAdministrativo,
TipoDocumentoAdministrativo, TramitacaoAdministrativo) TipoDocumentoAdministrativo, TramitacaoAdministrativo)
from .signals import tramitacao_signal
TipoDocumentoAdministrativoCrud = CrudAux.build( TipoDocumentoAdministrativoCrud = CrudAux.build(
TipoDocumentoAdministrativo, '') TipoDocumentoAdministrativo, '')
@ -821,6 +822,22 @@ class TramitacaoAdmCrud(MasterDetailCrud):
'unidade_tramitacao_local'].widget.attrs['disabled'] = True 'unidade_tramitacao_local'].widget.attrs['disabled'] = True
return context return context
def form_valid(self, form):
self.object = form.save()
try:
tramitacao_signal.send(sender=Tramitacao,
post=self.object,
request=self.request)
except Exception as e:
# TODO log error
msg = _('Tramitação criada, mas e-mail de acompanhamento '
'de documento não enviado. A não configuração do'
' servidor de e-mail impede o envio de aviso de tramitação')
messages.add_message(self.request, messages.WARNING, msg)
return HttpResponseRedirect(self.get_success_url())
return super().form_valid(form)
class UpdateView(MasterDetailCrud.UpdateView): class UpdateView(MasterDetailCrud.UpdateView):
form_class = TramitacaoAdmEditForm form_class = TramitacaoAdmEditForm

Loading…
Cancel
Save