From 9de1c6ed21d15bc1dc422975de8e68238d6bd78c Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Mon, 21 May 2018 22:29:38 +0200 Subject: [PATCH 4/4] handle rejection of incoming mails (to be rebased) --- welco/sources/mail/utils.py | 13 ++++++++++--- welco/sources/mail/views.py | 9 ++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/welco/sources/mail/utils.py b/welco/sources/mail/utils.py index f4f5346..71a9caa 100644 --- a/welco/sources/mail/utils.py +++ b/welco/sources/mail/utils.py @@ -21,11 +21,13 @@ from .maarch import MaarchCourrier class WelcoMaarchCourrier(MaarchCourrier): def __init__(self, url, username, password, grc_status, - grc_received_status, grc_send_status, batch_size=10): + grc_received_status, grc_send_status, grc_refused_status, + batch_size=10): super(WelcoMaarchCourrier, self).__init__(url, username, password) self.grc_status = grc_status self.grc_received_status = grc_received_status self.grc_send_status = grc_send_status + self.grc_refused_status = grc_refused_status self.batch_size = batch_size def get_mails(self): @@ -47,6 +49,10 @@ class WelcoMaarchCourrier(MaarchCourrier): mail.external_link = formdata_url_backoffice self.update_external_infos_url([mail], self.grc_send_status) + def set_grc_refused_status(self, mail_pk): + mail = self.Courrier(pk=mail_pk) + self.update_status([mail], self.grc_refused_status) + def get_maarch(): config = getattr(settings, 'MAARCH_FEED', {}) @@ -60,6 +66,7 @@ def get_maarch(): username=username, password=password, grc_status=config.get('STATUS_GRC', 'GRC'), - grc_received_status=config.get('STATUS_GRC', 'GRC_TRT'), - grc_send_status=config.get('STATUS_GRC', 'GRCSENT')) + grc_received_status=config.get('STATUS_RECEIVED', 'GRC_TRT'), + grc_send_status=config.get('STATUS_SEND', 'GRCSENT'), + grc_refused_status=config.get('STATUS_REFUSED', 'GRCREFUSED')) diff --git a/welco/sources/mail/views.py b/welco/sources/mail/views.py index 1312781..9a4aec5 100644 --- a/welco/sources/mail/views.py +++ b/welco/sources/mail/views.py @@ -31,6 +31,7 @@ from welco.utils import response_for_json from .models import Mail from .forms import MailQualificationForm +from .utils import get_maarch def viewer(request, *args, **kwargs): if not 'file' in request.GET: @@ -124,7 +125,13 @@ def note(request, *args, **kwargs): @login_required @csrf_exempt def reject(request, *args, **kwargs): - Mail.objects.filter(id=request.POST['source_pk']).delete() + maarch = get_maarch() + mail = Mail.objects.filter(id=request.POST['source_pk']).first() + if mail: + if maarch and mail.registered_mail_number and mail.registered_mail_number.startswith('maarch-'): + mail_pk = mail.registered_mail_number.split('-', 1)[1] + maarch.set_grc_refused_status(mail_pk) + mail.delete() return HttpResponse() -- 2.17.0