20/08/23 - 23h30
parent
df18c5fedd
commit
2add31c414
|
@ -1,12 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="19/08/23 - 15h30">
|
||||
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="19/08/23 - 20h30">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Inscription_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/Inscription_mgt.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Log/log_file.log" beforeDir="false" afterPath="$PROJECT_DIR$/Log/log_file.log" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/Session_Formation.py" beforeDir="false" afterPath="$PROJECT_DIR$/Session_Formation.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/prj_common.py" beforeDir="false" afterPath="$PROJECT_DIR$/prj_common.py" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
|
@ -36,7 +35,7 @@
|
|||
"keyToString": {
|
||||
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"last_opened_file_path": "C:/Users/billa/Documents/Projet_X/projet_w_siteweb/developpement/PrjX_back"
|
||||
"last_opened_file_path": "C:/Users/billa/Documents/myclass.com/Siteweb/Production/Ela_back/Modules/Crawl_website"
|
||||
}
|
||||
}</component>
|
||||
<component name="RunManager">
|
||||
|
@ -71,13 +70,6 @@
|
|||
<option name="presentableId" value="Default" />
|
||||
<updated>1680804787304</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00026" summary="23/05/23 - 23h">
|
||||
<created>1684872485100</created>
|
||||
<option name="number" value="00026" />
|
||||
<option name="presentableId" value="LOCAL-00026" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1684872485101</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00027" summary="25/05/23 - 17h">
|
||||
<created>1685028085742</created>
|
||||
<option name="number" value="00027" />
|
||||
|
@ -414,7 +406,14 @@
|
|||
<option name="project" value="LOCAL" />
|
||||
<updated>1692451967069</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="75" />
|
||||
<task id="LOCAL-00075" summary="19/08/23 - 20h30">
|
||||
<created>1692470299774</created>
|
||||
<option name="number" value="00075" />
|
||||
<option name="presentableId" value="LOCAL-00075" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1692470299774</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="76" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
|
@ -429,7 +428,6 @@
|
|||
</option>
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<MESSAGE value="24/07/23 - 17h" />
|
||||
<MESSAGE value="25/07/23 - 21h" />
|
||||
<MESSAGE value="26/07/23 - 23h" />
|
||||
<MESSAGE value="27/07/23 - 23h" />
|
||||
|
@ -454,6 +452,7 @@
|
|||
<MESSAGE value="17/08/23 - 17h" />
|
||||
<MESSAGE value="18/08/23 - 17h30" />
|
||||
<MESSAGE value="19/08/23 - 15h30" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="19/08/23 - 15h30" />
|
||||
<MESSAGE value="19/08/23 - 20h30" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="19/08/23 - 20h30" />
|
||||
</component>
|
||||
</project>
|
|
@ -78,7 +78,7 @@ def AddStagiairetoClass(diction):
|
|||
mydata['session_id'] = str(diction['session_id']).strip()
|
||||
session_id = str(diction['session_id']).strip()
|
||||
|
||||
"""
|
||||
|
||||
mytoken = ""
|
||||
if ("token" in diction.keys()):
|
||||
if diction['token']:
|
||||
|
@ -89,8 +89,8 @@ def AddStagiairetoClass(diction):
|
|||
if (partner_recid is False):
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " - Impossible de recuperer les données du partenaire ")
|
||||
return False, "Impossible de recuperer les données du partenaire "
|
||||
"""
|
||||
|
||||
mydata['partner_owner_recid'] = str(partner_recid)
|
||||
"""
|
||||
Recuperation des info de la session de formation
|
||||
"""
|
||||
|
@ -105,10 +105,7 @@ def AddStagiairetoClass(diction):
|
|||
|
||||
"""
|
||||
new_price = "-1" # 0 ==> par defaut
|
||||
for tmp_val in MYSY_GV.dbname['session_formation'].find({"code_session":str(session_id),
|
||||
'class_internal_url': str(
|
||||
diction['class_internal_url']), 'valide':'1'
|
||||
}):
|
||||
for tmp_val in MYSY_GV.dbname['session_formation'].find({"_id":ObjectId(str(session_id)), 'valide':'1' }):
|
||||
mydata['date_du'] = tmp_val['date_debut']
|
||||
mydata['date_au'] = tmp_val['date_fin']
|
||||
|
||||
|
@ -219,8 +216,8 @@ 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_id':str( mydata['session_id']),
|
||||
'class_internal_url':str(mydata['class_internal_url'])})
|
||||
'session_id':ObjectId(str( mydata['session_id'])),
|
||||
})
|
||||
|
||||
if( tmp > 0 ) :
|
||||
mycommon.myprint(
|
||||
|
@ -230,9 +227,25 @@ def AddStagiairetoClass(diction):
|
|||
return False, "Impossible de créer le stagiaire. l'adresse email "+str(mydata['email'])\
|
||||
+" est deja inscrite à cette session de formation "
|
||||
|
||||
ret_val = coll_inscription.insert_one(mydata)
|
||||
|
||||
inserted_id = ret_val.inserted_id
|
||||
"""
|
||||
Un email ne pouvant s'inscrire qu'a une seule session_id; on fait un usert
|
||||
"""
|
||||
|
||||
ret_val = MYSY_GV.dbname['inscription'].find_one_and_update(
|
||||
{'session_id': str(mydata['session_id']), 'email': str(mydata['email']),},
|
||||
{"$set": mydata},
|
||||
return_document=ReturnDocument.AFTER,
|
||||
upsert=True,
|
||||
)
|
||||
|
||||
if (ret_val is None):
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " - Impossible d'ajouter la participant ")
|
||||
return False, " Impossible d'ajouter la participant "
|
||||
|
||||
#ret_val = coll_inscription.insert_one(mydata)
|
||||
|
||||
inserted_id = ret_val['_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")
|
||||
|
@ -420,6 +433,31 @@ def UpdateStagiairetoClass(diction):
|
|||
if ("client_rattachement_id" in diction.keys()):
|
||||
mydata['client_rattachement_id'] = str(diction['client_rattachement_id']).strip()
|
||||
|
||||
# ici recup des infos de la session
|
||||
local_query = {'_id': ObjectId(str(mysession_id)), 'valide': '1'}
|
||||
print("### local_query = " + str(local_query))
|
||||
|
||||
local_tmp_session_count = MYSY_GV.dbname['session_formation'].count_documents(local_query)
|
||||
if (local_tmp_session_count <= 0):
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " - Aucune session de formation pour " + str(local_query))
|
||||
return False, "Impossible de mettre à jour le stagiaire, Cette session de formation n'est pas valide "
|
||||
|
||||
if (local_tmp_session_count > 1):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - Plusieurs session existent pour ce code sessions " + str(
|
||||
local_query))
|
||||
return False, "Impossible de mettre à jour le stagiaire, Cette session de formation n'est pas valide (2) "
|
||||
|
||||
local_tmp_session_data = MYSY_GV.dbname['session_formation'].find_one(local_query)
|
||||
|
||||
"""
|
||||
update de 20/08/23 :
|
||||
Vu qu'on autorise maintenant le changement de session, alors pour parer à une eventellement changement de sessio
|
||||
pour une affectation a une session appartenant à une autre formation,
|
||||
on va ecraser le 'class_internal_url' de la collection 'inscription' avec celui de la collection 'session_formation'
|
||||
|
||||
"""
|
||||
mydata['class_internal_url'] = str(local_tmp_session_data['class_internal_url']).strip()
|
||||
|
||||
"""
|
||||
Pour gerer la date de validation, differemment d'une simple mise à jour,
|
||||
|
@ -487,20 +525,8 @@ def UpdateStagiairetoClass(diction):
|
|||
lms_class_code = local_tmp_myclass['lms_class_code']
|
||||
|
||||
|
||||
# ici recup des infos de la session
|
||||
local_query = {'code_session':str(mysession_id), 'class_internal_url':str(diction['class_internal_url']).strip(), 'valide':'1'}
|
||||
print("### local_query = "+str(local_query))
|
||||
|
||||
|
||||
local_tmp_session_count = MYSY_GV.dbname['session_formation'].count_documents(local_query)
|
||||
if( local_tmp_session_count <= 0 ):
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " - Aucune session de formation pour "+str(local_query))
|
||||
return False, "Impossible de mettre à jour le stagiaire, Cette session de formation n'est pas valide "
|
||||
|
||||
if (local_tmp_session_count > 1):
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " - Plusieurs session existent pour ce code sessions " + str(local_query))
|
||||
return False, "Impossible de mettre à jour le stagiaire, Cette session de formation n'est pas valide (2) "
|
||||
|
||||
|
||||
|
||||
if ( diction['status'] == "1" ):
|
||||
|
@ -1460,7 +1486,7 @@ def AddStagiairetoClass_mass(file=None, Folder=None, diction=None):
|
|||
# Ici on doit mettre tous les champs possible (obligatoire ou non) de la BDD dans la liste
|
||||
# field_list.
|
||||
'''
|
||||
field_list = ['token','session_id', 'class_internal_url']
|
||||
field_list = ['token', 'code_session', 'class_internal_url']
|
||||
incom_keys = diction.keys()
|
||||
for val in incom_keys:
|
||||
if val not in field_list:
|
||||
|
@ -1471,7 +1497,7 @@ def AddStagiairetoClass_mass(file=None, Folder=None, diction=None):
|
|||
Une fois qu'on a controlé que toutes les clés mise dans l'API sont correcte. etape precedente,
|
||||
On controle que les champs obligatoires sont presents dans la liste
|
||||
'''
|
||||
field_list_obligatoire = ['token', 'session_id', 'class_internal_url']
|
||||
field_list_obligatoire = ['token', 'code_session', 'class_internal_url']
|
||||
|
||||
for val in field_list_obligatoire:
|
||||
if val not in diction:
|
||||
|
@ -1483,16 +1509,23 @@ def AddStagiairetoClass_mass(file=None, Folder=None, diction=None):
|
|||
if diction['token']:
|
||||
my_token = diction['token']
|
||||
|
||||
partner_recid = mycommon.get_parnter_recid_from_token(my_token)
|
||||
if (partner_recid is False):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " - partner_recid KO : Impossible d'importer la liste des participants ")
|
||||
return False, " Les information de connexion sont incorrectes. Impossible d'importer la liste des participants"
|
||||
|
||||
# Verifier la validité du token
|
||||
retval = mycommon.check_partner_token_validity("", my_token)
|
||||
if retval is False:
|
||||
return "Err_Connexion", " La session de connexion n'est pas valide"
|
||||
|
||||
|
||||
session_id = ""
|
||||
if ("session_id" in diction.keys()):
|
||||
if diction['session_id']:
|
||||
session_id = diction['session_id']
|
||||
|
||||
code_session = ""
|
||||
if ("code_session" in diction.keys()):
|
||||
if diction['code_session']:
|
||||
code_session = diction['code_session']
|
||||
|
||||
class_internal_url = ""
|
||||
if ("class_internal_url" in diction.keys()):
|
||||
|
@ -1501,7 +1534,8 @@ def AddStagiairetoClass_mass(file=None, Folder=None, diction=None):
|
|||
|
||||
|
||||
# Verification de l'existance de la formation (class_internal_url)
|
||||
tmp_count = MYSY_GV.dbname['myclass'].count_documents({'internal_url': str(class_internal_url), 'valide': '1', 'locked':'0'})
|
||||
tmp_count = MYSY_GV.dbname['myclass'].count_documents({'internal_url': str(class_internal_url), 'valide': '1',
|
||||
'locked':'0', 'partner_owner_recid':str(partner_recid)})
|
||||
|
||||
# logging.info(" TMP = "+str(tmp))
|
||||
if (tmp_count <= 0):
|
||||
|
@ -1509,17 +1543,23 @@ def AddStagiairetoClass_mass(file=None, Folder=None, diction=None):
|
|||
return False, " Cette formation n'est pas valide "
|
||||
|
||||
|
||||
|
||||
if(len(str(session_id).strip()) <= 0 ):
|
||||
## Verification de l'existance de session et recuperation de de "_id"
|
||||
session_count = MYSY_GV.dbname['session_formation'].count_documents({'class_internal_url':str(class_internal_url), 'valide': '1',
|
||||
'code_session':str(code_session), 'partner_owner_recid':str(partner_recid)})
|
||||
if (session_count <= 0):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " La session de formation est vide : Impossible d'importer la liste des participants ")
|
||||
return False, " La session de formation est incorrecte. Impossible d'importer la liste des participants"
|
||||
str(inspect.stack()[0][3]) + " -" + str(code_session) + " : ' Cette session n'est pas valide ")
|
||||
return False, " La session de formation "+str(code_session)+" n'est pas valide "
|
||||
|
||||
if (session_count > 1):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " -" + str(code_session) + " : ' Cette session existe en double ")
|
||||
return False, " La session de formation "+str(code_session)+" n'est est incohérente "
|
||||
|
||||
session_data = MYSY_GV.dbname['session_formation'].find_one(
|
||||
{'class_internal_url': str(class_internal_url), 'valide': '1',
|
||||
'code_session': str(code_session), 'partner_owner_recid': str(partner_recid)}, {'_id':1})
|
||||
|
||||
partner_recid = mycommon.get_parnter_recid_from_token(my_token)
|
||||
if (partner_recid is False):
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " - partner_recid KO : Impossible d'importer la liste des participants ")
|
||||
return False, " Les information de connexion sont incorrectes. Impossible d'importer la liste des participants"
|
||||
|
||||
status, saved_file = mycommon.Upload_Save_CSV_File(file, Folder)
|
||||
if (status == False):
|
||||
|
@ -1584,7 +1624,7 @@ def AddStagiairetoClass_mass(file=None, Folder=None, diction=None):
|
|||
mydata['employeur'] = str(df['employeur'].values[n])
|
||||
mydata['telephone'] = str(df['telephone'].values[n])
|
||||
mydata['email'] = str(df['email'].values[n])
|
||||
mydata['session_id'] = str(session_id)
|
||||
mydata['session_id'] = str(session_data['_id'])
|
||||
mydata['token'] = str(my_token)
|
||||
|
||||
modefinancement = ""
|
||||
|
@ -1631,34 +1671,36 @@ def AddStagiairetoClass_mass(file=None, Folder=None, diction=None):
|
|||
"""
|
||||
client_rattachement_email = ""
|
||||
if ("client_rattachement_email" in df.keys()):
|
||||
if (str(df['client_rattachement_email'].values[n])):
|
||||
if (str(df['client_rattachement_email'].values[n]) and str(df['client_rattachement_email'].values[n]) != "nan" ):
|
||||
client_rattachement_email = str(df['client_rattachement_email'].values[n])
|
||||
|
||||
|
||||
client_rattachement_nom = ""
|
||||
if ("client_rattachement_nom" in df.keys()):
|
||||
if ("client_rattachement_nom" in df.keys() and str(df['client_rattachement_nom'].values[n]) != "nan"):
|
||||
if (str(df['client_rattachement_nom'].values[n])):
|
||||
client_rattachement_nom = str(df['client_rattachement_nom'].values[n])
|
||||
|
||||
local_client_retval_qry = {'email':str(client_rattachement_email), 'nom':str(client_rattachement_nom), 'valide':'1',
|
||||
'locked':'0', 'partner_recid' :str(partner_recid)}
|
||||
local_client_retval_count = MYSY_GV.dbname['partner_client'].count_documents(local_client_retval_qry)
|
||||
if( client_rattachement_email and client_rattachement_nom ):
|
||||
local_client_retval_qry = {'email':str(client_rattachement_email), 'nom':str(client_rattachement_nom), 'valide':'1',
|
||||
'locked':'0', 'partner_recid' :str(partner_recid)}
|
||||
|
||||
if( local_client_retval_count > 1 ):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) +"Ligne : "+str(n) +". Plusieurs clients correspondent aux critère de nom :"+str(client_rattachement_nom)+" et email : "+str(client_rattachement_email))
|
||||
return False, "Ligne : "+str(n) +". Plusieurs clients correspondent aux critère de nom :"+str(client_rattachement_nom)+" et email : "+str(client_rattachement_email)
|
||||
local_client_retval_count = MYSY_GV.dbname['partner_client'].count_documents(local_client_retval_qry)
|
||||
|
||||
if (local_client_retval_count < 1):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + "Ligne : "+str(n) +". Aucun client ne repond aux critères de nom :" + str(
|
||||
client_rattachement_nom) + " et email : " + str(client_rattachement_email))
|
||||
return False, "Ligne : "+str(n) +". Aucun client ne repond aux critères de nom :" + str(
|
||||
client_rattachement_nom) + " et email : " + str(client_rattachement_email)
|
||||
if( local_client_retval_count > 1 ):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) +"Ligne : "+str(n) +". Plusieurs clients correspondent aux critère de nom :"+str(client_rattachement_nom)+" et email : "+str(client_rattachement_email))
|
||||
return False, "Ligne : "+str(n) +". Plusieurs clients correspondent aux critère de nom :"+str(client_rattachement_nom)+" et email : "+str(client_rattachement_email)
|
||||
|
||||
local_client_retval_data = MYSY_GV.dbname['partner_client'].find_one(local_client_retval_qry)
|
||||
if( local_client_retval_data is not None ):
|
||||
mydata['client_rattachement_id'] = local_client_retval_data['_id']
|
||||
if (local_client_retval_count < 1):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + "Ligne : "+str(n) +". Aucun client ne repond aux critères de nom :" + str(
|
||||
client_rattachement_nom) + " et email : " + str(client_rattachement_email))
|
||||
return False, "Ligne : "+str(n) +". Aucun client ne repond aux critères de nom :" + str(
|
||||
client_rattachement_nom) + " et email : " + str(client_rattachement_email)
|
||||
|
||||
local_client_retval_data = MYSY_GV.dbname['partner_client'].find_one(local_client_retval_qry)
|
||||
if( local_client_retval_data is not None ):
|
||||
mydata['client_rattachement_id'] = local_client_retval_data['_id']
|
||||
|
||||
|
||||
mydata['status'] = str(df['status'].values[n]).strip()
|
||||
|
@ -1821,16 +1863,64 @@ def AddStagiairetoClass_mass_for_many_session(file=None, Folder=None, diction=No
|
|||
mydata['employeur'] = str(df['employeur'].values[n])
|
||||
mydata['telephone'] = str(df['telephone'].values[n])
|
||||
mydata['email'] = str(df['email'].values[n])
|
||||
mydata['session_id'] = str(df['code_session'].values[n])
|
||||
|
||||
mydata['token'] = str(my_token)
|
||||
|
||||
"""
|
||||
Recuperation de l'internal url de la formation a partir de la cle
|
||||
- formation code externe
|
||||
- partner_owner_recid
|
||||
"""
|
||||
qry = {'external_code':str(class_external_code), 'valide':'-51', 'locked':'0', 'partner_owner_recid':str(partner_recid)}
|
||||
print(" ### qry = ", qry)
|
||||
myclass_data_count = MYSY_GV.dbname['myclass'].count_documents({'external_code':str(class_external_code), 'valide':'1', 'locked':'0',
|
||||
'partner_owner_recid':str(partner_recid)})
|
||||
|
||||
if( myclass_data_count != 1 ):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + "Ligne : " + str(
|
||||
n + 2) + ": Le code externe de la formation et le code de la session ne correspondent pas .")
|
||||
return False, "Ligne : " + str(
|
||||
n + 2) + ": Le code externe de la formation et le code de la session ne correspondent pas."
|
||||
|
||||
|
||||
myclass_data = MYSY_GV.dbname['myclass'].find_one({'external_code':str(class_external_code), 'valide':'1', 'locked':'0',
|
||||
'partner_owner_recid':str(partner_recid)})
|
||||
|
||||
mysession_count_qry = {'class_internal_url': str(myclass_data['internal_url']), 'valide': '1',
|
||||
'partner_owner_recid': str(partner_recid), 'code_session':str(df['code_session'].values[n]) }
|
||||
|
||||
print(" ### mysession_count_qry = ", qry)
|
||||
|
||||
mysession_count = MYSY_GV.dbname['session_formation'].count_documents(mysession_count_qry)
|
||||
|
||||
if( mysession_count != 1):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + "Ligne : " + str(
|
||||
n + 2) + ": Le code externe de la formation et le code de la session ne correspondent pas (2).")
|
||||
return False, "Ligne : " + str(
|
||||
n + 2) + ": Le code externe de la formation et le code de la session ne correspondent pas (2)."
|
||||
|
||||
mysession_data = MYSY_GV.dbname['session_formation'].find_one(mysession_count_qry)
|
||||
|
||||
|
||||
|
||||
mydata['session_id'] = str(mysession_data['_id'])
|
||||
mydata['class_internal_url'] = str(mysession_data['class_internal_url'])
|
||||
"""
|
||||
Recuperation de l''_id' de la session à partir de la clé
|
||||
- formation code externe
|
||||
- code_session
|
||||
- partner_owner_recid
|
||||
"""
|
||||
|
||||
"""
|
||||
On verifie que le code de le session et le l'external class code correspondent.
|
||||
En gros : que la formation en question a bien une session du meme code
|
||||
"""
|
||||
|
||||
|
||||
check_class_session_query = [{'$match': {'code_session':str(df['code_session'].values[n])}},
|
||||
"""check_class_session_query = [{'$match': {'code_session':str(df['code_session'].values[n])}},
|
||||
{'$lookup':
|
||||
{
|
||||
'from': 'myclass',
|
||||
|
@ -1856,9 +1946,9 @@ def AddStagiairetoClass_mass_for_many_session(file=None, Folder=None, diction=No
|
|||
str(inspect.stack()[0][3]) + "Ligne : " + str(
|
||||
n+2) + ": Le code externe de la formation et le code de la session ne correspondent pas .")
|
||||
return False, "Ligne : " + str(n+2) + ": Le code externe de la formation et le code de la session ne correspondent pas."
|
||||
"""
|
||||
|
||||
|
||||
mydata['class_internal_url'] = real_class_internal_url
|
||||
|
||||
|
||||
modefinancement = ""
|
||||
|
@ -1905,35 +1995,35 @@ def AddStagiairetoClass_mass_for_many_session(file=None, Folder=None, diction=No
|
|||
"""
|
||||
client_rattachement_email = ""
|
||||
if ("client_rattachement_email" in df.keys()):
|
||||
if (str(df['client_rattachement_email'].values[n])):
|
||||
if (str(df['client_rattachement_email'].values[n]) and str(df['client_rattachement_email'].values[n]) != "nan"):
|
||||
client_rattachement_email = str(df['client_rattachement_email'].values[n])
|
||||
|
||||
|
||||
client_rattachement_nom = ""
|
||||
if ("client_rattachement_nom" in df.keys()):
|
||||
if (str(df['client_rattachement_nom'].values[n])):
|
||||
if (str(df['client_rattachement_nom'].values[n]) and str(df['client_rattachement_nom'].values[n]) != "nan" ):
|
||||
client_rattachement_nom = str(df['client_rattachement_nom'].values[n])
|
||||
if (client_rattachement_email and client_rattachement_nom):
|
||||
local_client_retval_qry = {'email':str(client_rattachement_email), 'nom':str(client_rattachement_nom),
|
||||
'valide':'1', 'locked':'0', 'partner_recid' :str(partner_recid)}
|
||||
|
||||
local_client_retval_qry = {'email':str(client_rattachement_email), 'nom':str(client_rattachement_nom),
|
||||
'valide':'1', 'locked':'0', 'partner_recid' :str(partner_recid)}
|
||||
local_client_retval_count = MYSY_GV.dbname['partner_client'].count_documents(local_client_retval_qry)
|
||||
|
||||
local_client_retval_count = MYSY_GV.dbname['partner_client'].count_documents(local_client_retval_qry)
|
||||
if( local_client_retval_count > 1 ):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) +"Ligne : "+str(n+2) +". Plusieurs clients correspondent aux critère de nom :"+str(client_rattachement_nom)+" et email : "+str(client_rattachement_email))
|
||||
return False, "Ligne : "+str(n+2) +". Plusieurs clients correspondent aux critère de nom :"+str(client_rattachement_nom)+" et email : "+str(client_rattachement_email)
|
||||
|
||||
if( local_client_retval_count > 1 ):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) +"Ligne : "+str(n+2) +". Plusieurs clients correspondent aux critère de nom :"+str(client_rattachement_nom)+" et email : "+str(client_rattachement_email))
|
||||
return False, "Ligne : "+str(n+2) +". Plusieurs clients correspondent aux critère de nom :"+str(client_rattachement_nom)+" et email : "+str(client_rattachement_email)
|
||||
if (local_client_retval_count < 1):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + "Ligne : "+str(n+2) +". Aucun client ne repond aux critères de nom :" + str(
|
||||
client_rattachement_nom) + " et email : " + str(client_rattachement_email))
|
||||
return False, "Ligne : "+str(n+2) +". Aucun client ne repond aux critères de nom :" + str(
|
||||
client_rattachement_nom) + " et email : " + str(client_rattachement_email)
|
||||
|
||||
if (local_client_retval_count < 1):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + "Ligne : "+str(n+2) +". Aucun client ne repond aux critères de nom :" + str(
|
||||
client_rattachement_nom) + " et email : " + str(client_rattachement_email))
|
||||
return False, "Ligne : "+str(n+2) +". Aucun client ne repond aux critères de nom :" + str(
|
||||
client_rattachement_nom) + " et email : " + str(client_rattachement_email)
|
||||
|
||||
local_client_retval_data = MYSY_GV.dbname['partner_client'].find_one(local_client_retval_qry)
|
||||
if( local_client_retval_data is not None ):
|
||||
mydata['client_rattachement_id'] = local_client_retval_data['_id']
|
||||
local_client_retval_data = MYSY_GV.dbname['partner_client'].find_one(local_client_retval_qry)
|
||||
if( local_client_retval_data is not None ):
|
||||
mydata['client_rattachement_id'] = local_client_retval_data['_id']
|
||||
|
||||
|
||||
mydata['status'] = str(df['status'].values[n]).strip()
|
||||
|
@ -3761,12 +3851,9 @@ def Get_Statgaire_List_Partner_with_filter(diction):
|
|||
if ("nom" in diction.keys()):
|
||||
filt_nom = {'nom': {'$regex': str(diction['nom']), "$options": "i"}}
|
||||
|
||||
|
||||
|
||||
|
||||
filt_class_partner_recid = {'partner_owner_recid': str(partner_recid)}
|
||||
|
||||
query = [{'$match':{ '$and' : [ filt_class_internal_url, filt_session_id, filt_email, filt_nom] } },
|
||||
query = [{'$match':{ '$and' : [ filt_class_internal_url, filt_session_id, filt_email, filt_nom, {'partner_owner_recid':str(partner_recid)}] } },
|
||||
{'$lookup':
|
||||
{
|
||||
'from': 'myclass',
|
||||
|
@ -3825,14 +3912,18 @@ def Get_Statgaire_List_Partner_with_filter(diction):
|
|||
val['domaine'] = retVal['myclass_collection'][0]['domaine']
|
||||
|
||||
# Recuperation des informations de la session
|
||||
local_qry = {'class_internal_url':str(retVal['class_internal_url']), 'code_session':str(retVal['session_id']), 'valide':'1'}
|
||||
local_qry = {'_id':ObjectId(retVal['session_id']), 'valide':'1'}
|
||||
|
||||
|
||||
count_session = MYSY_GV.dbname['session_formation'].count_documents(local_qry)
|
||||
|
||||
client_rattachement_id = ""
|
||||
client_rattachement_nom = ""
|
||||
# Si il a un client rattacher, recuperation des information du client
|
||||
|
||||
#print(" ### retVal = ", retVal )
|
||||
if( "client_rattachement_id" in retVal.keys()):
|
||||
if( retVal['client_rattachement_id']):
|
||||
if( retVal['client_rattachement_id'] and str(retVal['client_rattachement_id'] ) != 'undefined'):
|
||||
client_retval = MYSY_GV.dbname['partner_client'].find_one({'id':ObjectId( retVal['client_rattachement_id']),
|
||||
'valide':'1', 'locked':'0'})
|
||||
|
||||
|
@ -3854,8 +3945,7 @@ def Get_Statgaire_List_Partner_with_filter(diction):
|
|||
|
||||
#qry2 = {'class_internal_url':str(retVal['class_internal_url']), 'code_session':str(retVal['session_id']), 'valide':'1'}
|
||||
#print(" ### qry 2 =", qry2)
|
||||
session_retval = MYSY_GV.dbname['session_formation'].find_one({'class_internal_url':str(retVal['class_internal_url']),
|
||||
'code_session':str(retVal['session_id']), 'valide':'1'})
|
||||
session_retval = MYSY_GV.dbname['session_formation'].find_one({'_id':ObjectId(str(retVal['session_id'])), 'valide':'1'})
|
||||
|
||||
|
||||
if ("date_debut" in session_retval.keys()):
|
||||
|
|
3509
Log/log_file.log
3509
Log/log_file.log
File diff suppressed because it is too large
Load Diff
|
@ -108,6 +108,15 @@ def Add_Update_SessionFormation(diction):
|
|||
return False, "Impossible de recuperer les données du partenaire "
|
||||
|
||||
|
||||
"""
|
||||
update du 20/08/23 :
|
||||
on ajouter un champs 'owner_recid' a la session.
|
||||
en effet 2 partenaire peuvent avoir exactement la meme formation et les memes code session.
|
||||
il faut arriver à les distinguer tout de meme
|
||||
"""
|
||||
mydata['partner_owner_recid'] = str(partner_recid)
|
||||
|
||||
|
||||
if ("date_debut" in diction.keys()):
|
||||
mydata['date_debut'] = diction['date_debut']
|
||||
|
||||
|
@ -421,7 +430,7 @@ def GetSessionFormation(diction):
|
|||
|
||||
coll_session = MYSY_GV.dbname['session_formation']
|
||||
|
||||
myquery = [{'$match':{'code_session':code_session, 'class_internal_url':class_internal_url}},
|
||||
myquery = [{'$match':{'code_session':code_session, 'class_internal_url':class_internal_url, 'partner_owner_recid':str(partner_recid)}},
|
||||
{'$lookup':
|
||||
{
|
||||
'from': 'myclass',
|
||||
|
@ -466,7 +475,7 @@ d'une formation données ET les sessions "on demande"
|
|||
def GetActiveSessionFormation_List(diction):
|
||||
try:
|
||||
|
||||
field_list = ['class_internal_url']
|
||||
field_list = ['token', 'class_internal_url']
|
||||
incom_keys = diction.keys()
|
||||
for val in incom_keys:
|
||||
if val not in field_list:
|
||||
|
@ -477,13 +486,18 @@ def GetActiveSessionFormation_List(diction):
|
|||
"""
|
||||
Verification de la liste des champs obligatoires
|
||||
"""
|
||||
field_list_obligatoire = [ 'class_internal_url', ]
|
||||
field_list_obligatoire = [ 'token', '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 recuperer la liste des session de formation"
|
||||
|
||||
local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction)
|
||||
if (local_status is not True):
|
||||
return local_status, my_partner
|
||||
|
||||
|
||||
# Recuperation du recid du partner
|
||||
mydata = {}
|
||||
|
||||
|
@ -495,6 +509,7 @@ def GetActiveSessionFormation_List(diction):
|
|||
coll_session = MYSY_GV.dbname['session_formation']
|
||||
myquery = {}
|
||||
myquery['class_internal_url'] = class_internal_url
|
||||
myquery['partner_owner_recid'] = str(my_partner['recid'])
|
||||
myquery['valide'] = "1"
|
||||
myquery['session_status'] = "true"
|
||||
|
||||
|
@ -539,7 +554,7 @@ Qu'elles soient cloturées ou pas."""
|
|||
def GetAllValideSessionFormation_List(diction):
|
||||
try:
|
||||
|
||||
field_list = ['class_internal_url']
|
||||
field_list = ['token', 'class_internal_url']
|
||||
incom_keys = diction.keys()
|
||||
for val in incom_keys:
|
||||
if val not in field_list:
|
||||
|
@ -550,7 +565,7 @@ def GetAllValideSessionFormation_List(diction):
|
|||
"""
|
||||
Verification de la liste des champs obligatoires
|
||||
"""
|
||||
field_list_obligatoire = ['class_internal_url', ]
|
||||
field_list_obligatoire = ['token', 'class_internal_url', ]
|
||||
for val in field_list_obligatoire:
|
||||
if val not in diction:
|
||||
mycommon.myprint(
|
||||
|
@ -560,6 +575,10 @@ def GetAllValideSessionFormation_List(diction):
|
|||
# Recuperation du recid du partner
|
||||
mydata = {}
|
||||
|
||||
local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction)
|
||||
if (local_status is not True):
|
||||
return local_status, my_partner
|
||||
|
||||
class_internal_url = ""
|
||||
if ("class_internal_url" in diction.keys()):
|
||||
if diction['class_internal_url']:
|
||||
|
@ -568,6 +587,7 @@ def GetAllValideSessionFormation_List(diction):
|
|||
coll_session = MYSY_GV.dbname['session_formation']
|
||||
myquery = {}
|
||||
myquery['class_internal_url'] = class_internal_url
|
||||
myquery['partner_owner_recid'] = str(my_partner['recid'])
|
||||
myquery['valide'] = "1"
|
||||
|
||||
#print(" ##### myquery = "+str(myquery))
|
||||
|
@ -627,7 +647,7 @@ def GetAllValideSessionPartner_List(diction):
|
|||
|
||||
filt_class_partner_recid = {'partner_owner_recid': str(my_partner['recid'])}
|
||||
|
||||
query = [
|
||||
query = [{'$match': {'partner_owner_recid':str(my_partner['recid'])}},
|
||||
{'$lookup':
|
||||
{
|
||||
'from': 'myclass',
|
||||
|
@ -777,7 +797,7 @@ def GetAllValideSessionPartner_List_filter_like(diction):
|
|||
|
||||
coll_session = MYSY_GV.dbname['session_formation']
|
||||
|
||||
query = [{'$match':filt_code_session },
|
||||
query = [ {'$match':{ '$and' : [ filt_code_session,{'partner_owner_recid':str(my_partner['recid'])}] }} ,
|
||||
{'$lookup':
|
||||
{
|
||||
'from': 'myclass',
|
||||
|
@ -1262,9 +1282,21 @@ def Add_Update_SessionFormation_mass(file=None, Folder=None, diction=None):
|
|||
diction_for_session_id['code_postal'] = str(mydata['code_postal'] )
|
||||
diction_for_session_id['adresse'] = str(mydata['adresse'])
|
||||
|
||||
"""
|
||||
Verifier si la session existe deja en base, si c'est le cas recuperer le '_id'
|
||||
la clé pour verifier l'existance d'une session est :
|
||||
- code_session
|
||||
- class_internal_url
|
||||
- partner_owner_recid
|
||||
"""
|
||||
|
||||
existing_session = MYSY_GV.dbname['session_formation'].find_one(
|
||||
{'code_session': str(local_code_session), 'class_internal_url': str(class_internal_url),
|
||||
'partner_owner_recid': str(partner_recid), 'valide': '1'})
|
||||
|
||||
mydata['formation_session_id'] = str(mydata['code_session'])
|
||||
if (existing_session is not None):
|
||||
if ('_id' in existing_session.keys()):
|
||||
mydata['session_id'] = existing_session['_id']
|
||||
|
||||
clean_dict = {k: mydata[k] for k in mydata if (str(mydata[k]) != "nan")}
|
||||
|
||||
|
@ -1497,9 +1529,9 @@ def Add_Update_SessionFormation_mass_for_many_class(file=None, Folder=None, dict
|
|||
|
||||
if( count_class != 1 ):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " Le champs 'code_exyer' de ligne " + str(
|
||||
str(inspect.stack()[0][3]) + " Le champs 'code_externe' de ligne " + str(
|
||||
n + 2) + " ne correspond pas à une formation valide.")
|
||||
return False, " Le champs 'code_exyer' de ligne " + str(
|
||||
return False, " Le champs 'code_externe' de ligne " + str(
|
||||
n + 2) + " ne correspond pas à une formation valide."
|
||||
|
||||
class_from_external_code = MYSY_GV.dbname['myclass'].find({'external_code':str(external_code), 'valide':'1',
|
||||
|
@ -1519,8 +1551,8 @@ def Add_Update_SessionFormation_mass_for_many_class(file=None, Folder=None, dict
|
|||
Ceci est lié au fait que c'est une formation qui est sur la plateforme LMS
|
||||
"""
|
||||
if ("lms_class_code" in class_from_external_code[0].keys()):
|
||||
if (str(class_from_external_code[0]['code_session'].values[n])):
|
||||
formation_data_lms_class_code = str(class_from_external_code[0]['code_session'].values[n])
|
||||
if ( class_from_external_code[0]['lms_class_code']):
|
||||
formation_data_lms_class_code = str(class_from_external_code[0]['lms_class_code'])
|
||||
mydata['lms_class_code'] = formation_data_lms_class_code
|
||||
|
||||
|
||||
|
@ -1690,7 +1722,20 @@ def Add_Update_SessionFormation_mass_for_many_class(file=None, Folder=None, dict
|
|||
diction_for_session_id['code_postal'] = str(mydata['code_postal'])
|
||||
diction_for_session_id['adresse'] = str(mydata['adresse'])
|
||||
|
||||
mydata['formation_session_id'] = str(mydata['code_session'])
|
||||
"""
|
||||
Verifier si la session existe deja en base, si c'est le cas recuperer le '_id'
|
||||
la clé pour verifier l'existance d'une session est :
|
||||
- code_session
|
||||
- class_internal_url
|
||||
- partner_owner_recid
|
||||
"""
|
||||
|
||||
existing_session = MYSY_GV.dbname['session_formation'].find_one({'code_session':str(local_code_session), 'class_internal_url':str(class_internal_url),
|
||||
'partner_owner_recid':str(partner_recid), 'valide':'1'})
|
||||
|
||||
if( existing_session is not None):
|
||||
if( '_id' in existing_session.keys()):
|
||||
mydata['session_id'] = existing_session['_id']
|
||||
|
||||
clean_dict = {k: mydata[k] for k in mydata if (str(mydata[k]) != "nan")}
|
||||
|
||||
|
|
|
@ -2901,7 +2901,7 @@ def GetAttendeeDetail_perSession(diction):
|
|||
{'$expr':
|
||||
{'$and':
|
||||
[
|
||||
{'$eq': ["$code_session", "$$session_id"]},
|
||||
{'$eq': ['$_id', { '$toObjectId': '$$session_id' }]},
|
||||
{'$eq': ["$class_internal_url", "$$class_internal_url"]},
|
||||
{'$eq': ["$valide", "1"]}
|
||||
]
|
||||
|
@ -2927,7 +2927,7 @@ def GetAttendeeDetail_perSession(diction):
|
|||
|
||||
for local_Insc_retval in MYSY_GV.dbname['inscription'].aggregate(pipe_qry) :
|
||||
|
||||
print(" ### local_Insc_retval == ", local_Insc_retval)
|
||||
print(" ### local_Insc_retval laa== ", local_Insc_retval)
|
||||
|
||||
if( local_Insc_retval is None):
|
||||
myprint(str(inspect.stack()[0][3]) + " - Impossible de recuperer le recid du partenaire (2)")
|
||||
|
@ -2939,6 +2939,10 @@ def GetAttendeeDetail_perSession(diction):
|
|||
if ("session_id" in local_Insc_retval.keys()):
|
||||
my_retrun_dict['session_id'] = local_Insc_retval['session_id']
|
||||
|
||||
|
||||
if ("code_session" in local_Insc_retval['inscription_collectoin'][0].keys()):
|
||||
my_retrun_dict['code_session'] = str(local_Insc_retval['inscription_collectoin'][0]['code_session'])
|
||||
|
||||
if ("date_debut" in local_Insc_retval['inscription_collectoin'][0].keys()):
|
||||
my_retrun_dict['date_du'] = str(local_Insc_retval['inscription_collectoin'][0]['date_debut'])[0:10]
|
||||
|
||||
|
@ -3006,8 +3010,8 @@ def GetAttendeeDetail_perSession(diction):
|
|||
my_retrun_dict['status'] = local_status
|
||||
|
||||
local_price = ""
|
||||
if ("price" in local_Insc_retval['inscription_collectoin'][0].keys()):
|
||||
local_price = local_Insc_retval['inscription_collectoin'][0]['price']
|
||||
if ("price" in local_Insc_retval.keys()):
|
||||
local_price = local_Insc_retval['price']
|
||||
my_retrun_dict['price'] = local_price
|
||||
|
||||
local_inscription_validation_date = ""
|
||||
|
@ -3034,8 +3038,7 @@ def GetAttendeeDetail_perSession(diction):
|
|||
client_rattachement_id = ""
|
||||
client_rattachement_nom = ""
|
||||
if ("client_rattachement_id" in local_Insc_retval.keys()):
|
||||
if( local_Insc_retval['client_rattachement_id']):
|
||||
|
||||
if( local_Insc_retval['client_rattachement_id'] and str(local_Insc_retval['client_rattachement_id']) != 'undefined' ):
|
||||
local_client_retval_data = MYSY_GV.dbname['partner_client'].find_one({'_id': ObjectId(str(local_Insc_retval['client_rattachement_id'])),
|
||||
'valide': '1', 'locked': '0'}, {'_id':1, 'nom':1})
|
||||
|
||||
|
|
Loading…
Reference in New Issue