21/10/22 - 15h00
parent
f3168b5bf6
commit
3f9343d2de
|
@ -40,7 +40,7 @@ def AddStagiairetoClass(diction):
|
|||
# field_list.
|
||||
'''
|
||||
field_list = ['nom', 'prenom', 'email', 'telephone', 'modefinancement', 'opco',
|
||||
'class_internal_url', 'session']
|
||||
'class_internal_url', 'session_id']
|
||||
incom_keys = diction.keys()
|
||||
for val in incom_keys:
|
||||
if val not in field_list:
|
||||
|
@ -52,7 +52,7 @@ def AddStagiairetoClass(diction):
|
|||
Verification de la liste des champs obligatoires
|
||||
"""
|
||||
field_list_obligatoire = ['nom', 'prenom', 'email', 'telephone', 'modefinancement', 'opco',
|
||||
'class_internal_url', 'session']
|
||||
'class_internal_url', 'session_id']
|
||||
|
||||
for val in field_list_obligatoire:
|
||||
if val not in diction:
|
||||
|
@ -62,6 +62,29 @@ def AddStagiairetoClass(diction):
|
|||
|
||||
mydata = {}
|
||||
|
||||
session_id = ""
|
||||
if ("session_id" in diction.keys()):
|
||||
if diction['session_id']:
|
||||
mydata['session_id'] = diction['session_id']
|
||||
session_id = diction['session_id']
|
||||
|
||||
"""
|
||||
Recuperation des info de la session de formation
|
||||
"""
|
||||
|
||||
for tmp_val in MYSY_GV.dbname['myclass'].find({"datelieu.session_id":str(session_id)}):
|
||||
|
||||
tmp_date_lieu = tmp_val['datelieu']
|
||||
for val in tmp_date_lieu:
|
||||
if( val['session_id'] == str(session_id) ):
|
||||
mydata['date_du'] = val['date_du']
|
||||
mydata['date_au'] = val['date_au']
|
||||
mydata['ville'] = val['ville']
|
||||
mydata['code_postal'] = val['code_postal']
|
||||
mydata['adresse'] = val['adresse']
|
||||
|
||||
#print(" #### pour la session_id "+str(session_id)+" on est a "+str(session_date_du)+" - "+str(session_adresse))
|
||||
|
||||
if ("nom" in diction.keys()):
|
||||
if diction['nom']:
|
||||
mydata['nom'] = diction['nom']
|
||||
|
@ -86,9 +109,7 @@ def AddStagiairetoClass(diction):
|
|||
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']:
|
||||
|
@ -102,16 +123,16 @@ def AddStagiairetoClass(diction):
|
|||
## 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']),
|
||||
'session_id':str( mydata['session_id']),
|
||||
'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'])+ " ")
|
||||
" "+str( mydata['session_id'])+ " ")
|
||||
|
||||
return False, "Impossible de créer le stagiaire. l'adresse email "+str(mydata['email'])\
|
||||
+" est deja inscrit à la session du "+str( mydata['session'])+ " "
|
||||
+" est deja inscrit à la session du "+str( mydata['session_id'])+ " "
|
||||
|
||||
ret_val = coll_inscription.insert_one(mydata)
|
||||
|
||||
|
@ -134,11 +155,13 @@ def AddStagiairetoClass(diction):
|
|||
|
||||
"""
|
||||
Mettre à jour les infomration d'un stgiaire
|
||||
|
||||
/!\ : on NE mets PAS à jour la session, juste les info du stagiaire
|
||||
"""
|
||||
def UpdateStagiairetoClass(diction):
|
||||
try:
|
||||
field_list = ['token', 'email', 'nom', 'prenom', 'telephone', 'modefinancement', 'opco',
|
||||
'status', 'class_internal_url', 'session', 'price']
|
||||
'status', 'class_internal_url', 'session_id', 'price']
|
||||
incom_keys = diction.keys()
|
||||
for val in incom_keys:
|
||||
if val not in field_list:
|
||||
|
@ -149,7 +172,7 @@ def UpdateStagiairetoClass(diction):
|
|||
"""
|
||||
Verification de la liste des champs obligatoires
|
||||
"""
|
||||
field_list_obligatoire = ['token', 'email', 'class_internal_url', 'session']
|
||||
field_list_obligatoire = ['token', 'email', 'class_internal_url', 'session_id']
|
||||
for val in field_list_obligatoire:
|
||||
if val not in diction:
|
||||
mycommon.myprint(
|
||||
|
@ -175,11 +198,11 @@ def UpdateStagiairetoClass(diction):
|
|||
myinternal_url = diction['class_internal_url']
|
||||
query_key['class_internal_url'] = diction['class_internal_url']
|
||||
|
||||
mysession = ""
|
||||
if ("session" in diction.keys()):
|
||||
if diction['session']:
|
||||
mysession = diction['session']
|
||||
query_key['session'] = diction['session']
|
||||
mysession_id = ""
|
||||
if ("session_id" in diction.keys()):
|
||||
if diction['session_id']:
|
||||
mysession_id = diction['session_id']
|
||||
query_key['session_id'] = diction['session_id']
|
||||
|
||||
partner_recid = mycommon.get_parnter_recid_from_token(mytoken)
|
||||
if (partner_recid is False):
|
||||
|
@ -286,7 +309,7 @@ Recuperation de liste des stagiaire d'une formation
|
|||
"""
|
||||
def GetAllClassStagiaire(diction):
|
||||
try:
|
||||
field_list = ['token', 'class_internal_url', 'session', 'status']
|
||||
field_list = ['token', 'class_internal_url', 'session_id', 'status']
|
||||
incom_keys = diction.keys()
|
||||
for val in incom_keys:
|
||||
if val not in field_list:
|
||||
|
@ -297,7 +320,7 @@ def GetAllClassStagiaire(diction):
|
|||
"""
|
||||
Verification de la liste des champs obligatoires
|
||||
"""
|
||||
field_list_obligatoire = ['token', 'class_internal_url', 'session']
|
||||
field_list_obligatoire = ['token', 'class_internal_url', 'session_id']
|
||||
for val in field_list_obligatoire:
|
||||
if val not in diction:
|
||||
mycommon.myprint(
|
||||
|
@ -321,10 +344,10 @@ def GetAllClassStagiaire(diction):
|
|||
if diction['class_internal_url']:
|
||||
class_internal_url = diction['class_internal_url']
|
||||
|
||||
session = ""
|
||||
if ("session" in diction.keys()):
|
||||
if diction['session']:
|
||||
session = diction['session']
|
||||
session_id = ""
|
||||
if ("session_id" in diction.keys()):
|
||||
if diction['session_id']:
|
||||
session_id = diction['session_id']
|
||||
|
||||
status = ""
|
||||
if ("status" in diction.keys()):
|
||||
|
@ -335,7 +358,7 @@ def GetAllClassStagiaire(diction):
|
|||
## Recuperation de toutes les stagiaire rattaché à cette session
|
||||
coll_session = MYSY_GV.dbname['inscription']
|
||||
myquery = {}
|
||||
myquery['session'] = session
|
||||
myquery['session_id'] = session_id
|
||||
myquery['class_internal_url'] = class_internal_url
|
||||
|
||||
if(len(status) > 0 ):
|
||||
|
|
152
class_mgt.py
152
class_mgt.py
|
@ -300,9 +300,12 @@ def add_class(diction):
|
|||
|
||||
|
||||
'''
|
||||
Traitement date_lieu
|
||||
Traitement date_lieu.
|
||||
Date_lieu definit une session et au format :
|
||||
date_du;data_au;ville;code_postal; adresse
|
||||
'''
|
||||
mydata['datelieu'] = ""
|
||||
|
||||
if ("date_lieu" in diction.keys()):
|
||||
if diction['date_lieu']:
|
||||
tmp_str2 = str(diction['date_lieu']).lower().replace(",", ";").replace("\r\n", "")
|
||||
|
@ -310,14 +313,14 @@ def add_class(diction):
|
|||
if (not tmp_str2.endswith(";")):
|
||||
tmp_str2 = tmp_str2 + ";"
|
||||
|
||||
#print("tmp_str2 = " + tmp_str2)
|
||||
# print("tmp_str2 = " + tmp_str2)
|
||||
|
||||
if (";" not in tmp_str2):
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " - les dates et lieux de la formation : " + str(
|
||||
diction['external_code']) + " sont incorrectes")
|
||||
diction['external_code']) + " sont incorrectes 1")
|
||||
return False, "Les Dates et Lieux de la formation " + str(
|
||||
diction['external_code']) + " sont incorrectes. Le format attendu : " \
|
||||
"jj/mm/aaaa-ville-code_postal;jj/mm/aaaa-ville2-code_postal28"
|
||||
"jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse;jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse"
|
||||
|
||||
tmp_str = tmp_str2.split(
|
||||
";") # ==> ce qui va donner un tableau de : Country_Code-City : ['11/02/2012-paris-75001', '24/04/2022-marseille-13002',]
|
||||
|
@ -325,35 +328,68 @@ def add_class(diction):
|
|||
dl_cpt = 0
|
||||
tab_dl = []
|
||||
for tmp_dl in tmp_str:
|
||||
if(len(str(tmp_dl)) > 0 and ("-" in tmp_dl) ):
|
||||
#print(" ###### DATE LIEU = "+tmp_dl)
|
||||
if (len(str(tmp_dl)) > 0 and ("-" in tmp_dl)):
|
||||
# print(" ###### DATE LIEU = "+tmp_dl)
|
||||
tab_date_lieu = tmp_dl.split('-')
|
||||
if (len(tab_date_lieu) != 3):
|
||||
if (len(tab_date_lieu) != 5):
|
||||
return False, "Les Dates et Lieux de la formation " + str(
|
||||
diction['external_code']) + " sont incorrectes. Le format attendu : " \
|
||||
"jj/mm/aaaa-ville-code_postale;jj/mm/aaaa-ville2-code_postale29"
|
||||
"jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse;jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse"
|
||||
|
||||
isdate = mycommon.CheckisDate( str(tab_date_lieu[0]))
|
||||
if( isdate is False ):
|
||||
isdate = mycommon.CheckisDate(str(tab_date_lieu[0]))
|
||||
if (isdate is False):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - les dates et lieux de la formation : A" + str(
|
||||
diction['external_code']) + " sont incorrectes")
|
||||
diction['external_code']) + " sont incorrectes 2")
|
||||
return False, "Les Dates et Lieux de la formation " + str(
|
||||
diction['external_code']) + " sont incorrectes. Le format attendu : " \
|
||||
"jj/mm/aaaa-ville-code_postale;jj/mm/aaaa-ville2-code-postal21"
|
||||
"jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse;jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse 3"
|
||||
|
||||
val_dl = {'date':str(tab_date_lieu[0]), 'ville':str(tab_date_lieu[1]), 'code_postal':str(tab_date_lieu[2])}
|
||||
isdate_au = mycommon.CheckisDate(str(tab_date_lieu[1]))
|
||||
if (isdate is False):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - les dates et lieux de la formation : A" + str(
|
||||
diction['external_code']) + " sont incorrectes 3")
|
||||
return False, "Les Dates et Lieux de la formation " + str(
|
||||
diction['external_code']) + " sont incorrectes. Le format attendu : " \
|
||||
"jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse;jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse 2"
|
||||
|
||||
print("### isdate = " + str(tab_date_lieu[0]) + " CM isdate_au = " + str(tab_date_lieu[1]))
|
||||
if (datetime.strptime(str(tab_date_lieu[0]), '%d/%m/%Y') >= datetime.strptime(
|
||||
str(tab_date_lieu[1]), '%d/%m/%Y')):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][
|
||||
3]) + " - la date debut est posterieure à la date de fin pour la formation : " + str(
|
||||
diction['external_code']) + " ")
|
||||
return False, " La date debut est posterieure à la date de fin pour la formation : " + str(
|
||||
diction['external_code']) + " "
|
||||
|
||||
mytoday = datetime.today().strftime("%d/%m/%Y")
|
||||
if (datetime.strptime(str(tab_date_lieu[0]), '%d/%m/%Y') < datetime.strptime(str(mytoday),
|
||||
'%d/%m/%Y')):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][
|
||||
3]) + " - la date debut est posterieure à la date du jour pour la formation : " + str(
|
||||
diction['external_code']) + " ")
|
||||
return False, " La date debut est posterieure à la date du jour pour la formation : " + str(
|
||||
diction['external_code']) + " "
|
||||
|
||||
# On créé un identifiant unique par session
|
||||
session_id = mycommon.create_token_urlsafe()
|
||||
val_dl = {'date_du': str(tab_date_lieu[0]), 'date_au': str(tab_date_lieu[1]),
|
||||
'ville': str(tab_date_lieu[2]), 'code_postal': str(tab_date_lieu[3]),
|
||||
'adresse': str(tab_date_lieu[4]), 'session_id':str(session_id)}
|
||||
tab_dl.append(val_dl)
|
||||
#mydata['date_lieu'][dl_cpt] = {'date': str(tab_date_lieu[0]), 'ville': str(tab_date_lieu[1])}
|
||||
#print(str(mydata['date_lieu'] ))
|
||||
#print(" ######### date_lieu = " + str(tab_date_lieu[0]) + " ----- " + str(tab_date_lieu[1]))
|
||||
# mydata['date_lieu'][dl_cpt] = {'date': str(tab_date_lieu[0]), 'ville': str(tab_date_lieu[1])}
|
||||
# print(str(mydata['date_lieu'] ))
|
||||
# print(" ######### date_lieu = " + str(tab_date_lieu[0]) + " ----- " + str(tab_date_lieu[1]))
|
||||
|
||||
dl_cpt = dl_cpt +1
|
||||
dl_cpt = dl_cpt + 1
|
||||
|
||||
elif (len(str(tmp_dl)) > 0 and ("-" not in tmp_dl)):
|
||||
return False, "Les Dates et Lieux de la formation " + str(
|
||||
diction['external_code']) + " sont incorrectes. Le format attendu : " \
|
||||
"jj/mm/aaaa-ville-code_postal;jj/mm/aaaa-ville2-code_postal22"
|
||||
"jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse;jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse 1"
|
||||
|
||||
mydata['datelieu'] = tab_dl
|
||||
|
||||
|
@ -643,7 +679,9 @@ def update_class(diction):
|
|||
mydata['zone_diffusion'] = {'country':tab_country, 'city':tab_city}
|
||||
|
||||
'''
|
||||
Traitement date_lieu
|
||||
Traitement date_lieu.
|
||||
Date_lieu definit une session et au format :
|
||||
date_du;data_au;ville;code_postal; adresse
|
||||
'''
|
||||
mydata['datelieu'] = ""
|
||||
if ("date_lieu" in diction.keys()):
|
||||
|
@ -653,51 +691,82 @@ def update_class(diction):
|
|||
if (not tmp_str2.endswith(";")):
|
||||
tmp_str2 = tmp_str2 + ";"
|
||||
|
||||
print("tmp_str2 = " + tmp_str2)
|
||||
# print("tmp_str2 = " + tmp_str2)
|
||||
|
||||
if (";" not in tmp_str2):
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " - les dates et lieux de la formation : A" + str(
|
||||
diction['external_code']) + " sont incorrectes")
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " - les dates et lieux de la formation : " + str(
|
||||
diction['external_code']) + " sont incorrectes 1")
|
||||
return False, "Les Dates et Lieux de la formation " + str(
|
||||
diction['external_code']) + " sont incorrectes. Le format attendu : " \
|
||||
"jj/mm/aaaa-ville-code_postale;jj/mm/aaaa-ville2-code_postale23"
|
||||
"jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse;jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse"
|
||||
|
||||
tmp_str = tmp_str2.split(
|
||||
";") # ==> ce qui va donner un tableau de : Country_Code-City : ['11/02/2012-paris-75009', '24/04/2022-marseille-13009',]
|
||||
|
||||
";") # ==> ce qui va donner un tableau de : Country_Code-City : ['11/02/2012-paris-75001', '24/04/2022-marseille-13002',]
|
||||
|
||||
dl_cpt = 0
|
||||
tab_dl = []
|
||||
for tmp_dl in tmp_str:
|
||||
if(len(str(tmp_dl)) > 0 and ("-" in tmp_dl) ):
|
||||
#print(" ###### DATE LIEU = "+tmp_dl)
|
||||
if (len(str(tmp_dl)) > 0 and ("-" in tmp_dl)):
|
||||
# print(" ###### DATE LIEU = "+tmp_dl)
|
||||
tab_date_lieu = tmp_dl.split('-')
|
||||
if( len(tab_date_lieu) != 3):
|
||||
if (len(tab_date_lieu) != 5):
|
||||
return False, "Les Dates et Lieux de la formation " + str(
|
||||
diction['external_code']) + " sont incorrectes. Le format attendu : " \
|
||||
"jj/mm/aaaa-ville-code_postale;jj/mm/aaaa-ville2-code_postale23"
|
||||
"jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse;jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse"
|
||||
|
||||
isdate = mycommon.CheckisDate( str(tab_date_lieu[0]))
|
||||
if( isdate is False ):
|
||||
isdate = mycommon.CheckisDate(str(tab_date_lieu[0]))
|
||||
if (isdate is False):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - les dates et lieux de la formation : A" + str(
|
||||
diction['external_code']) + " sont incorrectes")
|
||||
diction['external_code']) + " sont incorrectes 2")
|
||||
return False, "Les Dates et Lieux de la formation " + str(
|
||||
diction['external_code']) + " sont incorrectes. Le format attendu : " \
|
||||
"jj/mm/aaaa-ville-code_postale;jj/mm/aaaa-ville2-code_postal25"
|
||||
"jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse;jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse 3"
|
||||
|
||||
val_dl = {'date':str(tab_date_lieu[0]), 'ville':str(tab_date_lieu[1]), 'code_postal':str(tab_date_lieu[2])}
|
||||
isdate_au = mycommon.CheckisDate(str(tab_date_lieu[1]))
|
||||
if (isdate is False):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - les dates et lieux de la formation : A" + str(
|
||||
diction['external_code']) + " sont incorrectes 3")
|
||||
return False, "Les Dates et Lieux de la formation " + str(
|
||||
diction['external_code']) + " sont incorrectes. Le format attendu : " \
|
||||
"jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse;jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse 2"
|
||||
|
||||
|
||||
print("### isdate = " + str(tab_date_lieu[0]) + " CM isdate_au = " + str(tab_date_lieu[1]))
|
||||
if (datetime.strptime(str(tab_date_lieu[0]), '%d/%m/%Y') >= datetime.strptime(str(tab_date_lieu[1]), '%d/%m/%Y')):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][
|
||||
3]) + " - la date debut est posterieure à la date de fin pour la formation : " + str(
|
||||
diction['external_code']) + " ")
|
||||
return False, " La date debut est posterieure à la date de fin pour la formation : " + str(
|
||||
diction['external_code']) + " "
|
||||
|
||||
mytoday = datetime.today().strftime("%d/%m/%Y")
|
||||
if (datetime.strptime(str(tab_date_lieu[0]), '%d/%m/%Y') < datetime.strptime(str(mytoday), '%d/%m/%Y')):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][
|
||||
3]) + " - la date debut est posterieure à la date du jour pour la formation : " + str(
|
||||
diction['external_code']) + " ")
|
||||
return False, " La date debut est posterieure à la date du jour pour la formation : " + str(
|
||||
diction['external_code']) + " "
|
||||
# On créé un identifiant unique par session
|
||||
session_id = mycommon.create_token_urlsafe()
|
||||
|
||||
val_dl = {'date_du': str(tab_date_lieu[0]), 'date_au': str(tab_date_lieu[1]),
|
||||
'ville': str(tab_date_lieu[2]), 'code_postal': str(tab_date_lieu[3]),
|
||||
'adresse': str(tab_date_lieu[4]), 'session_id':str(session_id)}
|
||||
tab_dl.append(val_dl)
|
||||
#mydata['date_lieu'][dl_cpt] = {'date': str(tab_date_lieu[0]), 'ville': str(tab_date_lieu[1])}
|
||||
#print(str(mydata['date_lieu'] ))
|
||||
#print(" ######### date_lieu = " + str(tab_date_lieu[0]) + " ----- " + str(tab_date_lieu[1]))
|
||||
# mydata['date_lieu'][dl_cpt] = {'date': str(tab_date_lieu[0]), 'ville': str(tab_date_lieu[1])}
|
||||
# print(str(mydata['date_lieu'] ))
|
||||
# print(" ######### date_lieu = " + str(tab_date_lieu[0]) + " ----- " + str(tab_date_lieu[1]))
|
||||
|
||||
dl_cpt = dl_cpt +1
|
||||
dl_cpt = dl_cpt + 1
|
||||
|
||||
elif ( len(str(tmp_dl)) > 0 and ("-" not in tmp_dl) ):
|
||||
elif (len(str(tmp_dl)) > 0 and ("-" not in tmp_dl)):
|
||||
return False, "Les Dates et Lieux de la formation " + str(
|
||||
diction['external_code']) + " sont incorrectes. Le format attendu : " \
|
||||
"jj/mm/aaaa-ville-code_postale;jj/mm/aaaa-ville2-code_postale26"
|
||||
"jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse;jj/mm/aaaa-jj/mm/aaaa-ville-code_postale-adresse 1"
|
||||
|
||||
mydata['datelieu'] = tab_dl
|
||||
|
||||
|
@ -1537,7 +1606,6 @@ def get_class(diction):
|
|||
retVal['objectif'] = tmp_str[:MYSY_GV.MAX_CARACT_DETAIL] + " ..."
|
||||
|
||||
|
||||
|
||||
if ("programme" in retVal.keys()):
|
||||
tmp_str = retVal['programme']
|
||||
if (len(retVal['programme']) > MYSY_GV.MAX_CARACT_DETAIL):
|
||||
|
@ -2566,3 +2634,5 @@ def get_associated_class_of_partnair(diction):
|
|||
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"
|
||||
|
||||
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
,index,mots,occurence,moyenne,id_formation,source_field
|
||||
0,0,logo,1,0.5,LS_PA1201913,title
|
||||
1,1,realiser,1,0.5,LS_PA1201913,title
|
||||
0,0,effect,1,0.33,VP14120,title
|
||||
1,1,essentiel,1,0.33,VP14120,title
|
||||
2,2,after,1,0.33,VP14120,title
|
||||
|
|
|
|
@ -1,3 +1,4 @@
|
|||
mots occurence moyenne id_formation source_field
|
||||
0 logo 1 0.5 LS_PA1201913 title
|
||||
1 realiser 1 0.5 LS_PA1201913 title
|
||||
mots occurence moyenne id_formation source_field
|
||||
0 effect 1 0.33 VP14120 title
|
||||
1 essentiel 1 0.33 VP14120 title
|
||||
2 after 1 0.33 VP14120 title
|
|
@ -0,0 +1,230 @@
|
|||
"""
|
||||
Ce ficher gerer l'emargement à une session 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
|
||||
|
||||
|
||||
"""
|
||||
Creation du tableau d'emargement
|
||||
Au debut de la session, le formateur clique sur un bouton qui va
|
||||
aller créer le tableau d'emargement.
|
||||
|
||||
la finction prend en argement :
|
||||
- url_formation
|
||||
- session_id
|
||||
|
||||
"""
|
||||
|
||||
def CreateTableauEmargement(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 = ['class_internal_url', 'session_id', 'token']
|
||||
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 la liste d'emargement. Toutes les informations fournies ne sont pas valables"
|
||||
|
||||
"""
|
||||
Verification de la liste des champs obligatoires
|
||||
"""
|
||||
field_list_obligatoire = ['class_internal_url', 'session_id', 'token']
|
||||
|
||||
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 la liste d'emargement, Toutes les informations necessaires n'ont pas été fournies"
|
||||
|
||||
mydata = {}
|
||||
|
||||
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']:
|
||||
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 "
|
||||
|
||||
session_id = ""
|
||||
if ("session_id" in diction.keys()):
|
||||
if diction['session_id']:
|
||||
mydata['session_id'] = diction['session_id']
|
||||
session_id = diction['session_id']
|
||||
|
||||
"""
|
||||
Recuperation des info de la session de formation
|
||||
"""
|
||||
date_du = ""
|
||||
date_au = ""
|
||||
ville = ""
|
||||
code_postal = ""
|
||||
adresse = ""
|
||||
for tmp_val in MYSY_GV.dbname['myclass'].find({"internal_url":str(class_internal_url),
|
||||
"datelieu.session_id": str(session_id)}):
|
||||
|
||||
tmp_date_lieu = tmp_val['datelieu']
|
||||
for val in tmp_date_lieu:
|
||||
if (val['session_id'] == str(session_id)):
|
||||
date_du = val['date_du']
|
||||
date_au = val['date_au']
|
||||
ville = val['ville']
|
||||
code_postal = val['code_postal']
|
||||
code_postal = val['adresse']
|
||||
|
||||
is_date_du = mycommon.CheckisDate(date_du)
|
||||
is_date_au = mycommon.CheckisDate(date_au)
|
||||
|
||||
if( is_date_du is False or is_date_au is False):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - Impossible de créer la liste d'emargement, Les dates de la session sont incorrectes ")
|
||||
return False, " Impossible de créer la liste d'emargement, Les dates de la session sont incorrectes "
|
||||
|
||||
date_emargement = datetime.strptime(str(date_du), '%d/%m/%Y')
|
||||
i = 0 # compteur de securité
|
||||
|
||||
liste_date = []
|
||||
print(" Date du = "+str(date_du)+" CMP Date au ="+str(date_au))
|
||||
while( date_emargement < datetime.strptime(str(date_au), '%d/%m/%Y') and i < 360):
|
||||
date_10 = str(date_emargement)
|
||||
liste_date.append(date_10[0:10])
|
||||
i = i + 1
|
||||
date_emargement = date_emargement + timedelta(days=1)
|
||||
##print(" ### date_emargement = "+str(date_emargement) + " < "+str(datetime.strptime(str(date_au), '%d/%m/%Y') ))
|
||||
|
||||
|
||||
print("#### Liste Date = "+str(liste_date))
|
||||
coll_emargement = MYSY_GV.dbname['emargement']
|
||||
|
||||
#Recuperation de la liste des participants dont l'inscription est validée
|
||||
for tmp_val in MYSY_GV.dbname['inscription'].find({'session_id':str(session_id),
|
||||
'class_internal_url':str(class_internal_url),
|
||||
'status':'1'} ):
|
||||
my_local_data = {}
|
||||
my_local_data['email'] = tmp_val['email']
|
||||
my_local_data['nom'] = tmp_val['nom']
|
||||
my_local_data['prenom'] = tmp_val['prenom']
|
||||
my_local_data['session_id'] = tmp_val['session_id']
|
||||
my_local_data['class_internal_url'] = tmp_val['class_internal_url']
|
||||
my_local_data['date_update'] = str(datetime.now())
|
||||
|
||||
for local_date in liste_date :
|
||||
new_my_local_data = {}
|
||||
new_my_local_data['email'] = tmp_val['email']
|
||||
new_my_local_data['nom'] = tmp_val['nom']
|
||||
new_my_local_data['prenom'] = tmp_val['prenom']
|
||||
new_my_local_data['session_id'] = tmp_val['session_id']
|
||||
new_my_local_data['class_internal_url'] = tmp_val['class_internal_url']
|
||||
new_my_local_data['date_update'] = str(datetime.now())
|
||||
new_my_local_data['date'] = str(local_date)
|
||||
new_my_local_data['matin'] = '0'
|
||||
new_my_local_data['apresmidi'] = '0'
|
||||
|
||||
print("### emargement insertion de : "+str(new_my_local_data))
|
||||
coll_emargement.insert_one(new_my_local_data)
|
||||
|
||||
|
||||
return True, "ok"
|
||||
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 le tableau d'emargement"
|
||||
|
||||
|
||||
"""
|
||||
Cette fonction recuperer la liste d'emargement
|
||||
"""
|
||||
def GetTableauEmargement(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 = ['class_internal_url', 'session_id', 'token']
|
||||
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 la liste d'emargement. Toutes les informations fournies ne sont pas valables"
|
||||
|
||||
"""
|
||||
Verification de la liste des champs obligatoires
|
||||
"""
|
||||
field_list_obligatoire = ['class_internal_url', 'session_id', 'token']
|
||||
|
||||
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 la liste d'emargement, Toutes les informations necessaires n'ont pas été fournies"
|
||||
|
||||
mydata = {}
|
||||
|
||||
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']:
|
||||
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 "
|
||||
|
||||
session_id = ""
|
||||
if ("session_id" in diction.keys()):
|
||||
if diction['session_id']:
|
||||
mydata['session_id'] = diction['session_id']
|
||||
session_id = diction['session_id']
|
||||
|
||||
|
||||
val_tmp = 1
|
||||
RetObject = []
|
||||
for retval in MYSY_GV.dbname['emargement'].find({'session_id':str(session_id),
|
||||
'class_internal_url':str(class_internal_url)}).sort([("date",pymongo.ASCENDING),]):
|
||||
user = retval
|
||||
user['id'] = str(val_tmp)
|
||||
RetObject.append(mycommon.JSONEncoder().encode(user))
|
||||
val_tmp = val_tmp + 1
|
||||
|
||||
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 le tableau d'emargement"
|
27
main.py
27
main.py
|
@ -30,6 +30,7 @@ import ela_factures_mgt as factures
|
|||
import statistics as Stat
|
||||
import strype_payement as Stripe
|
||||
import Inscription_mgt as inscription
|
||||
import emargement as emargement
|
||||
|
||||
|
||||
app = Flask(__name__)
|
||||
|
@ -1753,6 +1754,32 @@ def GetAllClassStagiaire():
|
|||
return jsonify(status=localStatus, message=message )
|
||||
|
||||
|
||||
"""
|
||||
Cette API Crée la liste d'emargement
|
||||
"""
|
||||
@app.route('/myclass/api/CreateTableauEmargement/', methods=['POST','GET'])
|
||||
@crossdomain(origin='*')
|
||||
def CreateTableauEmargement():
|
||||
# On recupere le corps (payload) de la requete
|
||||
payload = request.form.to_dict()
|
||||
print(" ### CreateTableauEmargement : payload = ",payload)
|
||||
localStatus, message= emargement.CreateTableauEmargement(payload)
|
||||
return jsonify(status=localStatus, message=message )
|
||||
|
||||
"""
|
||||
API de recuperation du tableau d'emargement d'un session de formation
|
||||
"""
|
||||
@app.route('/myclass/api/GetTableauEmargement/', methods=['POST','GET'])
|
||||
@crossdomain(origin='*')
|
||||
def GetTableauEmargement():
|
||||
# On recupere le corps (payload) de la requete
|
||||
payload = request.form.to_dict()
|
||||
print(" ### GetTableauEmargement : payload = ",payload)
|
||||
localStatus, message= emargement.GetTableauEmargement(payload)
|
||||
return jsonify(status=localStatus, message=message )
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(" debut api")
|
||||
context = SSL.Context(SSL.SSLv23_METHOD)
|
||||
|
|
|
@ -464,7 +464,7 @@ Cette fonction verifie si une chaine est de type date jj/mm/aaaa
|
|||
def CheckisDate(mydate):
|
||||
# mydate doit etre au format : jj/mm/aaaa
|
||||
try:
|
||||
print(" analyse de "+mydate)
|
||||
#print(" analyse de "+mydate)
|
||||
val = datetime.strptime(mydate, '%d/%m/%Y')
|
||||
|
||||
return True
|
||||
|
|
Loading…
Reference in New Issue