From cc992b446e0a9e795702d85b4a6a504734d18b25 Mon Sep 17 00:00:00 2001 From: cherif Date: Thu, 3 Nov 2022 17:44:51 +0100 Subject: [PATCH] 03/11/22 - 17h30 --- class_mgt.py | 30 ++++++++++++++++++++++++-- email_mgt.py | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++- main.py | 12 +++++++++++ 3 files changed, 99 insertions(+), 3 deletions(-) diff --git a/class_mgt.py b/class_mgt.py index acadd7c..f039145 100644 --- a/class_mgt.py +++ b/class_mgt.py @@ -19,7 +19,7 @@ import GlobalVariable as MYSY_GV from math import isnan import GlobalVariable as MYSY_GV import ela_index_bdd_classes as eibdd - +import email_mgt as email class JSONEncoder(json.JSONEncoder): @@ -2692,10 +2692,36 @@ def get_associated_class_of_partnair(diction): return True, RetObject - except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e)+" - Line : "+ str(exc_tb.tb_lineno) ) return False, " Impossible de recuperer la formation" + +""" +Cette fonction est utilisée pour la demande d'information sur une formation. +Depuis le site, lorqu'un utilisateur souhaite se renseigner sur une formation. +c'est la fonction : "je me renseigne" +""" +def RenseignementClass(diction): + try: + field_list_obligatoire = ['nom', 'prenom', 'email', 'telephone', 'employeur', + 'message', 'class_internal_url'] + + for val in field_list_obligatoire: + if val not in diction: + mycommon.myprint( + str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans liste ") + return False, " : La valeur '" + val + "' n'est pas presente dans liste " + + email.EmailDemandeInfoClass(diction) + + + return True, " La demande d'information a bien ete envoyé" + + except Exception as e: + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) + return False, " Impossible d'envoyer la demande d'information pour une formation" + diff --git a/email_mgt.py b/email_mgt.py index 1907b99..4b03903 100644 --- a/email_mgt.py +++ b/email_mgt.py @@ -1450,7 +1450,65 @@ def send_user_init_pwd_mail(token, account_mail, type_account): print(" Email envoyé " + str(val)) return True - return True + + except Exception as e: + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno)) + return False, " Impossible d'envoyer l'email de notification " + + +""" +Envoi de l'email de la demande d'information +sur une formation +""" + +def EmailDemandeInfoClass( diction): + try: + tomorrow = datetime.date.today() + datetime.timedelta(days=1) + tomorrow_day = tomorrow.strftime("%A") + + print("debut envoi mail de test ") + # on rentre les renseignements pris sur le site du fournisseur + + + smtpserver = smtplib.SMTP(MYSY_GV.O365_SMTP_COUNT_smtpsrv, MYSY_GV.O365_SMTP_COUNT_port) + + # msg = MIMEMultipart("alternative") + msg = EmailMessage() + + # JINJA2 + templateLoader = jinja2.FileSystemLoader(searchpath="./") + templateEnv = jinja2.Environment(loader=templateLoader) + TEMPLATE_FILE = "Template/MySy_Demande_Info_Class_tpl.html" + template = templateEnv.get_template(TEMPLATE_FILE) + # This data can come from database query + body = { + "params":{"nom": str(diction['nom']), + "prenom": str(diction['prenom']), + "email": str(diction['email']), + "telephone": str(diction['telephone']), + "employeur": str(diction['employeur']), + "message": str(diction['message']), + "class_internal_url": str(diction['class_internal_url']), + }, + } + + sourceHtml = template.render(params=body["params"]) + + msg.set_content(sourceHtml, subtype='html') + msg['From'] = 'cbalde@mysy-training.com' + msg['Cc'] = 'contact@mysy-training.com' + msg['Subject'] = "[MySy Training Technology] : Demande d'information" + msg['To'] = 'contact@mysy-training.com' + + smtpserver.ehlo() + smtpserver.starttls() + smtpserver.login(MYSY_GV.O365_SMTP_COUNT_user, MYSY_GV.O365_SMTP_COUNT_password) + val = smtpserver.send_message(msg) + smtpserver.close() + print(" Email envoyé " + str(val)) + return True + except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() diff --git a/main.py b/main.py index e899285..609adcb 100644 --- a/main.py +++ b/main.py @@ -1932,6 +1932,18 @@ def GetListOpco(): return jsonify(status=localStatus, message=message ) +""" +API de demande d'information sur une formation +""" +@app.route('/myclass/api/RenseignementClass/', methods=['POST','GET']) +@crossdomain(origin='*') +def RenseignementClass(): + # On recupere le corps (payload) de la requete + payload = request.form.to_dict() + print(" ### RenseignementClass : payload = ",str(payload)) + localStatus, message= cm.RenseignementClass(payload) + return jsonify(status=localStatus, message=message ) + if __name__ == '__main__': print(" debut api")