From bff3ab9c69925699464c29bedbba8b907fa68ed4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ch=C3=A9rifBALDE?= Date: Tue, 18 Oct 2022 16:37:50 +0200 Subject: [PATCH] 18/10/22 - 16h30 --- Inscription_mgt.py | 126 ++++++++++++++++++++++++++++++++++++++++++--- main.py | 12 ----- 2 files changed, 119 insertions(+), 19 deletions(-) diff --git a/Inscription_mgt.py b/Inscription_mgt.py index df7f1b4..0a73179 100644 --- a/Inscription_mgt.py +++ b/Inscription_mgt.py @@ -22,6 +22,13 @@ from datetime import timedelta """ Enregistrement d'un stagiaire + +Voici les valeurs possibles du statut d'un stagiaire +# 0 ==> Preinscription +# 1 ==> Inscription validée +# -1 ==> Inscription annulée + + """ def AddStagiairetoClass(diction): try: @@ -32,7 +39,8 @@ def AddStagiairetoClass(diction): # Ici on doit mettre tous les champs possible (obligatoire ou non) de la BDD dans la liste # field_list. ''' - field_list = ['nom', 'adr_street', 'adr_city'] + field_list = ['nom', 'prenom', 'email', 'telephone', 'modefinancement', 'opco', + 'class_internal_url', 'session'] incom_keys = diction.keys() for val in incom_keys: if val not in field_list: @@ -43,15 +51,81 @@ def AddStagiairetoClass(diction): """ Verification de la liste des champs obligatoires """ - field_list_obligatoire = ['nom', 'email', 'pwd', ] + field_list_obligatoire = ['nom', 'prenom', 'email', 'telephone', 'modefinancement', 'opco', + 'class_internal_url', 'session'] + 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, "Impossible de créer le stagiaire, Toutes les informations necessaires n'ont pas été fournies" + mydata = {} + + if ("nom" in diction.keys()): + if diction['nom']: + mydata['nom'] = diction['nom'] + + if ("prenom" in diction.keys()): + if diction['prenom']: + mydata['prenom'] = diction['prenom'] + + if ("telephone" in diction.keys()): + if diction['telephone']: + mydata['telephone'] = diction['telephone'] + + if ("email" in diction.keys()): + if diction['email']: + mydata['email'] = diction['email'] + + if ("modefinancement" in diction.keys()): + if diction['modefinancement']: + mydata['modefinancement'] = diction['modefinancement'] + + if ("opco" in diction.keys()): + if diction['opco']: + mydata['opco'] = diction['opco'] + + if ("session" in diction.keys()): + if diction['session']: + mydata['session'] = diction['session'] + + if ("class_internal_url" in diction.keys()): + if diction['class_internal_url']: + mydata['class_internal_url'] = diction['class_internal_url'] + + mydata['date_update'] = str(datetime.now()) + mydata['status'] = "0" # 0 ==> Preinscription + + coll_inscription = MYSY_GV.dbname['inscription'] + + ## Verification si cette adresse n'est pas deja inscrite à cette session + # print(" myquery pr demo_account = " + str(myquery)) + tmp = coll_inscription.count_documents({'email':str(mydata['email']), + 'session':str( mydata['session']), + 'class_internal_url':str(mydata['class_internal_url'])}) + + if( tmp > 0 ): + mycommon.myprint( + str(inspect.stack()[0][3]) + " - l'adresse email "+str(mydata['email'])+" est deja inscrit à la session du " + " "+str( mydata['session'])+ " ") + + return False, "Impossible de créer le stagiaire. l'adresse email "+str(mydata['email'])\ + +" est deja inscrit à la session du "+str( mydata['session'])+ " " + + ret_val = coll_inscription.insert_one(mydata) + + inserted_id = ret_val.inserted_id + if( inserted_id ): + # Le stagaire a bien ete inseré, on declenche l'envoi des emaisl + print(" ### l'inscription est ok, il faut declenché l'envoi des email") + else: + mycommon.myprint( + str(inspect.stack()[0][3]) + " - ret_val.inserted_id is null ") + return False, "Impossible de créer le stagiaire" + + return True, " Le stagiaire à bien été créé" - return True except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() @@ -126,7 +200,7 @@ Recuperation de liste des stagiaire d'une formation """ def GetAllClassStagiaire(diction): try: - field_list = ['nom', 'adr_street', 'adr_city'] + field_list = ['token', 'class_internal_url', 'session'] incom_keys = diction.keys() for val in incom_keys: if val not in field_list: @@ -137,14 +211,52 @@ def GetAllClassStagiaire(diction): """ Verification de la liste des champs obligatoires """ - field_list_obligatoire = ['nom', 'email', 'pwd', ] + field_list_obligatoire = ['token', 'class_internal_url', 'session'] 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, "de recuperer la liste des stagiaires, Toutes les informations necessaires n'ont pas été fournies" + return False, "Impossible de recuperer la liste des stagiaires, Toutes les informations necessaires n'ont pas été fournies" - return True + # Recuperation du recid du partner + mydata = {} + mytoken = "" + if ("token" in diction.keys()): + if diction['token']: + mytoken = diction['token'] + + partner_recid = mycommon.get_parnter_recid_from_token(mytoken) + if (partner_recid is False): + mycommon.myprint(str(inspect.stack()[0][3]) + " - Impossible de recuperer la liste des stagiaires, ") + return False, "Impossible de recuperer la liste des stagiaires, Les informations d'identification sont incorrectes " + + class_internal_url = "" + if ("class_internal_url" in diction.keys()): + if diction['class_internal_url']: + class_internal_url = diction['class_internal_url'] + + session = "" + if ("session" in diction.keys()): + if diction['session']: + session = diction['session'] + + + ## Recuperation de toutes les stagiaire rattaché à cette session + coll_session = MYSY_GV.dbname['inscription'] + myquery = {} + myquery['session'] = session + myquery['class_internal_url'] = class_internal_url + RetObject = [] + val_tmp = 1 + + for retval in coll_session.find(myquery): + user = retval + user['id'] = str(val_tmp) + val_tmp = val_tmp + 1 + RetObject.append(mycommon.JSONEncoder().encode(user)) + + + return True, RetObject except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() diff --git a/main.py b/main.py index 4de2f60..6899751 100644 --- a/main.py +++ b/main.py @@ -1752,18 +1752,6 @@ def GetAllClassStagiaire(): localStatus, message= inscription.GetAllClassStagiaire(payload) return jsonify(status=localStatus, message=message ) -""" -API de recuperation des infos d'un stagiaire -""" -@app.route('/myclass/api/GetStagiaire/', methods=['POST','GET']) -@crossdomain(origin='*') -def GetStagiaire(): - # On recupere le corps (payload) de la requete - payload = request.form.to_dict() - print(" ### GetStagiaire : payload = ",payload) - localStatus, message= inscription.GetStagiaire(payload) - return jsonify(status=localStatus, message=message ) - if __name__ == '__main__': print(" debut api")