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
dbbf928efe
  1. 6
      sapl/materia/views.py
  2. 29
      sapl/protocoloadm/receivers.py
  3. 3
      sapl/protocoloadm/signals.py
  4. 17
      sapl/protocoloadm/views.py

6
sapl/materia/views.py

@ -1114,7 +1114,7 @@ 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.')
messages.add_message(self.request, messages.ERROR, msg)
messages.add_message(self.request, messages.WARNING, msg)
return HttpResponseRedirect(self.get_success_url())
return super().form_valid(form)
@ -1141,7 +1141,7 @@ 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.')
messages.add_message(self.request, messages.ERROR, msg)
messages.add_message(self.request, messages.WARNING, msg)
return HttpResponseRedirect(self.get_success_url())
return super().form_valid(form)
@ -1878,7 +1878,7 @@ class PrimeiraTramitacaoEmLoteView(PermissionRequiredMixin, FilterView):
msg = _('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)
messages.add_message(self.request, messages.WARNING, msg)
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,
DocumentoAdministrativo, StatusTramitacaoAdministrativo,
TipoDocumentoAdministrativo, TramitacaoAdministrativo)
from .signals import tramitacao_signal
TipoDocumentoAdministrativoCrud = CrudAux.build(
TipoDocumentoAdministrativo, '')
@ -821,6 +822,22 @@ class TramitacaoAdmCrud(MasterDetailCrud):
'unidade_tramitacao_local'].widget.attrs['disabled'] = True
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. Há problemas na configuração '
'do e-mail.')
messages.add_message(self.request, messages.WARNING, msg)
return HttpResponseRedirect(self.get_success_url())
return super().form_valid(form)
class UpdateView(MasterDetailCrud.UpdateView):
form_class = TramitacaoAdmEditForm

Loading…
Cancel
Save