20/05/2025 - 17h

Signed-off-by: cherif <cherif.balde@yahoo.fr>
master
cherif 2025-05-20 17:45:19 +02:00
parent 7d66983036
commit f7c8a84a78
5 changed files with 1421 additions and 86 deletions

View File

@ -1,81 +1,12 @@
<?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="17/05/25 - 12h">
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="19/05/2025 - 20h">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" 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$/jury_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/jury_mgt.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" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convention_43598_07744.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convention_43598_11507.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convention_43598_14883.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convention_43598_14947.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convention_43598_28321.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convention_43598_29121.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convention_43598_31058.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convention_43598_56381.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convention_43598_59326.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convention_43598_65589.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convention_43598_75547.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convention_43598_76972.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convention_43598_80482.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convocation_43598_18279.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convocation_43598_40596.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convocation_43598_49786.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convocation_43598_64548.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Convocation_43598_77545.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Devis_43598_49647.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/List_Convention_session_67dc3278eaba42b1ff7cee6e_369.zip" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/List_Convention_session_67dc3278eaba42b1ff7cee6e_648.zip" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/List_Convention_session_67dc3278eaba42b1ff7cee6e_667.zip" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/List_Convention_session_67dc3278eaba42b1ff7cee6e_854.zip" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/List_Convention_session_67dc3278eaba42b1ff7cee6e_998.zip" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/List_Convention_session_680210c6b388f9e2c4165b9e_342.zip" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/List_Convention_session_680210c6b388f9e2c4165b9e_344.zip" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/List_Convocation_session_680210c6b388f9e2c4165b9e_978.zip" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Partner_Invoice_Invoice_640.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/Partner_Invoice_Invoice_641.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/SessionBONDU01_20250416190131.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/SessionBONDU01_20250418094731.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/SessionBONDU01_20250418094944.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/SessionBONDU01_20250418104350.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/SessionBONDU01_20250418123136.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/StagiairesBONDU0111_20250418095544.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/StagiairesBONDU0111_20250418101511.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/StagiairesBONDU0111_20250418101625.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/StagiairesBONDU0111_20250418101714.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/StagiairesBONDU0111_20250418104110.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/StagiairesBONDU0111_20250418104419.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/StagiairesBONDU0111_20250418104648.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/StagiairesBONDU0111_20250418104828.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/StagiairesBONDU0111_20250425130053.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/StagiairesBONDU0111_20250425134931.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/StagiairesBONDU0111_20250425135005.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/StagiairesBONDU0112_20250418104857.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/StagiairesBONDU0112_20250418123148.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/StagiairesBONDU01Mai_20250416190329.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/StagiairesBONDU01_20250416190212.csv" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/cv02_20250414141621.pdf" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_026.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_034.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_049.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_151.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_178.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_197.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_506.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_574.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_594.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_617.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_699.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_701.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_764.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_904.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_948.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_963.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_964.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/temp_direct/qr_code_992.png" beforeDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -152,13 +83,6 @@
<option name="presentableId" value="Default" />
<updated>1680804787304</updated>
</task>
<task id="LOCAL-00414" summary="22/11/2024 - 18h">
<created>1732295895692</created>
<option name="number" value="00414" />
<option name="presentableId" value="LOCAL-00414" />
<option name="project" value="LOCAL" />
<updated>1732295895693</updated>
</task>
<task id="LOCAL-00415" summary="27/11/2024 : 12h30">
<created>1732706635906</created>
<option name="number" value="00415" />
@ -495,7 +419,14 @@
<option name="project" value="LOCAL" />
<updated>1747477177495</updated>
</task>
<option name="localTasksCounter" value="463" />
<task id="LOCAL-00463" summary="19/05/2025 - 20h">
<created>1747677885835</created>
<option name="number" value="00463" />
<option name="presentableId" value="LOCAL-00463" />
<option name="project" value="LOCAL" />
<updated>1747677885835</updated>
</task>
<option name="localTasksCounter" value="464" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
@ -537,7 +468,6 @@
</option>
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="08/02/205 - 22h30" />
<MESSAGE value="10/02/205 - 21h" />
<MESSAGE value="11/02/2025 - 15h30" />
<MESSAGE value="11/02/2025 - 21h" />
@ -562,6 +492,7 @@
<MESSAGE value="14/05/2025 - 20h" />
<MESSAGE value="16/05/2025 - 18h" />
<MESSAGE value="17/05/25 - 12h" />
<option name="LAST_COMMIT_MESSAGE" value="17/05/25 - 12h" />
<MESSAGE value="19/05/2025 - 20h" />
<option name="LAST_COMMIT_MESSAGE" value="19/05/2025 - 20h" />
</component>
</project>

File diff suppressed because it is too large Load Diff

View File

@ -1055,7 +1055,7 @@ def Get_List_Evaluation_UE_Note_Classement_With_Filter(diction):
query = {"$and": [filt_session_id, filt_ue_id, data_cle, filt_inscrit_id, filt_apprenant_id_from_jury_seance]}
#print(" ### session_formation_final_note_classement query = ", query)
RetObject = []
val_tmp = 0
@ -1069,8 +1069,8 @@ def Get_List_Evaluation_UE_Note_Classement_With_Filter(diction):
if ("jury_note" not in retval.keys()):
user['jury_note'] = ""
if ("jury_comment" not in retval.keys()):
user['jury_comment'] = ""
if ("jury_observation" not in retval.keys()):
user['jury_observation'] = ""
if ("jury_validation" not in retval.keys()):
user['jury_validation'] = ""
@ -1203,8 +1203,8 @@ def Get_List_Evaluation_Inscriptio_Note_Classement_With_Filter(diction):
if( "jury_note" not in retval.keys() ):
user['jury_note'] = ""
if ("jury_comment" not in retval.keys()):
user['jury_comment'] = ""
if ("jury_observation" not in retval.keys()):
user['jury_observation'] = ""
if ("jury_validation" not in retval.keys()):
user['jury_validation'] = ""

View File

@ -2228,6 +2228,23 @@ def Get_List_Jury_Soutenenace(diction):
if (local_status is not True):
return local_status, my_partner
is_jury_valide = MYSY_GV.dbname['jury'].count_documents({'_id':ObjectId(str(diction['jury_id'])),
'valide':'1',
'locked':'0',
'partner_owner_recid':str(my_partner['recid'])})
if( is_jury_valide != 1 ):
mycommon.myprint(
str(inspect.stack()[0][
3]) + " L'identifiant du jury est invalide ")
return False, " L'identifiant du jury est invalide ",
jury_data = MYSY_GV.dbname['jury'].find_one({'_id': ObjectId(str(diction['jury_id'])),
'valide': '1',
'locked': '0',
'partner_owner_recid': str(my_partner['recid'])})
"""
Clés de mise à jour
"""
@ -2243,6 +2260,11 @@ def Get_List_Jury_Soutenenace(diction):
for retval in MYSY_GV.dbname['jury_soutenance'].find(data_cle).sort([("_id", pymongo.DESCENDING), ]):
user = retval
if( "session_id" in jury_data.keys() ):
user['session_id'] = jury_data['session_id']
else:
user['session_id'] = ""
if( "convocation_apprenant_send" not in retval.keys() ):
user["convocation_apprenant_send"] = ""
@ -4028,3 +4050,109 @@ def Create_Jury_Convocation_By_Membre_Email(tab_files, Folder, diction):
return False, " Impossible d'envoyer les email de convocation du jury "
"""
Cette fonction met à jour la decision du jury pour
un inscrit (jury_cac)
"""
def Add_Update_Inscrit_Juy_Promo_Decision(diction):
try:
diction = mycommon.strip_dictionary(diction)
"""
Verification des input acceptés
"""
field_list = ['token', 'jury_id', 'tab_inscriptions_ids', 'jury_observation', 'jury_note', 'jury_validation']
incom_keys = diction.keys()
for val in incom_keys:
if val not in field_list and val.startswith('my_') is False:
mycommon.myprint(str(
inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé")
return False, " Les informations fournies sont incorrectes"
"""
Verification des champs obligatoires
"""
field_list_obligatoire = ['token', 'jury_id', 'tab_inscriptions_ids', 'jury_observation', 'jury_note', 'jury_validation']
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 la liste des arguments ")
return False, " Les informations fournies sont incorrectes"
"""
Verification de l'identité et autorisation de l'entité qui
appelle cette API
"""
token = ""
if ("token" in diction.keys()):
if diction['token']:
token = diction['token']
local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction)
if (local_status is not True):
return local_status, my_partner
is_existe_jury = MYSY_GV.dbname['jury'].count_documents(
{'_id': ObjectId(str(diction['jury_id'])),
'valide': '1',
'partner_owner_recid': str(my_partner['recid'])})
if (is_existe_jury != 1):
mycommon.myprint(
str(inspect.stack()[0][3]) + " L'identifiant du jury est invalide ")
return False, " L'identifiant du jury est invalide "
jury_data = MYSY_GV.dbname['jury'].find_one(
{'_id': ObjectId(str(diction['jury_id'])),
'valide': '1',
'partner_owner_recid': str(my_partner['recid'])})
tab_inscriptions_ids = ""
tab_inscriptions_ids_ObjectId = []
if ("tab_inscriptions_ids" in diction.keys()):
if diction['tab_inscriptions_ids']:
tab_inscriptions_ids = diction['tab_inscriptions_ids']
tab_inscriptions_ids_splited = str(tab_inscriptions_ids).split(",")
# Controle de validité des inscriptions
for my_inscription in tab_inscriptions_ids_splited:
# Verifier que l'inscription est valide
my_inscription_is_valide = MYSY_GV.dbname['inscription'].count_documents(
{'_id': ObjectId(str(my_inscription)),
'partner_owner_recid': str(my_partner['recid'])})
if (my_inscription_is_valide != 1):
mycommon.myprint(
str(inspect.stack()[0][3]) + " L'inscription_id '" + my_inscription + "' est invalide ")
return False, " L'inscription_id '" + my_inscription + "' est invalide "
tab_inscriptions_ids_ObjectId.append(ObjectId(str(my_inscription)))
update_data = {}
update_data['date_update'] = str(datetime.now())
update_data['update_by'] = str(my_partner['_id'])
update_data['jury_observation'] = str(diction['jury_observation'])
update_data['jury_note'] = str(diction['jury_note'])
update_data['jury_validation'] = str(diction['jury_validation'])
MYSY_GV.dbname['inscription'].update_many({'_id': {'$in' : tab_inscriptions_ids_ObjectId},
'valide': '1',
'partner_owner_recid': str(my_partner['recid']),
},
{'$set': update_data}
)
return True, " La décision du jury été correctement mise à jour"
except Exception as e:
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 mettre à jour la décision du jury "

18
main.py
View File

@ -12719,6 +12719,24 @@ def Send_Jury_Membre_Convocation_By_Email():
return jsonify(status=status, message=retval)
"""
API pour mettre à jour la decision du jury pour
un inscrit (jury_cac)
"""
@app.route('/myclass/api/Add_Update_Inscrit_Juy_Promo_Decision/', methods=['POST','GET'])
@crossdomain(origin='*')
def Add_Update_Inscrit_Juy_Promo_Decision():
# On recupere le corps (payload) de la requete
payload = mycommon.strip_dictionary (request.form.to_dict())
print(" ### Add_Update_Inscrit_Juy_Promo_Decision : payload = ",str(payload))
status, retval = jury_mgt.Add_Update_Inscrit_Juy_Promo_Decision( payload)
return jsonify(status=status, message=retval)
if __name__ == '__main__':
print(" debut api")
context = SSL.Context(SSL.SSLv23_METHOD)