From 6e77560e018ef569a83e35c7b63611b1de302c85 Mon Sep 17 00:00:00 2001 From: Phuoc CAO Date: Thu, 25 Jul 2019 07:15:14 +0200 Subject: [PATCH] ajout demandes.pt" --- mondumas/templates/dossier/demandes.pt | 47 ++++++++++++++++ mondumas/views/dossier.py | 78 +++++++++++++++++++------- 2 files changed, 106 insertions(+), 19 deletions(-) create mode 100644 mondumas/templates/dossier/demandes.pt diff --git a/mondumas/templates/dossier/demandes.pt b/mondumas/templates/dossier/demandes.pt new file mode 100644 index 0000000..114113f --- /dev/null +++ b/mondumas/templates/dossier/demandes.pt @@ -0,0 +1,47 @@ + +
+ +

+ + Retour +

+ + + + + + + + + + + +
NoDateExpéditeurDestinataireObjet
+ +
+
+ + + +
+
+ + diff --git a/mondumas/views/dossier.py b/mondumas/views/dossier.py index 16b8550..6b14555 100644 --- a/mondumas/views/dossier.py +++ b/mondumas/views/dossier.py @@ -24,6 +24,9 @@ from ..security import groupfinder import os import shutil import pdfkit +import imaplib +import base64 +import email from ..views.default import * from ..models.default import * @@ -693,7 +696,7 @@ def rdf_bill(request): article = request.params['article'] insert_facture_rdf(request, 'PL', rapport.nochantier, logged_in, article, rapport.date_rapport.strftime('%d-%m-%Y')) - request.session.flash(u"Le rapport a été généré avec succès.", 'success') + request.session.flash("Le rapport a été généré avec succès.", 'success') return HTTPFound(location=request.route_url('dossier_view', nodossier=nodossier)) return { @@ -710,27 +713,64 @@ def rdf_bill(request): } @view_config(route_name='demandes', renderer='../templates/dossier/demandes.pt', permission='view') -def rdf_list(request): - # lire les rapports de RDF - items = get_rapport_rdf(request) +def demandes(request): - # construire la liste - liste=[] - for item in items: - if item.date_relu : - date_relu = item.date_relu.strftime('%d-%m-%Y') - else: - date_relu = '' - if item.date_rapport : - date_rapport = item.date_rapport.strftime('%d-%m-%Y') - else: - date_rapport = '' + def process_messages(data, search_criteria, liste): + # créer la liste des entêtes des messages à afficher + rv, data = conn.search(None, search_criteria) + if rv != 'OK': + request.session.flash("ERREUR de lecture de la boîte de réception", 'danger') + return HTTPFound(location=request.route_url('home')) + + mail_ids = data[0] + for num in mail_ids.split(): + rv, msg_data = conn.fetch(num, '(RFC822)') + if rv != 'OK': + request.session.flash("ERREUR de lecture du message %s" % num, 'danger') + return HTTPFound(location=request.route_url('home')) + + msg = email.message_from_bytes(msg_data[0][1]) + hdr = email.header.make_header(email.header.decode_header(msg['Subject'])) + email_subject = str(hdr) + email_from = email.utils.parseaddr(msg['from'])[1] + import pdb;pdb.set_trace() + # Now convert to local date-time + date_tuple = email.utils.parsedate_tz(msg['Date']) + if date_tuple: + email_date = datetime.fromtimestamp(email.utils.mktime_tz(date_tuple)) + else: + email_date = datetime.now() - d = (item.no_id, item.date_inter.strftime('%d-%m-%Y'), date_relu, date_rapport, '%s - %s %s' % (item.nochantier, item.C_QUALITE, item.C_NOM), item.NOMCLI, item.NOSIN, - item.auteur_code) - liste.append(d) + d = (str(int(num)), email_date.strftime('%d-%m-%Y %H:%M:%S'), email_from, mbx_name.replace('entreprise-dumas.com', ''), email_subject) + liste.append(d) + return liste + + # lire les demandes d'interventions arrivées par email + mbx_name = 'peinture-dumas@entreprise-dumas.com' + mbx_pwd = 'sasdumas' + conn = imaplib.IMAP4_SSL('imap.entreprise-dumas.com') + try: + # se connecter à la mailbox + conn.login(mbx_name, mbx_pwd) + except imaplib.IMAP4.error: + request.session.flash("ERREUR connexion au compte %s" % mbx_name, 'danger') + return HTTPFound(location=request.route_url('home')) + + # lire le INBOX + rv, data = conn.select('INBOX', readonly =True) + + liste=[] + # lire demandes de la MAIF + mbx_subject = 'FROM gestionsinistre@maif.fr SUBJECT "Missionnement r"' + process_messages(data, mbx_subject, liste) + # lire demandes de DOMUS + mbx_subject = 'FROM service.sinistres@domus-services.fr SUBJECT "Ordre de mission DOMUS - Dossier"' + process_messages(data, mbx_subject, liste) + + conn.logout() + return { - 'page_title': u'Liste des rapports de RDF', + 'page_title': 'Liste des demandes pour la PEINTURE', 'dt_data': json.dumps(liste), }