diff --git a/sapl/base/signals.py b/sapl/base/signals.py index ab3bd6d0a..c4841d030 100644 --- a/sapl/base/signals.py +++ b/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): diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index 18390e8e4..591d3324d 100644 --- a/sapl/materia/forms.py +++ b/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 diff --git a/sapl/materia/views.py b/sapl/materia/views.py index 4c61c0609..e2ede10c2 100644 --- a/sapl/materia/views.py +++ b/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): diff --git a/sapl/protocoloadm/forms.py b/sapl/protocoloadm/forms.py index 343e2a316..3a93e0649 100644 --- a/sapl/protocoloadm/forms.py +++ b/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 diff --git a/sapl/protocoloadm/views.py b/sapl/protocoloadm/views.py index 0f411be1c..35cb9ba2b 100755 --- a/sapl/protocoloadm/views.py +++ b/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): diff --git a/sapl/utils.py b/sapl/utils.py index 91a2f6d7f..7e57b027e 100644 --- a/sapl/utils.py +++ b/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