18/10/22 - 16h30

master
ChérifBALDE 2022-10-18 16:37:50 +02:00 committed by cherif
parent 23b6c0a7e9
commit bff3ab9c69
2 changed files with 119 additions and 19 deletions

View File

@ -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()

12
main.py
View File

@ -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")