23/10/22 - 17h30

master
cherif 2022-10-23 17:40:35 +02:00
parent 8d506631ce
commit 3aafaf5dd5
3 changed files with 224 additions and 0 deletions

View File

@ -294,6 +294,7 @@ def GetStagiaire(diction):
str(inspect.stack()[0][3]) + " - : La valeur '" + val + "' n'est pas presente dans liste ")
return False, "Impossible de recuperer le stagiaire, Toutes les informations necessaires n'ont pas été fournies"
return True
except Exception as e:

195
Session_Formation.py Normal file
View File

@ -0,0 +1,195 @@
"""
Ce fichier gere les sessions de formation
"""
import pymongo
from pymongo import MongoClient
import json
from bson import ObjectId
import re
from datetime import datetime
import prj_common as mycommon
import secrets
import inspect
import sys, os
import csv
import pandas as pd
from pymongo import ReturnDocument
import GlobalVariable as MYSY_GV
from math import isnan
import GlobalVariable as MYSY_GV
from datetime import timedelta
"""
Fonction de creation et mise à jour d'une session de formation.
la clée est :
- formation_session_id,
- class_internal_url
"""
def Add_Update_SessionFormation(diction):
try:
'''
# Verification que les champs reçus dans l'API sont bien dans la liste des champs autorisés
# Cela evite le cas ou une entité tierce ajouter les valeurs inconnu dans l'API
# Ici on doit mettre tous les champs possible (obligatoire ou non) de la BDD dans la liste
# field_list.
'''
field_list = ['token', 'date_debut', 'date_fin', 'nb_participant', 'formation_session_id', 'class_internal_url',]
incom_keys = diction.keys()
for val in incom_keys:
if val not in field_list:
mycommon.myprint(str(inspect.stack()[0][
3]) + " - Creation partner account : Le champ '" + val + "' n'est pas autorisé, Creation partenaire annulée")
return False, "Impossible de créer le stagiaire. Toutes les informations fournies ne sont pas valables"
"""
Verification de la liste des champs obligatoires
"""
field_list_obligatoire = ['token', 'formation_session_id', '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, "Impossible de créer le stagiaire, Toutes les informations necessaires n'ont pas été fournies"
mydata = {}
query_key = {}
my_token = ""
if ("token" in diction.keys()):
if diction['token']:
my_token = diction['token']
class_internal_url = ""
if ("class_internal_url" in diction.keys()):
if diction['class_internal_url']:
mydata['class_internal_url'] = diction['formation_session_id']
query_key['class_internal_url'] = diction['formation_session_id']
class_internal_url = diction['class_internal_url']
partner_recid = mycommon.get_parnter_recid_from_token(my_token)
if (partner_recid is False):
mycommon.myprint(str(inspect.stack()[0][3]) + " - Impossible de créer la liste d'emargement ")
return False, "Impossible de créer la liste d'emargement "
formation_session_id = ""
if ("formation_session_id" in diction.keys()):
if diction['formation_session_id']:
mydata['formation_session_id'] = diction['formation_session_id']
query_key['formation_session_id'] = diction['formation_session_id']
session_id = diction['formation_session_id']
if ("date_debut" in diction.keys()):
if diction['date_debut']:
mydata['date_debut'] = diction['date_debut']
if ("date_fin" in diction.keys()):
if diction['date_fin']:
mydata['date_fin'] = diction['date_fin']
if ("nb_participant" in diction.keys()):
if diction['nb_participant']:
mydata['nb_participant'] = diction['nb_participant']
mydata['date_update'] = str(datetime.now())
mydata['valide'] = "1"
coll_name = MYSY_GV.dbname['session_formation']
ret_val = coll_name.find_one_and_update(
query_key,
{"$set": mydata},
upsert=True,
return_document=ReturnDocument.AFTER
)
if (ret_val['_id'] is False):
mycommon.myprint(
str(inspect.stack()[0][3]) + " : Impossible d'ajouter le mode de payement")
return False, "Impossible d'ajouter le mode de payement"
return True, " La session de formation à bien été crééé"
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 de créer la session de formation"
"""
Fonction de recuperation d'une session de formation
"""
def GetSessionFormation(diction):
try:
field_list = ['token', 'class_internal_url', 'formation_session_id', ]
incom_keys = diction.keys()
for val in incom_keys:
if val not in field_list:
mycommon.myprint(str(inspect.stack()[0][
3]) + " - Creation partner account : Le champ '" + val + "' n'est pas autorisé, Creation partenaire annulée")
return False, "de recuperer la liste des stagiaires . Toutes les informations fournies ne sont pas valables"
"""
Verification de la liste des champs obligatoires
"""
field_list_obligatoire = ['token', 'class_internal_url', 'formation_session_id', ]
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 recuperer la liste des stagiaires, Toutes les informations necessaires n'ont pas été fournies"
# 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']
formation_session_id = ""
if ("formation_session_id" in diction.keys()):
if diction['formation_session_id']:
formation_session_id = diction['session_id']
coll_session = MYSY_GV.dbname['session_formation']
myquery = {}
myquery['formation_session_id'] = formation_session_id
myquery['class_internal_url'] = class_internal_url
RetObject = []
for retval in coll_session.find(myquery):
RetObject.append(mycommon.JSONEncoder().encode(retval))
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) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
return False, "Impossible de recuperer la session de formation"

28
main.py
View File

@ -31,6 +31,7 @@ import statistics as Stat
import strype_payement as Stripe
import Inscription_mgt as inscription
import emargement as emargement
import Session_Formation as SF
app = Flask(__name__)
@ -1791,6 +1792,33 @@ def UpdateUserEmargementDate():
return jsonify(status=localStatus, message=message )
"""
API de creation d'une session de formation
"""
@app.route('/myclass/api/Add_Update_SessionFormation/', methods=['POST','GET'])
@crossdomain(origin='*')
def Add_Update_SessionFormation():
# On recupere le corps (payload) de la requete
payload = request.form.to_dict()
print(" ### Add_Update_SessionFormation : payload = ",str(payload))
localStatus, message= SF.Add_Update_SessionFormation(payload)
return jsonify(status=localStatus, message=message )
"""
API de recuperation session de formation
"""
@app.route('/myclass/api/GetSessionFormation/', methods=['POST','GET'])
@crossdomain(origin='*')
def GetSessionFormation():
# On recupere le corps (payload) de la requete
payload = request.form.to_dict()
print(" ### GetSessionFormation : payload = ",str(payload))
localStatus, message= SF.GetSessionFormation(payload)
return jsonify(status=localStatus, message=message )
if __name__ == '__main__':
print(" debut api")