From bca953e30f1860b9544cc714099e282810e5d885 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Rodrigues?= Date: Thu, 14 Mar 2019 11:28:52 -0300 Subject: [PATCH] Fix #2544 (#2605) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix #2544 - Validação acompanhamento matéria * Fix #2544 - Validação acompanhamento documento --- sapl/materia/forms.py | 10 ++--- sapl/materia/views.py | 39 +++++++++++++++++-- sapl/protocoloadm/forms.py | 10 ++--- sapl/protocoloadm/views.py | 39 +++++++++++++++++-- .../materia/acompanhamento_materia.html | 1 - .../acompanhamento_documento.html | 1 - 6 files changed, 78 insertions(+), 22 deletions(-) diff --git a/sapl/materia/forms.py b/sapl/materia/forms.py index f56e5fac5..4e2f2fba3 100644 --- a/sapl/materia/forms.py +++ b/sapl/materia/forms.py @@ -340,16 +340,14 @@ class AcompanhamentoMateriaForm(ModelForm): def __init__(self, *args, **kwargs): - row1 = to_row([('email', 10)]) - - row1.append( - Column(form_actions(label='Cadastrar'), css_class='col-md-2') - ) + row1 = to_row([('email', 12)]) self.helper = SaplFormHelper() self.helper.layout = Layout( Fieldset( - _('Acompanhamento de Matéria por e-mail'), row1 + _('Acompanhamento de Matéria por e-mail'), + row1, + form_actions(label='Cadastrar') ) ) super(AcompanhamentoMateriaForm, self).__init__(*args, **kwargs) diff --git a/sapl/materia/views.py b/sapl/materia/views.py index 65a402f79..66bcb1beb 100644 --- a/sapl/materia/views.py +++ b/sapl/materia/views.py @@ -1930,19 +1930,50 @@ class AcompanhamentoMateriaView(CreateView): confirmar o acompanhamento desta matéria.') messages.add_message(request, messages.SUCCESS, msg) + # Se o elemento existir e o email não foi confirmado: + # gerar novo hash e reenviar mensagem de email + elif not acompanhar[0].confirmado: + acompanhar = acompanhar[0] + acompanhar.hash = hash_txt + acompanhar.save() + + base_url = get_base_url(request) + + destinatario = AcompanhamentoMateria.objects.get( + materia=materia, + email=email, + confirmado=False + ) + + casa = CasaLegislativa.objects.first() + + do_envia_email_confirmacao(base_url, + casa, + "materia", + materia, + destinatario) + + self.logger.debug('user=' + usuario.username + '. Foi enviado um e-mail de confirmação. Confira sua caixa \ + de mensagens e clique no link que nós enviamos para \ + confirmar o acompanhamento desta matéria.') + + msg = _('Foi enviado um e-mail de confirmação. Confira sua caixa \ + de mensagens e clique no link que nós enviamos para \ + confirmar o acompanhamento desta matéria.') + messages.add_message(request, messages.SUCCESS, msg) + # Caso esse Acompanhamento já exista # avisa ao usuário que essa matéria já está sendo acompanhada else: self.logger.debug("user=" + usuario.username + ". Este e-mail já está acompanhando essa matéria.") msg = _('Este e-mail já está acompanhando essa matéria.') - messages.add_message(request, messages.INFO, msg) + messages.add_message(request, messages.ERROR, msg) return self.render_to_response( {'form': form, - 'materia': materia, - 'error': _('Essa matéria já está\ - sendo acompanhada por este e-mail.')}) + 'materia': materia + }) return HttpResponseRedirect(self.get_success_url()) else: return self.render_to_response( diff --git a/sapl/protocoloadm/forms.py b/sapl/protocoloadm/forms.py index 0e62fb877..915f62445 100644 --- a/sapl/protocoloadm/forms.py +++ b/sapl/protocoloadm/forms.py @@ -52,16 +52,14 @@ class AcompanhamentoDocumentoForm(ModelForm): def __init__(self, *args, **kwargs): - row1 = to_row([('email', 10)]) - - row1.append( - Column(form_actions(label='Cadastrar'), css_class='col-md-2') - ) + row1 = to_row([('email', 12)]) self.helper = SaplFormHelper() self.helper.layout = Layout( Fieldset( - _('Acompanhamento de Documento por e-mail'), row1 + _('Acompanhamento de Documento por e-mail'), + row1, + form_actions(label='Cadastrar') ) ) super(AcompanhamentoDocumentoForm, self).__init__(*args, **kwargs) diff --git a/sapl/protocoloadm/views.py b/sapl/protocoloadm/views.py index 3a0b08656..c232ce265 100755 --- a/sapl/protocoloadm/views.py +++ b/sapl/protocoloadm/views.py @@ -243,7 +243,7 @@ class AcompanhamentoDocumentoView(CreateView): "documento", documento, destinatario) - self.logger.info('user={} .Foi enviado um e-mail de confirmação. Confira sua caixa ' + self.logger.info('user={}. Foi enviado um e-mail de confirmação. Confira sua caixa ' 'de mensagens e clique no link que nós enviamos para ' 'confirmar o acompanhamento deste documento.'.format(usuario.username)) msg = _('Foi enviado um e-mail de confirmação. Confira sua caixa \ @@ -251,19 +251,50 @@ class AcompanhamentoDocumentoView(CreateView): confirmar o acompanhamento deste documento.') messages.add_message(request, messages.SUCCESS, msg) + # Se o elemento existir e o email não foi confirmado: + # gerar novo hash e reenviar mensagem de email + elif not acompanhar[0].confirmado: + acompanhar = acompanhar[0] + acompanhar.hash = hash_txt + acompanhar.save() + + base_url = get_base_url(request) + + destinatario = AcompanhamentoDocumento.objects.get( + documento=documento, + email=email, + confirmado=False + ) + + casa = CasaLegislativa.objects.first() + + do_envia_email_confirmacao(base_url, + casa, + "documento", + documento, + destinatario) + + self.logger.info('user={}. Foi enviado um e-mail de confirmação. Confira sua caixa \ + de mensagens e clique no link que nós enviamos para \ + confirmar o acompanhamento deste documento.'.format(usuario.username)) + + msg = _('Foi enviado um e-mail de confirmação. Confira sua caixa \ + de mensagens e clique no link que nós enviamos para \ + confirmar o acompanhamento deste documento.') + messages.add_message(request, messages.SUCCESS, msg) + # Caso esse Acompanhamento já exista # avisa ao usuário que esse documento já está sendo acompanhado else: self.logger.info('user=' + request.user.username + '. Este e-mail já está acompanhando esse documento (pk={}).'.format(pk)) msg = _('Este e-mail já está acompanhando esse documento.') - messages.add_message(request, messages.INFO, msg) + messages.add_message(request, messages.ERROR, msg) return self.render_to_response( {'form': form, 'documento': documento, - 'error': _('Esse documento já está\ - sendo acompanhada por este e-mail.')}) + }) return HttpResponseRedirect(self.get_success_url()) else: return self.render_to_response( diff --git a/sapl/templates/materia/acompanhamento_materia.html b/sapl/templates/materia/acompanhamento_materia.html index d22e90e61..90c5929bf 100644 --- a/sapl/templates/materia/acompanhamento_materia.html +++ b/sapl/templates/materia/acompanhamento_materia.html @@ -16,6 +16,5 @@
Ementa: {{materia.ementa|safe}}
-{% if error %}
{{ error }}
{% endif %} {% crispy form %} {% endblock %} diff --git a/sapl/templates/protocoloadm/acompanhamento_documento.html b/sapl/templates/protocoloadm/acompanhamento_documento.html index b6526cc52..81a12dd75 100644 --- a/sapl/templates/protocoloadm/acompanhamento_documento.html +++ b/sapl/templates/protocoloadm/acompanhamento_documento.html @@ -16,6 +16,5 @@
Assunto: {{documento.assunto|safe}}
-{% if error %}
{{ error }}
{% endif %} {% crispy form %} {% endblock %}