12/02/26 - 10h

Signed-off-by: Cherif <cbalde@mysy-training.com>
master_Elyos_FI
Cherif 2026-02-12 10:10:07 +01:00
parent 921790753a
commit f988c63c70
5 changed files with 2760 additions and 76 deletions

View File

@ -4,8 +4,8 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="09/02/2026">
<change afterPath="$PROJECT_DIR$/competence_pedagogique.py" afterDir="false" />
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="10/02/26 - 20h">
<change afterPath="$PROJECT_DIR$/bloc_competence.py" afterDir="false" />
<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$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
@ -453,7 +453,7 @@
<option name="project" value="LOCAL" />
<updated>1747251650255</updated>
</task>
<option name="localTasksCounter" value="529" />
<option name="localTasksCounter" value="530" />
<servers />
</component>
<component name="Vcs.Log.Tabs.Properties">
@ -495,7 +495,6 @@
</option>
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="20/10/2025 - 14hsd" />
<MESSAGE value="21/10/2025 - 22h" />
<MESSAGE value="wds" />
<MESSAGE value="22/10*2025 - 22h" />
@ -520,6 +519,7 @@
<MESSAGE value="02/02/2026 - 18h" />
<MESSAGE value="03/02/2026" />
<MESSAGE value="09/02/2026" />
<option name="LAST_COMMIT_MESSAGE" value="09/02/2026" />
<MESSAGE value="10/02/26 - 20h" />
<option name="LAST_COMMIT_MESSAGE" value="10/02/26 - 20h" />
</component>
</project>

File diff suppressed because it is too large Load Diff

1068
bloc_competence.py Normal file

File diff suppressed because it is too large Load Diff

132
main.py
View File

@ -111,7 +111,7 @@ import activite_pedagogique as activite_pedagogique
import tache_pedagogique as tache_pedagogique
import pole_activite_pedagogique as pole_activite_pedagogique
import competence_pedagogique as competence_pedagogique
import bloc_competence as bloc_competence
import base_document_automatic_setup as base_document_automatic_setup
@ -16157,6 +16157,136 @@ def Delete_Activite_From_competence_pedagogique():
"""
Cette API pour ajouter un bloc de compétence
"""
@app.route('/myclass/api/Add_bloc_competence/', methods=['POST','GET'])
@crossdomain(origin='*')
def Add_bloc_competence():
# On recupere le corps (payload) de la requete
payload = mycommon.strip_dictionary (request.form.to_dict())
print(" ### Add_bloc_competence payload = ",payload)
status, retval = bloc_competence.Add_bloc_competence(payload)
return jsonify(status=status, message=retval)
"""
Cette API pour mettre à jour un bloc de compétence
"""
@app.route('/myclass/api/Update_bloc_competence/', methods=['POST','GET'])
@crossdomain(origin='*')
def Update_bloc_competence():
# On recupere le corps (payload) de la requete
payload = mycommon.strip_dictionary (request.form.to_dict())
print(" ### Update_bloc_competence payload = ",payload)
status, retval = bloc_competence.Update_bloc_competence(payload)
return jsonify(status=status, message=retval)
"""
Cette API pour Recuperer la liste des un bloc de compétence d'un partenaire, sans filtres
"""
@app.route('/myclass/api/Get_bloc_competence_no_filter/', methods=['POST','GET'])
@crossdomain(origin='*')
def Get_bloc_competence_no_filter():
# On recupere le corps (payload) de la requete
payload = mycommon.strip_dictionary (request.form.to_dict())
print(" ### Get_bloc_competence_no_filter payload = ",payload)
status, retval = bloc_competence.Get_bloc_competence_no_filter(payload)
return jsonify(status=status, message=retval)
"""
Cette API pour Recuperer les données d'une bloc de compétence donnée
"""
@app.route('/myclass/api/Get_Given_bloc_competence/', methods=['POST','GET'])
@crossdomain(origin='*')
def Get_Given_bloc_competence():
# On recupere le corps (payload) de la requete
payload = mycommon.strip_dictionary (request.form.to_dict())
print(" ### Get_Given_bloc_competence payload = ",payload)
status, retval = bloc_competence.Get_Given_bloc_competence(payload)
return jsonify(status=status, message=retval)
"""
Cette API pour Suppression un bloc de compétence
"""
@app.route('/myclass/api/Delete_Given_bloc_competence/', methods=['POST','GET'])
@crossdomain(origin='*')
def Delete_Given_bloc_competence():
# On recupere le corps (payload) de la requete
payload = mycommon.strip_dictionary (request.form.to_dict())
print(" ### Delete_Given_bloc_competence payload = ",payload)
status, retval = bloc_competence.Delete_Given_bloc_competence(payload)
return jsonify(status=status, message=retval)
"""
Cette API pour Ajouter un pole d'activité pédagogique d'un bloc de compétence
"""
@app.route('/myclass/api/Add_Update_tab_Pole_Activite_To_Bloc_Competence/', methods=['POST','GET'])
@crossdomain(origin='*')
def Add_Update_tab_Pole_Activite_To_Bloc_Competence():
# On recupere le corps (payload) de la requete
payload = mycommon.strip_dictionary (request.form.to_dict())
print(" ### Add_Update_tab_Pole_Activite_To_Bloc_Competence payload = ",payload)
status, retval = bloc_competence.Add_Update_tab_Pole_Activite_To_Bloc_Competence(payload)
return jsonify(status=status, message=retval)
"""
Cette API pour Supprimer un pole d'activité pédagogique d'un bloc de compétence
"""
@app.route('/myclass/api/Delete_Pole_Activite_From_Bloc_Competence/', methods=['POST','GET'])
@crossdomain(origin='*')
def Delete_Pole_Activite_From_Bloc_Competence():
# On recupere le corps (payload) de la requete
payload = mycommon.strip_dictionary (request.form.to_dict())
print(" ### Delete_Pole_Activite_From_Bloc_Competence payload = ",payload)
status, retval = bloc_competence.Delete_Pole_Activite_From_Bloc_Competence(payload)
return jsonify(status=status, message=retval)
"""
Cette API pour Ajouter une liste d'UE à un bloc de competence
"""
@app.route('/myclass/api/Add_Update_tab_UE_And_Competence_To_Bloc_Competence/', methods=['POST','GET'])
@crossdomain(origin='*')
def Add_Update_tab_UE_And_Competence_To_Bloc_Competence():
# On recupere le corps (payload) de la requete
payload = mycommon.strip_dictionary (request.form.to_dict())
print(" ### Add_Update_tab_UE_And_Competence_To_Bloc_Competence payload = ",payload)
status, retval = bloc_competence.Add_Update_tab_UE_And_Competence_To_Bloc_Competence(payload)
return jsonify(status=status, message=retval)
"""
Cette API pour Supprimer une liste d'UE à un bloc de competence
"""
@app.route('/myclass/api/Delete_UE_From_Bloc_Competence/', methods=['POST','GET'])
@crossdomain(origin='*')
def Delete_UE_From_Bloc_Competence():
# On recupere le corps (payload) de la requete
payload = mycommon.strip_dictionary (request.form.to_dict())
print(" ### Delete_UE_From_Bloc_Competence payload = ",payload)
status, retval = bloc_competence.Delete_UE_From_Bloc_Competence(payload)
return jsonify(status=status, message=retval)
if __name__ == '__main__':

View File

@ -403,7 +403,8 @@ def Get_Given_pole_activite_pedagogique(diction):
if( "tab_competence_activite_pedagogique" in New_retVal.keys() ):
for competence_activite_pedagogique_data in New_retVal['tab_competence_activite_pedagogique'] :
if( "competence_id" in competence_activite_pedagogique_data.keys() and
"activite_pedagogique_id" in competence_activite_pedagogique_data.keys() ):
"activite_pedagogique_id" in competence_activite_pedagogique_data.keys() and
"mysy_single_field" in competence_activite_pedagogique_data.keys() ):
local_competence_data = MYSY_GV.dbname['competence_pedagogique'].find_one({'_id':ObjectId(str(competence_activite_pedagogique_data['competence_id'])),
'partner_owner_recid':str(my_partner['recid'])})
@ -415,6 +416,7 @@ def Get_Given_pole_activite_pedagogique(diction):
local_node['id'] = str(cpt_local_competence)
cpt_local_competence = cpt_local_competence + 1
local_node['mysy_single_field'] = str(competence_activite_pedagogique_data['mysy_single_field'])
local_node['activite_pedagogique_id'] = str(local_activite_data['_id'])
local_node['activite_pedagogique_code'] = str(local_activite_data['code'])
local_node['activite_pedagogique_description'] = str(local_activite_data['description'])
@ -763,6 +765,28 @@ def Delete_Activite_From_Pole_pedagogique(diction):
if( is_activite_existe_in_pole_activite == 1):
print(" OUII existe, donc update")
"""
1 - Supprimer aussi les compétences associées à cette activité dans ce bloc - collection : tab_competence_activite_pedagogique
"""
update_1 = MYSY_GV.dbname['pole_activite_pedagogique'].update_one(
{'_id': ObjectId(str(diction['pole_activite_id'])),
'valide': '1',
'locked': '0',
'partner_owner_recid': str(my_partner['recid']),
},
{'$pull': {"tab_competence_activite_pedagogique": {
"activite_pedagogique_id": str(activite_id)}}},
)
"""
2 - Supprimer l'activité du pole
"""
update = MYSY_GV.dbname['pole_activite_pedagogique'].update_one({'_id': ObjectId(str(diction['pole_activite_id'])),
'valide': '1',
'locked':'0',
@ -894,12 +918,17 @@ def Add_Update_Competence_To_Pole_pedagogique_And_Activite(diction):
Si la tache existe dans tab_tache_pedagogique, alors on fait un update,
si non on fait une insertion
"""
local_mysy_single_field = str(diction['activite_pedagogique_id'])+"_"+str(competence_id)
is_activite_existe_in_pole_activite = MYSY_GV.dbname['pole_activite_pedagogique'].count_documents({'_id': ObjectId(str(diction['pole_activite_id'])),
'valide': '1',
'partner_owner_recid': str(my_partner['recid']),
'tab_competence_activite_pedagogique.competence_id': str(competence_id),
'tab_competence_activite_pedagogique.activite_pedagogique_id': str(
diction['activite_pedagogique_id'])
'tab_competence_activite_pedagogique.mysy_single_field': str(local_mysy_single_field),
})
if( is_activite_existe_in_pole_activite == 1):
@ -907,9 +936,7 @@ def Add_Update_Competence_To_Pole_pedagogique_And_Activite(diction):
update = MYSY_GV.dbname['pole_activite_pedagogique'].update_one({'_id': ObjectId(str(diction['pole_activite_id'])),
'valide': '1',
'partner_owner_recid': str(my_partner['recid']),
'tab_competence_activite_pedagogique.competence_id': str(competence_id),
'tab_activite_pedagogique.activite_pedagogique_id': str(
diction['activite_pedagogique_id'])
'tab_competence_activite_pedagogique.mysy_single_field': str(local_mysy_single_field),
},
{'$set':
{
@ -918,8 +945,8 @@ def Add_Update_Competence_To_Pole_pedagogique_And_Activite(diction):
}
},
upsert=False,
array_filters=[ {'$and': [{"xxx.competence_id": str(competence_id)},
{"xxx.activite_pedagogique_id": str(diction['activite_pedagogique_id'])}]}
array_filters=[{"xxx.mysy_single_field": str(local_mysy_single_field)},
]
)
@ -933,6 +960,7 @@ def Add_Update_Competence_To_Pole_pedagogique_And_Activite(diction):
new_data['creation_by'] = str(my_partner['_id'])
new_data['creation_date'] = str(datetime.now())
new_data['locked'] = "0"
new_data['mysy_single_field'] = str(local_mysy_single_field)
@ -977,7 +1005,7 @@ def Delete_Competence_Activite_From_Pole_pedagogique_And_Activite(diction):
"""
Verification des input acceptés
"""
field_list = ['token', 'pole_activite_id', 'activite_pedagogique_id', 'competence_id']
field_list = ['token', 'pole_activite_id', 'mysy_single_field']
incom_keys = diction.keys()
for val in incom_keys:
@ -989,7 +1017,7 @@ def Delete_Competence_Activite_From_Pole_pedagogique_And_Activite(diction):
"""
Verification des champs obligatoires
"""
field_list_obligatoire = ['token', 'pole_activite_id', 'activite_pedagogique_id', 'competence_id']
field_list_obligatoire = ['token', 'pole_activite_id', 'mysy_single_field']
for val in field_list_obligatoire:
if val not in diction:
@ -1010,22 +1038,6 @@ def Delete_Competence_Activite_From_Pole_pedagogique_And_Activite(diction):
if (local_status is not True):
return local_status, my_partner
"""
Verifier la validité de la compétence
"""
is_valide_competence = MYSY_GV.dbname['competence_pedagogique'].count_documents(
{'_id': ObjectId(diction['competence_id']),
'valide': '1',
'locked': '0',
'partner_owner_recid': str(
my_partner['recid'])
})
if (is_valide_competence != 1):
mycommon.myprint(
str(inspect.stack()[0][
3]) + " L'identifiant de la compétence est invalide ")
return False, " L'identifiant de la compétence est invalide "
@ -1044,55 +1056,23 @@ def Delete_Competence_Activite_From_Pole_pedagogique_And_Activite(diction):
return False, " L'identifiant du pôle d'activité est invalide "
is_valide_activite = MYSY_GV.dbname['activite_pedagogique'].count_documents({'_id':ObjectId(str(diction['activite_pedagogique_id'])),
'valide':'1',
'locked':'0',
'partner_owner_recid':str(my_partner['recid'])})
if( is_valide_activite != 1):
mycommon.myprint(
str(inspect.stack()[0][
3]) + " L'identifiant de l'activité "+str(diction['tache_pedagogique_id'])+" est invalide ")
return False, " L'identifiant de l'actvité "+str(diction['tache_pedagogique_id'])+" est invalide "
tab_tache_pedagogique = []
tab_tache_pedagogique.append(str(diction['competence_id']))
tab_tache_pedagogique.append(str(diction['mysy_single_field']))
for competence_id in tab_tache_pedagogique:
"""
Si la tache existe dans tab_tache_pedagogique, alors on fait un update,
si non on fait une insertion
"""
for local_mysy_single_field in tab_tache_pedagogique:
update = MYSY_GV.dbname['pole_activite_pedagogique'].update_one({'_id': ObjectId(str(diction['pole_activite_id'])),
'valide': '1',
'partner_owner_recid': str(my_partner['recid']),
'tab_competence_activite_pedagogique.mysy_single_field': str(local_mysy_single_field),
},
{'$pull': {"tab_competence_activite_pedagogique": {"mysy_single_field": str(local_mysy_single_field),
}
} },
is_activite_existe_in_pole_activite = MYSY_GV.dbname['pole_activite_pedagogique'].count_documents({'_id': ObjectId(str(diction['pole_activite_id'])),
'valide': '1',
'partner_owner_recid': str(my_partner['recid']),
'tab_competence_activite_pedagogique.competence_id': str(competence_id),
'tab_competence_activite_pedagogique.activite_pedagogique_id': str(
diction['activite_pedagogique_id'])
})
if( is_activite_existe_in_pole_activite == 1):
print(" OUII existe, donc update")
print({'$pull': {"tab_competence_activite_pedagogique": [ {'$and': [ {"competence_id": str(competence_id) } ,
{"activite_pedagogique_id": str(diction['activite_pedagogique_id'])
} ] } ] } },)
update = MYSY_GV.dbname['pole_activite_pedagogique'].update_one({'_id': ObjectId(str(diction['pole_activite_id'])),
'valide': '1',
'partner_owner_recid': str(my_partner['recid']),
'tab_competence_activite_pedagogique.competence_id': str(competence_id),
'tab_competence_activite_pedagogique.activite_pedagogique_id': str(diction['activite_pedagogique_id'])
},
{'$pull': {"tab_competence_activite_pedagogique": {"competence_id": str(competence_id),
"activite_pedagogique_id": str(diction['activite_pedagogique_id']) }
} },
)
)