07/06/260-20H

Signed-off-by: Cherif <cbalde@mysy-training.com>
master_Elyos_FI
Cherif 2026-06-07 19:50:52 +02:00
parent 030565df79
commit 36c8a1c417
12 changed files with 8922 additions and 34 deletions

View File

@ -4,14 +4,19 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="01/06/2026 - 22h00">
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="06/06/2026 - 21h">
<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$/Activite.py" beforeDir="false" afterPath="$PROJECT_DIR$/Activite.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Dashbord_queries/factures_tbd_qries.py" beforeDir="false" afterPath="$PROJECT_DIR$/Dashbord_queries/factures_tbd_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$/Session_Formation.py" beforeDir="false" afterPath="$PROJECT_DIR$/Session_Formation.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/base_class_calcul_note.py" beforeDir="false" afterPath="$PROJECT_DIR$/base_class_calcul_note.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/domaine_competence_pedagogique.py" beforeDir="false" afterPath="$PROJECT_DIR$/domaine_competence_pedagogique.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ela_user_account.py" beforeDir="false" afterPath="$PROJECT_DIR$/ela_user_account.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/groupe_inscrit_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/groupe_inscrit_mgt.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/note_evaluation_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/note_evaluation_mgt.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/partner_client.py" beforeDir="false" afterPath="$PROJECT_DIR$/partner_client.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/partners.py" beforeDir="false" afterPath="$PROJECT_DIR$/partners.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/unite_enseignement_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/unite_enseignement_mgt.py" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -455,7 +460,7 @@
<option name="project" value="LOCAL" />
<updated>1747251650255</updated>
</task>
<option name="localTasksCounter" value="596" />
<option name="localTasksCounter" value="597" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
@ -497,7 +502,6 @@
</option>
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="04/05/2026 - 13h" />
<MESSAGE value="04/05/2026 - 19h" />
<MESSAGE value="05/05/2026 - 19h" />
<MESSAGE value="07/05/2026 - 17h" />
@ -522,6 +526,7 @@
<MESSAGE value="30/05/2026 - 21h00" />
<MESSAGE value="31/05/2026 - 17h00" />
<MESSAGE value="01/06/2026 - 22h00" />
<option name="LAST_COMMIT_MESSAGE" value="01/06/2026 - 22h00" />
<MESSAGE value="06/06/2026 - 21h" />
<option name="LAST_COMMIT_MESSAGE" value="06/06/2026 - 21h" />
</component>
</project>

View File

@ -230,7 +230,7 @@ def Add_activite(diction):
data['creation_by'] = str(my_partner['_id'])
print(" ### my_partner = ", my_partner)
#print(" ### my_partner = ", my_partner)
# Creation du RecId
data['recid'] = mycommon.create_user_recid()

View File

@ -1100,7 +1100,7 @@ def Get_Qery_List_Quotation_Data_By_Periode(diction):
])
print(" ### Get_Qery_List_Factures_Data ici pipe_qry = ", pipe_qry)
#print(" ### Get_Qery_List_Factures_Data ici pipe_qry = ", pipe_qry)
RetObject = []
val_tmp = 0
@ -1350,7 +1350,7 @@ def Get_Qery_List_Quotation_Data_By_Client(diction):
])
print(" ### Get_Qery_List_Factures_Data ici pipe_qry = ", pipe_qry)
#print(" ### Get_Qery_List_Factures_Data ici pipe_qry = ", pipe_qry)
RetObject = []
val_tmp = 0

File diff suppressed because one or more lines are too long

View File

@ -6265,12 +6265,15 @@ def Duplicate_List_Session_Formation(diction):
# il faut créer le groupe de type promo qui va contenir tous les apprenant de la promo
promo_code = ""
promo_nom = ""
if (is_class_data and "external_code" in is_class_data.keys()):
promo_code = "Grp_Promo_" + str(is_class_data['external_code'])[0:10]
promo_nom = "Grp Promo " + str(is_class_data['external_code'])[0:10]
if ("code_session" in duplicated_session.keys() and duplicated_session['code_session']):
result = re.sub(r"[^a-zA-Z0-9]", "", duplicated_session['code_session'])
new_groupe_code = result + "_" + str(random.randint(10, 99))
promo_code = "Grp_Promo_" + str(new_groupe_code)
promo_nom = "Grp Promo " + str(new_groupe_code)[0:10]
else:
promo_code = "Grp_Promotion"
promo_nom = "Grp Promotion"
new_groupe_code = str(random.randint(10000, 99999))
promo_code = "Grp_Promo_" + str(new_groupe_code)
promo_nom = "Grp Promo " + str(new_groupe_code)[0:10]
groupe_inscription_type_promo_data = MYSY_GV.dbname['groupe_inscription_type'].find_one(
{'is_promotion_grp': '1',

View File

@ -3675,11 +3675,98 @@ def Create_Bulletin_By_Inscrit_PDF_V2_Work_Collection(diction):
if( len(tab_semestre) > 0 ):
qyr_data = {'inscrit_id': str(diction['inscription_id']),
'valide': '1', 'partner_owner_recid': str(my_partner['recid']),
'diplome_id': str(diction['diplome_id']), 'semestre':{'$in':tab_semestre_work}}
'diplome_id': str(diction['diplome_id']), 'semestre':{'$in':tab_semestre}}
print(" ## QRY work_calcul_moyenne_by_ue_bc_diplome_session_semestre = ", qyr_data)
for note_classement_data in MYSY_GV.dbname['work_calcul_moyenne_by_ue_bc_diplome_session_semestre'].find(qyr_data).sort({'domaine_competence_id':1}):
pipeline = [
{
"$match": qyr_data
},
{
"$group": {
"_id": {
"inscrit_id": "$inscrit_id",
"domaine_competence_id": "$domaine_competence_id"
},
"inscrit_nom": {"$first": "$inscrit_nom"},
"inscrit_prenom": {"$first": "$inscrit_prenom"},
"inscrit_email": {"$first": "$inscrit_email"},
"domaine_competence_id_code": {"$first": "$domaine_competence_id_code"},
"diplome_id_code": {"$first": "$diplome_id_code"},
"is_domaine_competence_validated": {
"$first": "$is_domaine_competence_validated"
},
"jury_note_dom_compet": {
"$first": {
"$ifNull": ["$jury_note_dom_compet", ""]
}
},
"jury_observation_dom_compet": {
"$first": {
"$ifNull": ["$jury_observation_dom_compet", ""]
}
},
"jury_validation_dom_compet": {
"$first": {
"$ifNull": ["$jury_validation_dom_compet", "0"]
}
},
"list_ue": {
"$push": {
"ue_id": "$ue_id",
"ue_id_code": "$ue_id_code",
"moyenne": "$moyenne_avant_coef",
"seuil": "$ue_seuil_validation",
"is_eu_validated": "$is_eu_validated",
"jury_note": "$jury_note",
"jury_observation": "$jury_observation",
"jury_validation": "$jury_validation"
}
}
}
},
{
"$project": {
"_id": 0,
"inscrit_id": "$_id.inscrit_id",
"inscrit_nom": 1,
"inscrit_prenom": 1,
"inscrit_email": 1,
"domaine_competence_id": "$_id.domaine_competence_id",
"domaine_competence_id_code": 1,
"diplome_id_code": 1,
"is_domaine_competence_validated": 1,
"jury_note_dom_compet": 1,
"jury_observation_dom_compet": 1,
"jury_validation_dom_compet": 1,
"list_ue": 1
}
},
{
"$sort": {
"inscrit_nom": 1,
"inscrit_prenom": 1,
"domaine_competence_id_code": 1
}
}
]
print(" ## pipeline work_calcul_moyenne_by_ue_bc_diplome_session_semestre = ", pipeline)
for note_classement_data in MYSY_GV.dbname['work_calcul_moyenne_by_ue_bc_diplome_session_semestre'].aggregate(pipeline):
#print(" IIII note_classement_data = ", note_classement_data)
local_node = {}
local_node = note_classement_data
if ("ue_id" in note_classement_data.keys() and note_classement_data['ue_id']):
@ -3704,7 +3791,7 @@ def Create_Bulletin_By_Inscrit_PDF_V2_Work_Collection(diction):
session_formation_final_note_classement_data.append(local_node)
print(" ### session_formation_final_note_classement_data = ",session_formation_final_note_classement_data )
#print(" ### session_formation_final_note_classement_data = ",session_formation_final_note_classement_data )
tab_session = []
tab_session.append(ObjectId(diction['session_id']))
@ -3728,14 +3815,15 @@ def Create_Bulletin_By_Inscrit_PDF_V2_Work_Collection(diction):
return local_status, local_retval
convention_dictionnary_data = local_retval
convention_dictionnary_data[
'session_formation_final_note_classement'] = session_formation_final_note_classement_data
convention_dictionnary_data['list_domaine_competence_note'] = session_formation_final_note_classement_data
convention_dictionnary_data['full_statgiaire_data'] = statgiaire_data
body = {
"params": convention_dictionnary_data,
}
#print(" ### BODYYYY = ", body)
"""
Creation du ficier PDF
"""
@ -4241,7 +4329,7 @@ def Calcul_Moyen_evaluation_participant_note_BC_UE(diction):
print(" ### code action = ", str(code_action))
print(" ### tab_domaine_competence_ids = ", str(tab_domaine_competence_ids))
"""
Si on ne fourni pas de domaine de compétence, on va aller chercher tous les domaines de compétence
@ -4264,8 +4352,7 @@ def Calcul_Moyen_evaluation_participant_note_BC_UE(diction):
tab_domaine_competence_ids = default_tab_domaine_competence_ids
print(" ### tab_domaine_competence_ids = ", str(tab_domaine_competence_ids))
for domaine_competence_id in tab_domaine_competence_ids:
tab_inscrit_id = []
@ -4288,7 +4375,7 @@ def Calcul_Moyen_evaluation_participant_note_BC_UE(diction):
{
"$match": {
"_id": ObjectId(str(diction['session_id'])),
"partner_owner_recid": "43598820dd270936c3d2fd822717d0f18f194b1a1b894aaf89",
"partner_owner_recid": str(my_partner['recid']),
"valide": "1"
}
},
@ -5068,7 +5155,7 @@ def Get_List_Evaluation_Simple_wiew_by_ue_bc_diplome_session_semestre_With_Filte
user['id'] = str(val_tmp)
val_tmp = val_tmp + 1
print(" retval = ",retval)
#print(" retval = ",retval)
class_id_external_code = ""

View File

@ -898,7 +898,7 @@ def change_user_pwd(diction):
if (local_status is not True):
return local_status, my_partner
print(" ### my_partner == ", my_partner)
#print(" ### my_partner == ", my_partner)
# recuperation des paramettre
email_value = ""

View File

@ -633,9 +633,27 @@ def Get_List_Groupe_Inscrit_With_Filter(diction):
user['nb_membre'] = str(grp_nb_member)
type_groupe_code = ""
if ("groupe_inscription_type_id" in retval.keys() and retval['groupe_inscription_type_id']):
groupe_inscription_type_id_data = MYSY_GV.dbname['groupe_inscription_type'].find_one(
{'_id': ObjectId(str(retval['groupe_inscription_type_id'])),
'valide': '1',
'locked': '0',
'partner_owner_recid': str(
my_partner[
'recid'])
})
if (groupe_inscription_type_id_data and 'code' in groupe_inscription_type_id_data.keys()):
type_groupe_code = groupe_inscription_type_id_data['code']
user['type_groupe_code'] = str(type_groupe_code)
val_tmp = val_tmp + 1
RetObject.append(mycommon.JSONEncoder().encode(user))
return True, RetObject
@ -703,6 +721,23 @@ def Get_Given_Groupe_Inscrit_Data(diction):
for retval in MYSY_GV.dbname['groupe_inscription'].find(data_cle):
user = retval
user['id'] = str(val_tmp)
type_groupe_code = ""
if ("groupe_inscription_type_id" in retval.keys() and retval['groupe_inscription_type_id']):
groupe_inscription_type_id_data = MYSY_GV.dbname['groupe_inscription_type'].find_one(
{'_id': ObjectId(str(retval['groupe_inscription_type_id'])),
'valide': '1',
'locked': '0',
'partner_owner_recid': str(
my_partner[
'recid'])
})
if (groupe_inscription_type_id_data and 'code' in groupe_inscription_type_id_data.keys()):
type_groupe_code = groupe_inscription_type_id_data['code']
user['type_groupe_code'] = str(type_groupe_code)
val_tmp = val_tmp + 1
RetObject.append(mycommon.JSONEncoder().encode(user))
@ -1487,7 +1522,7 @@ def Get_Inscrit_List_Groupe(diction):
pipeline = [
{
"$match": {
"partner_owner_recid": "43598820dd270936c3d2fd822717d0f18f194b1a1b894aaf89",
"partner_owner_recid": str(my_partner['recid']),
"inscription_id": str(diction['inscrit_id']),
"valide": "1",
"locked": "0"
@ -1575,7 +1610,7 @@ def Get_Inscrit_List_Groupe(diction):
}
]
print(" QRYYY pipeline == ", pipeline)
print(" QRYYY pipeline Get_Inscrit_List_Groupe == ", pipeline)
#result = list(MYSY_GV.dbname["groupe_inscription_membre"].aggregate(pipeline))
@ -1586,6 +1621,8 @@ def Get_Inscrit_List_Groupe(diction):
user = retval
user['id'] = str(val_tmp)
val_tmp = val_tmp + 1
print(" ## TROUVER retval = ", retval)
RetObject.append(mycommon.JSONEncoder().encode(user))
return True, RetObject

View File

@ -3924,7 +3924,7 @@ def Get_List_Apprenant_Notes_With_Filter(diction):
return local_status, my_partner
print(" ### my_partner = ", my_partner)
#print(" ### my_partner = ", my_partner)
### Les sessions de formation
my_session_ids = ""

View File

@ -4736,7 +4736,7 @@ def Get_Parner_Divers_Invoice_Data_12(diction):
])
print(" ### Get_Qery_List_Factures_Data ici pipe_qry = ", pipe_qry)
#print(" ### Get_Qery_List_Factures_Data ici pipe_qry = ", pipe_qry)
RetObject = []
val_tmp = 0

View File

@ -455,7 +455,7 @@ def update_partner_pwd(diction):
a un compte LMS. Si c'est le cas, alors il faut mettre à jour le mot de passe dans le compte LMS aussi.
"""
print("### my_partner = ", my_partner)
#print("### my_partner = ", my_partner)
if ("mysy_lms_user_id" in my_partner.keys()):

View File

@ -278,9 +278,10 @@ def Update_Unite_Enseignement(diction):
del mydata['token']
del mydata['_id']
if ("conclusive" in mydata.keys() or mydata['conclusive'] not in ['0', '1', '']):
if ("conclusive" not in mydata.keys() or mydata['conclusive'] not in ['0', '1', '']):
mydata['conclusive'] = "0"
mydata['update_date'] = str(datetime.now())
mydata['update_by'] = str(my_partner['_id'])
@ -296,7 +297,7 @@ def Update_Unite_Enseignement(diction):
" Impossible de mettre à jour le document (2) ")
return False, " Impossible de mettre à jour le document (2) "
print(" ### GRINN result = ", result)
return True, " Le document a été correctement mis à jour "