18/03/2026 - 22h

Signed-off-by: Cherif <cbalde@mysy-training.com>
master_Elyos_FI
Cherif 2026-03-19 19:32:43 +01:00
parent 1f5a3e4ba7
commit e772823526
9 changed files with 6421 additions and 94 deletions

View File

@ -4,19 +4,16 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="14/03/2026 - 22h">
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="17/03/2026 - 22h">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Dashbord_queries/inscription_tdb_qries.py" beforeDir="false" afterPath="$PROJECT_DIR$/Dashbord_queries/inscription_tdb_qries.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$/agenda.py" beforeDir="false" afterPath="$PROJECT_DIR$/agenda.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/apprenant_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/apprenant_mgt.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/class_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/class_mgt.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/email_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/email_mgt.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ent_student_common.py" beforeDir="false" afterPath="$PROJECT_DIR$/ent_student_common.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/partners.py" beforeDir="false" afterPath="$PROJECT_DIR$/partners.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ressources_humaines.py" beforeDir="false" afterPath="$PROJECT_DIR$/ressources_humaines.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/emargement.py" beforeDir="false" afterPath="$PROJECT_DIR$/emargement.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/prj_common.py" beforeDir="false" afterPath="$PROJECT_DIR$/prj_common.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/session_admission_fi.py" beforeDir="false" afterPath="$PROJECT_DIR$/session_admission_fi.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/user_access_right.py" beforeDir="false" afterPath="$PROJECT_DIR$/user_access_right.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/survey_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/survey_mgt.py" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -460,7 +457,7 @@
<option name="project" value="LOCAL" />
<updated>1747251650255</updated>
</task>
<option name="localTasksCounter" value="549" />
<option name="localTasksCounter" value="550" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
@ -502,7 +499,6 @@
</option>
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="04/01/26 - 21h30" />
<MESSAGE value="09/01/26 - 20h30" />
<MESSAGE value="30/01/2026 - 18h" />
<MESSAGE value="02/02/2026 - 18h" />
@ -527,6 +523,7 @@
<MESSAGE value="08/03/26 - 20h" />
<MESSAGE value="10/03/26 - 20h" />
<MESSAGE value="14/03/2026 - 22h" />
<option name="LAST_COMMIT_MESSAGE" value="14/03/2026 - 22h" />
<MESSAGE value="17/03/2026 - 22h" />
<option name="LAST_COMMIT_MESSAGE" value="17/03/2026 - 22h" />
</component>
</project>

View File

@ -1103,15 +1103,16 @@ def Get_Qery_Inscription_Group_By_Class(diction):
cpt = 0
tab_lines_inscription_data = []
for retval in MYSY_GV.dbname['inscription'].aggregate(pipe_qry):
cpt = cpt + 1
axis_data.append(str(retval['_id']['class_code'][0]))
node = {}
node['class_code'] = str(retval['_id']['class_code'][0])
node['class_title'] = str(retval['_id']['class_title'][0])
node['label'] = str(retval['_id']['class_code'][0])
node['value'] = mycommon.tryFloat(str(retval['count']))
node['count'] = mycommon.tryFloat(str(retval['count']))
my_data.append(node)
if( len(retval['_id']['class_code']) > 0 ):
cpt = cpt + 1
axis_data.append(str(retval['_id']['class_code'][0]))
node = {}
node['class_code'] = str(retval['_id']['class_code'][0])
node['class_title'] = str(retval['_id']['class_title'][0])
node['label'] = str(retval['_id']['class_code'][0])
node['value'] = mycommon.tryFloat(str(retval['count']))
node['count'] = mycommon.tryFloat(str(retval['count']))
my_data.append(node)
@ -1390,15 +1391,16 @@ def Get_Qery_Inscription_Group_By_Session(diction):
cpt = 0
tab_lines_inscription_data = []
for retval in MYSY_GV.dbname['inscription'].aggregate(pipe_qry):
cpt = cpt + 1
axis_data.append(str(retval['_id']['session_code'][0]))
node = {}
node['session_code'] = str(retval['_id']['session_code'][0])
node['session_title'] = str(retval['_id']['session_title'][0])
node['label'] = str(retval['_id']['session_code'][0])
node['value'] = mycommon.tryFloat(str(retval['count']))
node['count'] = mycommon.tryFloat(str(retval['count']))
my_data.append(node)
if( len(retval['_id']['session_code']) > 0 ):
cpt = cpt + 1
axis_data.append(str(retval['_id']['session_code'][0]))
node = {}
node['session_code'] = str(retval['_id']['session_code'][0])
node['session_title'] = str(retval['_id']['session_title'][0])
node['label'] = str(retval['_id']['session_code'][0])
node['value'] = mycommon.tryFloat(str(retval['count']))
node['count'] = mycommon.tryFloat(str(retval['count']))
my_data.append(node)
RetObject = []

File diff suppressed because one or more lines are too long

View File

@ -353,7 +353,7 @@ def Add_Update_Agenda_Event_Stagiaire(diction):
mydata['comment'] = comment
session_id = ""
if ("session_id" in diction.keys()):
if ("session_id" in diction.keys() and diction['session_id']):
is_valide_session_id = MYSY_GV.dbname['session_formation'].count_documents({'_id':ObjectId(diction['session_id']),
'partner_owner_recid':str(my_partner['recid'])})

View File

@ -1557,7 +1557,7 @@ def Get_Apprenant_List_Inscription(diction):
if( local_status is False ):
return local_status, local_retval_str
print(" local_retval_str = ", local_retval_str)
#print(" local_retval_str = ", local_retval_str)
local_retval = []

View File

@ -1073,7 +1073,7 @@ def GerneratePDFEmargementList(diction):
tab_users.append(local_tmp)
total_heure = round(total_heure, 2)
print(' ### tab_users = ' + str(tab_users))
#print(' ### tab_users = ' + str(tab_users))
date_for_tmplate = {}
# Recuperation des données du partenaire

View File

@ -1865,7 +1865,7 @@ def recordImage(file=None, Folder=None, diction=None):
new_diction['locked'] = "0"
ret_val = coll_name.find_one_and_update({"recid":myuserrecid, "valide":"1", "locked":"0"},
{"$set": {"img":strimg, "date_update":str(datetime.now()),
{"$set": {"img":strimg, "update_date":str(datetime.now()),
"type":"profil","recid":myuserrecid, "valide":"1",
"locked":"0" }},
upsert=True,
@ -2387,13 +2387,20 @@ def getRecodedClassImage(diction=None):
'related_collection_recid':str(diction['related_collection_recid']),
"related_collection":str(diction['related_collection'])}
print(" qry = ", qry)
#print(" qry = ", qry)
for retVal in coll_name.find({'recid':myuserrecid, "type":"profil_class", "class_external_code":str(myclassexternalcode),
'related_collection_recid':str(diction['related_collection_recid']),
"related_collection":str(diction['related_collection'])} ):
user2={}
user2['update_date'] = retVal['update_date']
if( "date_update" in retVal.keys()):
user2['update_date'] = retVal['date_update']
if ("update_date" in retVal.keys()):
user2['update_date'] = retVal['update_date']
decode = retVal['img'].decode()
user2['img'] = decode
data1 = json.loads(json.dumps(user2))
@ -2470,12 +2477,14 @@ def getRecodedClassImage_no_token(diction=None):
'related_collection_recid':str(diction['related_collection_recid']),
"related_collection":str(diction['related_collection'])} ):
user2={}
if( "update_date" in retVal.keys()):
user2['update_date'] = retVal['update_date']
if ("date_update" in retVal.keys()):
user2['update_date'] = retVal['date_update']
if ("update_date" in retVal.keys()):
user2['update_date'] = retVal['update_date']
decode = retVal['img'].decode()
user2['img'] = decode
data1 = json.loads(json.dumps(user2))

View File

@ -2142,7 +2142,7 @@ def Get_List_Candidat_Document(diction=None):
if( "relances_document" in candidat_data.keys()):
tab_relance_doc = candidat_data['relances_document']
print(" ## tab_relance_doc = ", tab_relance_doc)
#print(" ## tab_relance_doc = ", tab_relance_doc)
qry_match = {"partner_owner_recid": str(my_partner['recid']), 'valide': '1', 'locked': '0'}

View File

@ -3752,78 +3752,88 @@ def Get_List_Survey_with_filter(diction):
#print(" ### pipe_qry ttt= ", pipe_qry)
for New_retVal in MYSY_GV.dbname['survey'].aggregate(pipe_qry):
user = New_retVal
user['id'] = str(val_tmp)
# recuperer les données de la fromation
class_title = ""
class_external_code = ""
if( "class_id" in New_retVal.keys() ):
class_data = MYSY_GV.dbname['myclass'].find_one({'_id':ObjectId(New_retVal['class_id']),
'valide':'1',
'partner_owner_recid':my_partner['recid']},
{'title':1, 'external_code':1})
is_session_ok = "1"
if( "session_id" in New_retVal.keys() and New_retVal['session_id']):
is_valide_session = MYSY_GV.dbname['session_formation'].count_documents({'_id':ObjectId(str(New_retVal['session_id'])),
'partner_owner_recid':str(my_partner['recid'])})
if( class_data and 'title' in class_data.keys() and 'external_code' in class_data.keys()):
class_title = class_data['title']
class_external_code = class_data['external_code']
if(is_valide_session != 1 ):
is_session_ok = "0"
user['class_title'] = class_title
user['class_external_code'] = class_external_code
if( is_session_ok == "1"):
user = New_retVal
user['id'] = str(val_tmp)
# Recuperer les données de la session
session_title = ""
session_code = ""
if ("session_id" in New_retVal.keys()):
session_data = MYSY_GV.dbname['session_formation'].find_one({'_id': ObjectId(New_retVal['session_id']),
'valide': '1',
'partner_owner_recid': my_partner['recid']},
{'titre': 1, 'code_session': 1})
# recuperer les données de la fromation
class_title = ""
class_external_code = ""
if( "class_id" in New_retVal.keys() ):
class_data = MYSY_GV.dbname['myclass'].find_one({'_id':ObjectId(New_retVal['class_id']),
'valide':'1',
'partner_owner_recid':my_partner['recid']},
{'title':1, 'external_code':1})
if (session_data and 'titre' in session_data.keys() and 'code_session' in session_data.keys()):
session_title = session_data['titre']
session_code = session_data['code_session']
if( class_data and 'title' in class_data.keys() and 'external_code' in class_data.keys()):
class_title = class_data['title']
class_external_code = class_data['external_code']
user['session_title'] = session_title
user['session_code'] = session_code
user['class_title'] = class_title
user['class_external_code'] = class_external_code
"""
Recuperation des info de la ressource humaine
"""
rh_nom = ""
rh_prenom = ""
# Recuperer les données de la session
session_title = ""
session_code = ""
if ("session_id" in New_retVal.keys()):
session_data = MYSY_GV.dbname['session_formation'].find_one({'_id': ObjectId(New_retVal['session_id']),
'valide': '1',
'partner_owner_recid': my_partner['recid']},
{'titre': 1, 'code_session': 1})
if (session_data and 'titre' in session_data.keys() and 'code_session' in session_data.keys()):
session_title = session_data['titre']
session_code = session_data['code_session']
user['session_title'] = session_title
user['session_code'] = session_code
"""
Recuperation des info de la ressource humaine
"""
rh_nom = ""
rh_prenom = ""
if( "survey_type" in New_retVal.keys() and New_retVal["survey_type"] == "human_eval" and
"related_collection" in New_retVal.keys() and New_retVal["related_collection"] == "ressource_humaine" and
"related_collection_id" in New_retVal.keys() and New_retVal["related_collection_id"] ):
if( "survey_type" in New_retVal.keys() and New_retVal["survey_type"] == "human_eval" and
"related_collection" in New_retVal.keys() and New_retVal["related_collection"] == "ressource_humaine" and
"related_collection_id" in New_retVal.keys() and New_retVal["related_collection_id"] ):
rh_data = MYSY_GV.dbname['ressource_humaine'].find_one({'_id':ObjectId(New_retVal["related_collection_id"]),
'valide':'1',
'locked':'0',
'partner_recid':str(my_partner['recid'])}, {'nom':1, "prenom":1})
rh_data = MYSY_GV.dbname['ressource_humaine'].find_one({'_id':ObjectId(New_retVal["related_collection_id"]),
'valide':'1',
'locked':'0',
'partner_recid':str(my_partner['recid'])}, {'nom':1, "prenom":1})
if(rh_data and "nom" in rh_data.keys()):
rh_nom = rh_data['nom']
if(rh_data and "nom" in rh_data.keys()):
rh_nom = rh_data['nom']
if (rh_data and "prenom" in rh_data.keys()):
rh_prenom = rh_data['prenom']
if (rh_data and "prenom" in rh_data.keys()):
rh_prenom = rh_data['prenom']
user['rh_nom'] = rh_nom
user['rh_prenom'] = rh_prenom
user['rh_nom'] = rh_nom
user['rh_prenom'] = rh_prenom
if ("mode_envoi" not in user.keys()):
user['mode_envoi'] = ""
if ("mode_envoi" not in user.keys()):
user['mode_envoi'] = ""
val_tmp = val_tmp + 1
val_tmp = val_tmp + 1
#print(" ## USER = ", user)
#print(" ## USER = ", user)
RetObject.append(mycommon.JSONEncoder().encode(user))
RetObject.append(mycommon.JSONEncoder().encode(user))
return True, RetObject
@ -5109,7 +5119,7 @@ def Get_Survey_Stat_Data_For_Given_related_collection_id(diction):
])
print(" ### Get_Survey_Stat_Data ici pipe_qry = ", pipe_qry)
#print(" ### Get_Survey_Stat_Data ici pipe_qry = ", pipe_qry)
RetObject = []
val_tmp = 0
@ -5130,7 +5140,7 @@ def Get_Survey_Stat_Data_For_Given_related_collection_id(diction):
raw_reponse_data.append(node)
print(" ### les reponses brutes sont : ", raw_reponse_data)
#print(" ### les reponses brutes sont : ", raw_reponse_data)
global_nb_question_response = 0
global_somme_question_response = 0
@ -5194,7 +5204,7 @@ def Get_Survey_Stat_Data_For_Given_related_collection_id(diction):
final_data['data'] = range_date_month
final_data['global'] = node
print(" ### les reponses final_data: ", final_data)
#print(" ### les reponses final_data: ", final_data)
RetObject = []
RetObject.append(mycommon.JSONEncoder().encode(final_data))
@ -5409,7 +5419,7 @@ def Export_Excel_Survey_Stat_Data_For_Given_related_collection_id(diction):
raw_reponse_data.append(node)
print(" ### les reponses brutes sont : ", raw_reponse_data)
#print(" ### les reponses brutes sont : ", raw_reponse_data)
global_nb_question_response = 0
global_somme_question_response = 0
@ -5647,7 +5657,7 @@ def Get_Entity_Question_List_With_Stat_For_Given_related_collection_id(diction):
])
print(" ### Get_Survey_Stat_Data ici pipe_qry = ", pipe_qry)
#print(" ### Get_Survey_Stat_Data ici pipe_qry = ", pipe_qry)
RetObject = []
val_tmp = 0