Browse Source

impl test de conexão

pull/2354/head
Leandro Roberto 7 years ago
parent
commit
46fa04b65d
  1. 6
      sapl/base/email_utils.py
  2. 15
      sapl/base/views.py
  3. 3
      sapl/context_processors.py
  4. 4
      sapl/materia/views.py
  5. 6
      sapl/protocoloadm/views.py
  6. 1
      sapl/settings.py
  7. 16
      sapl/utils.py

6
sapl/base/email_utils.py

@ -1,7 +1,6 @@
from datetime import datetime as dt
import logging
from django.conf import settings
from django.core.mail import EmailMultiAlternatives, get_connection, send_mail
from django.core.urlresolvers import reverse
from django.template import Context, loader
@ -11,6 +10,7 @@ from sapl.base.models import CasaLegislativa
from sapl.materia.models import AcompanhamentoMateria
from sapl.protocoloadm.models import AcompanhamentoDocumento
from sapl.settings import EMAIL_SEND_USER
from sapl.utils import mail_service_configured
def load_email_templates(templates, context={}):
@ -114,7 +114,7 @@ def do_envia_email_confirmacao(base_url, casa, tipo, doc_mat, destinatario):
# Envia email de confirmacao para atualizações de tramitação
#
if not settings.EMAIL_HOST:
if not mail_service_configured():
logger = logging.getLogger(__name__)
logger.warning(_('Servidor de email não configurado.'))
return
@ -208,7 +208,7 @@ def do_envia_email_tramitacao(base_url, tipo, doc_mat, status, unidade_destino):
# Envia email de tramitacao para usuarios cadastrados
#
if not settings.EMAIL_HOST:
if not mail_service_configured():
logger = logging.getLogger(__name__)
logger.warning(_('Servidor de email não configurado.'))
return

15
sapl/base/views.py

@ -33,7 +33,7 @@ from sapl.materia.models import (Autoria, MateriaLegislativa,
from sapl.sessao.models import (PresencaOrdemDia, SessaoPlenaria,
SessaoPlenariaPresenca)
from sapl.utils import (parlamentares_ativos,
show_results_filter_set)
show_results_filter_set, mail_service_configured)
from .forms import (AlterarSenhaForm, CasaLegislativaForm,
ConfiguracoesAppForm, RelatorioAtasFilterSet,
@ -171,15 +171,14 @@ class AutorCrud(CrudAux):
url_reverse = reverse('sapl.base:autor_detail',
kwargs={'pk': pk_autor})
if not settings.EMAIL_HOST:
if not mail_service_configured():
self.logger.warning(_('Registro de Autor sem envio de email. '
'Servidor de email não configurado.'))
return url_reverse
try:
self.logger.debug('user=' + username +
'. Enviando email na edição de Autores.')
self.logger.debug('user={}. Enviando email na edição '
'de Autores.'.format(username))
kwargs = {}
user = self.object.user
@ -207,8 +206,8 @@ class AutorCrud(CrudAux):
send_mail(assunto, mensagem, remetente, destinatario,
fail_silently=False)
except Exception as e:
self.logger.error(
'user=' + username + '. Erro no envio de email na edição de Autores. ' + str(e))
self.logger.error('user={}. Erro no envio de email na edição de'
' Autores. {}'.format(username, str(e)))
return url_reverse
@ -233,7 +232,7 @@ class AutorCrud(CrudAux):
url_reverse = reverse('sapl.base:autor_detail',
kwargs={'pk': pk_autor})
if not settings.EMAIL_HOST:
if not mail_service_configured():
self.logger.warning(_('Registro de Autor sem envio de email. '
'Servidor de email não configurado.'))
return url_reverse

3
sapl/context_processors.py

@ -4,6 +4,7 @@ from django.conf import settings
from django.utils.translation import ugettext_lazy as _
from sapl.base.views import get_casalegislativa
from sapl.utils import mail_service_configured as mail_service_configured_utils
def parliament_info(request):
@ -16,7 +17,7 @@ def parliament_info(request):
def mail_service_configured(request):
if not settings.EMAIL_HOST:
if not mail_service_configured_utils():
logger = logging.getLogger(__name__)
logger.warning(_('Servidor de email não configurado.'))
return {'mail_service_configured': False}

4
sapl/materia/views.py

@ -48,7 +48,7 @@ from sapl.protocoloadm.models import Protocolo
from sapl.utils import (YES_NO_CHOICES, autor_label, autor_modal, SEPARADOR_HASH_PROPOSICAO,
gerar_hash_arquivo, get_base_url,
get_mime_type_from_file_extension, montar_row_autor,
show_results_filter_set)
show_results_filter_set, mail_service_configured)
from .forms import (AcessorioEmLoteFilterSet, AcompanhamentoMateriaForm,
AdicionarVariasAutoriasFilterSet, DespachoInicialForm,
@ -1822,7 +1822,7 @@ class AcompanhamentoMateriaView(CreateView):
return ''.join(choice(s) for i in range(choice([6, 7])))
def get(self, request, *args, **kwargs):
if not settings.EMAIL_HOST:
if not mail_service_configured():
self.logger.warning(_('Servidor de email não configurado.'))
messages.error(request, _('Serviço de Acompanhamento de '
'Matérias não foi configurado'))

6
sapl/protocoloadm/views.py

@ -33,7 +33,7 @@ from sapl.parlamentares.models import Legislatura, Parlamentar
from sapl.protocoloadm.models import Protocolo
from sapl.utils import (create_barcode, get_base_url, get_client_ip,
get_mime_type_from_file_extension,
show_results_filter_set)
show_results_filter_set, mail_service_configured)
from .forms import (AcompanhamentoDocumentoForm, AnularProcoloAdmForm,
DocumentoAcessorioAdministrativoForm,
@ -186,7 +186,7 @@ class AcompanhamentoDocumentoView(CreateView):
return ''.join(choice(s) for i in range(choice([6, 7])))
def get(self, request, *args, **kwargs):
if not settings.EMAIL_HOST:
if not mail_service_configured():
self.logger.warning(_('Servidor de email não configurado.'))
messages.error(request, _('Serviço de Acompanhamento de '
'Documentos não foi configurado'))
@ -200,7 +200,7 @@ class AcompanhamentoDocumentoView(CreateView):
'documento': documento})
def post(self, request, *args, **kwargs):
if not settings.EMAIL_HOST:
if not mail_service_configured():
self.logger.warning(_('Servidor de email não configurado.'))
messages.error(request, _('Serviço de Acompanhamento de '
'Documentos não foi configurado'))

1
sapl/settings.py

@ -225,6 +225,7 @@ EMAIL_USE_TLS = config('EMAIL_USE_TLS', cast=bool, default=True)
EMAIL_SEND_USER = config('EMAIL_SEND_USER', cast=str, default='')
DEFAULT_FROM_EMAIL = config('DEFAULT_FROM_EMAIL', cast=str, default='')
SERVER_EMAIL = config('SERVER_EMAIL', cast=str, default='')
EMAIL_RUNNING = None
MAX_DOC_UPLOAD_SIZE = 60 * 1024 * 1024 # 60MB
MAX_IMAGE_UPLOAD_SIZE = 2 * 1024 * 1024 # 2MB

16
sapl/utils.py

@ -15,6 +15,7 @@ from django.contrib import admin
from django.contrib.contenttypes.fields import (GenericForeignKey, GenericRel,
GenericRelation)
from django.core.exceptions import ValidationError
from django.core.mail import get_connection
from django.db.models import Q
from django.utils import six, timezone
from django.utils.translation import ugettext_lazy as _
@ -28,11 +29,13 @@ from unipath.path import Path
from sapl.crispy_layout_mixin import SaplFormLayout, form_actions, to_row
# (26/10/2018): O separador foi mudador de '/' para 'K'
# por conta dos leitores de códigos de barra, que trocavam
# a '/' por '&' ou ';'
SEPARADOR_HASH_PROPOSICAO = 'K'
def pil_image(source, exif_orientation=False, **options):
return source_generators.pil_image(source, exif_orientation, **options)
@ -767,3 +770,16 @@ def RemoveTag(texto):
def remover_acentos(string):
return unicodedata.normalize('NFKD', string).encode('ASCII', 'ignore').decode()
def mail_service_configured(request=None):
result = True
try:
connection = get_connection()
connection.open()
except Exception as e:
result = False
print(e)
finally:
connection.close()
return result
Loading…
Cancel
Save