Browse Source

Ajusta signals

pull/3354/head
eribeiro 5 years ago
parent
commit
de54ce88fb
  1. 30
      sapl/base/receivers.py
  2. 2
      sapl/base/signals.py
  3. 83
      sapl/materia/views.py
  4. 62
      sapl/protocoloadm/views.py
  5. 2
      sapl/utils.py

30
sapl/base/receivers.py

@ -9,22 +9,36 @@ from django.utils import timezone
from sapl.base.email_utils import do_envia_email_tramitacao
from sapl.base.models import AuditLog
from sapl.base.signals import tramitacao_signal
from sapl.materia.models import Tramitacao
from sapl.protocoloadm.models import TramitacaoAdministrativo
from sapl.utils import get_base_url
@receiver(tramitacao_signal)
@receiver(post_save, sender=Tramitacao)
@receiver(post_save, sender=TramitacaoAdministrativo)
def handle_tramitacao_signal(sender, **kwargs):
tramitacao = kwargs.get("post")
request = kwargs.get("request")
if 'protocoloadm' in str(sender):
doc_mat = tramitacao.documento
tipo = "documento"
elif 'materia' in str(sender):
logger = logging.getLogger(__name__)
tramitacao = kwargs.get('instance')
if isinstance(tramitacao, Tramitacao):
tipo = "materia"
doc_mat = tramitacao.materia
else:
tipo = "documento"
doc_mat = tramitacao.documento
pilha_de_execucao = inspect.stack()
for i in pilha_de_execucao:
if i.function == 'migrate':
return
request = i.frame.f_locals.get('request', None)
if request:
break
if not request:
logger.warning("Objeto request não disponível")
return
do_envia_email_tramitacao(
get_base_url(request),

2
sapl/base/signals.py

@ -8,7 +8,7 @@ from sapl.base.models import Autor, TipoAutor
from sapl.utils import models_with_gr_for_model
tramitacao_signal = django.dispatch.Signal(providing_args=['post', 'request'])
# tramitacao_signal = django.dispatch.Signal(providing_args=['post', 'request'])
def cria_models_tipo_autor(app_config=None, verbosity=2, interactive=True,

83
sapl/materia/views.py

@ -37,7 +37,7 @@ import weasyprint
import sapl
from sapl.base.email_utils import do_envia_email_confirmacao
from sapl.base.models import Autor, CasaLegislativa, AppConfig as BaseAppConfig
from sapl.base.signals import tramitacao_signal
# from sapl.base.signals import tramitacao_signal
from sapl.comissoes.models import Comissao, Participacao, Composicao
from sapl.compilacao.models import STATUS_TA_IMMUTABLE_RESTRICT, STATUS_TA_PRIVATE
from sapl.compilacao.views import IntegracaoTaView
@ -1358,27 +1358,27 @@ class TramitacaoCrud(MasterDetailCrud):
return context
def form_valid(self, form):
self.object = form.save()
username = self.request.user.username
try:
self.logger.debug("user=" + username + ". Tentando enviar Tramitacao (sender={}, post={}, request={})."
.format(Tramitacao, self.object, self.request))
tramitacao_signal.send(sender=Tramitacao,
post=self.object,
request=self.request)
except Exception as e:
msg = _('Tramitação criada, mas e-mail de acompanhamento '
'de matéria não enviado. Há problemas na configuração '
'do e-mail.')
self.logger.warning('user=' + username + '. Tramitação criada, mas e-mail de acompanhamento '
'de matéria não enviado. Há problemas na configuração '
'do e-mail. ' + str(e))
messages.add_message(self.request, messages.WARNING, msg)
return HttpResponseRedirect(self.get_success_url())
return super().form_valid(form)
# def form_valid(self, form):
#
# self.object = form.save()
# username = self.request.user.username
#
# try:
# self.logger.debug("user=" + username + ". Tentando enviar Tramitacao (sender={}, post={}, request={})."
# .format(Tramitacao, self.object, self.request))
# # tramitacao_signal.send(sender=Tramitacao,
# # post=self.object,
# # request=self.request)
# except Exception as e:
# msg = _('Tramitação criada, mas e-mail de acompanhamento '
# 'de matéria não enviado. Há problemas na configuração '
# 'do e-mail.')
# self.logger.warning('user=' + username + '. Tramitação criada, mas e-mail de acompanhamento '
# 'de matéria não enviado. Há problemas na configuração '
# 'do e-mail. ' + str(e))
# 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 = TramitacaoUpdateForm
@ -1397,26 +1397,25 @@ class TramitacaoCrud(MasterDetailCrud):
return initial
def form_valid(self, form):
self.object = form.save()
user = self.request.user
try:
self.logger.debug("user=" + user.username + ". Tentando enviar Tramitacao (sender={}, post={}, request={}"
.format(Tramitacao, self.object, self.request))
tramitacao_signal.send(sender=Tramitacao,
post=self.object,
request=self.request)
except Exception:
msg = _('Tramitação atualizada, mas e-mail de acompanhamento '
'de matéria não enviado. Há problemas na configuração '
'do e-mail.')
self.logger.warning('user=' + user.username + '. 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.WARNING, msg)
return HttpResponseRedirect(self.get_success_url())
return super().form_valid(form)
# def form_valid(self, form):
# self.object = form.save()
# user = self.request.user
# try:
# self.logger.debug("user=" + user.username + ". Tentando enviar Tramitacao (sender={}, post={}, request={}"
# .format(Tramitacao, self.object, self.request))
# tramitacao_signal.send(sender=Tramitacao,
# post=self.object,
# request=self.request)
# except Exception:
# msg = _('Tramitação atualizada, mas e-mail de acompanhamento '
# 'de matéria não enviado. Há problemas na configuração '
# 'do e-mail.')
# self.logger.warning('user=' + user.username + '. 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.WARNING, msg)
# return HttpResponseRedirect(self.get_success_url())
# return super().form_valid(form)
class ListView(MasterDetailCrud.ListView):

62
sapl/protocoloadm/views.py

@ -29,7 +29,7 @@ from django_filters.views import FilterView
import sapl
from sapl.base.email_utils import do_envia_email_confirmacao
from sapl.base.models import Autor, CasaLegislativa, AppConfig
from sapl.base.signals import tramitacao_signal
# from sapl.base.signals import tramitacao_signal
from sapl.comissoes.models import Comissao
from sapl.crud.base import (Crud, CrudAux, MasterDetailCrud, make_pagination,
RP_LIST, RP_DETAIL)
@ -1281,23 +1281,23 @@ class TramitacaoAdmCrud(MasterDetailCrud):
'unidade_tramitacao_local'].widget.attrs['readonly'] = True
return context
def form_valid(self, form):
self.object = form.save()
username = self.request.user.username
try:
tramitacao_signal.send(sender=TramitacaoAdministrativo,
post=self.object,
request=self.request)
except Exception as e:
self.logger.error('user=' + username + '. 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. ' + str(e))
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)
# def form_valid(self, form):
# self.object = form.save()
# # username = self.request.user.username
# # try:
# # tramitacao_signal.send(sender=TramitacaoAdministrativo,
# # post=self.object,
# # request=self.request)
# # except Exception as e:
# # self.logger.error('user=' + username + '. 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. ' + str(e))
# # 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):
form_class = TramitacaoAdmEditForm
@ -1316,19 +1316,19 @@ class TramitacaoAdmCrud(MasterDetailCrud):
def form_valid(self, form):
self.object = form.save()
username = self.request.user.username
try:
tramitacao_signal.send(sender=TramitacaoAdministrativo,
post=self.object,
request=self.request)
except Exception as e:
self.logger.error('user=' + username + '. 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. ' + str(e))
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())
# try:
# tramitacao_signal.send(sender=TramitacaoAdministrativo,
# post=self.object,
# request=self.request)
# except Exception as e:
# self.logger.error('user=' + username + '. 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. ' + str(e))
# 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 ListView(DocumentoAdministrativoMixin, MasterDetailCrud.ListView):

2
sapl/utils.py

@ -1018,7 +1018,7 @@ def google_recaptcha_configured():
def lista_anexados(principal):
from sapl.materia import MateriaLegislativa
from sapl.materia.models import MateriaLegislativa
from sapl.materia.models import Anexada
from sapl.protocoloadm.models import Anexado

Loading…
Cancel
Save