Browse Source

Refatora signals

pull/3354/head
eribeiro 5 years ago
parent
commit
ada53f0fdf
  1. 3
      sapl/base/signals.py
  2. 6
      sapl/materia/forms.py
  3. 43
      sapl/materia/views.py
  4. 5
      sapl/protocoloadm/forms.py
  5. 36
      sapl/protocoloadm/views.py
  6. 14
      sapl/utils.py

3
sapl/base/signals.py

@ -8,9 +8,6 @@ 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'])
def cria_models_tipo_autor(app_config=None, verbosity=2, interactive=True,
using=DEFAULT_DB_ALIAS, **kwargs):

6
sapl/materia/forms.py

@ -35,7 +35,7 @@ from sapl.norma.models import (LegislacaoCitada, NormaJuridica,
from sapl.parlamentares.models import Legislatura, Partido
from sapl.protocoloadm.models import (DocumentoAdministrativo,
Protocolo)
from sapl.utils import (autor_label, autor_modal,
from sapl.utils import (autor_label, autor_modal, timing,
ChoiceWithoutValidationField,
choice_anos_com_materias, FileFieldCheckMixin,
FilterOverridesMetaMixin, gerar_hash_arquivo,
@ -548,6 +548,7 @@ class TramitacaoForm(ModelForm):
return cleaned_data
@timing
@transaction.atomic
def save(self, commit=True):
tramitacao = super().save(commit)
@ -584,6 +585,7 @@ class TramitacaoForm(ModelForm):
ip=tramitacao.ip,
ultima_edicao=tramitacao.ultima_edicao
))
## TODO: BULK UPDATE não envia Signal para Tramitacao
Tramitacao.objects.bulk_create(lista_tramitacao)
# Atualiza status 'em_tramitacao'
MateriaLegislativa.objects.bulk_update(materias_anexadas, ['em_tramitacao'])
@ -715,6 +717,7 @@ class TramitacaoUpdateForm(TramitacaoForm):
ma.em_tramitacao = False if nova_tram_principal.status.indicador == "F" else True
ma.save()
## TODO: refatorar?
return nova_tram_principal
@ -1814,6 +1817,7 @@ class TramitacaoEmLoteForm(ModelForm):
ip=tramitacao.ip,
ultima_edicao=tramitacao.ultima_edicao
))
## TODO: BULK UPDATE não envia Signal para Tramitacao
Tramitacao.objects.bulk_create(lista_tramitacao)
return tramitacao

43
sapl/materia/views.py

@ -37,7 +37,6 @@ 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.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,28 +1357,6 @@ 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)
class UpdateView(MasterDetailCrud.UpdateView):
form_class = TramitacaoUpdateForm
logger = logging.getLogger(__name__)
@ -1397,26 +1374,6 @@ 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)
class ListView(MasterDetailCrud.ListView):
def get_queryset(self):

5
sapl/protocoloadm/forms.py

@ -757,7 +757,7 @@ class TramitacaoAdmForm(ModelForm):
@transaction.atomic
def save(self, commit=True):
tramitacao = super(TramitacaoAdmForm, self).save(commit)
tramitacao = super().save(commit)
documento = tramitacao.documento
documento.tramitacao = False if tramitacao.status.indicador == "F" else True
documento.save()
@ -786,6 +786,7 @@ class TramitacaoAdmForm(ModelForm):
ip=tramitacao.ip,
ultima_edicao=tramitacao.ultima_edicao
))
## TODO: BULK UPDATE não envia Signal para Tramitacao
TramitacaoAdministrativo.objects.bulk_create(lista_tramitacao)
return tramitacao
@ -906,6 +907,7 @@ class TramitacaoAdmEditForm(TramitacaoAdmForm):
da.tramitacao = False if nova_tram_principal.status.indicador == "F" else True
da.save()
## TODO: refatorar?
return nova_tram_principal
@ -1676,6 +1678,7 @@ class TramitacaoEmLoteAdmForm(ModelForm):
ip=tramitacao.ip,
ultima_edicao=tramitacao.ultima_edicao
))
## TODO: BULK UPDATE não envia Signal para Tramitacao
TramitacaoAdministrativo.objects.bulk_create(lista_tramitacao)
return tramitacao

36
sapl/protocoloadm/views.py

@ -29,7 +29,6 @@ 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.comissoes.models import Comissao
from sapl.crud.base import (Crud, CrudAux, MasterDetailCrud, make_pagination,
RP_LIST, RP_DETAIL)
@ -1281,24 +1280,6 @@ 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)
class UpdateView(MasterDetailCrud.UpdateView):
form_class = TramitacaoAdmEditForm
logger = logging.getLogger(__name__)
@ -1313,23 +1294,6 @@ class TramitacaoAdmCrud(MasterDetailCrud):
return initial
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 ListView(DocumentoAdministrativoMixin, MasterDetailCrud.ListView):

14
sapl/utils.py

@ -8,6 +8,7 @@ import platform
import re
import requests
import tempfile
from time import time
from unicodedata import normalize as unicodedata_normalize
import unicodedata
@ -1017,6 +1018,19 @@ def google_recaptcha_configured():
return not AppConfig.attr('google_recaptcha_site_key') == ''
def timing(f):
@wraps(f)
def wrap(*args, **kw):
logger = logging.getLogger(__name__)
ts = time()
result = f(*args, **kw)
te = time()
logger.info('funcao:%r args:[%r, %r] took: %2.4f sec' % \
(f.__name__, args, kw, te-ts))
return result
return wrap
@timing
def lista_anexados(principal):
from sapl.materia.models import MateriaLegislativa
from sapl.materia.models import Anexada

Loading…
Cancel
Save