11/08/23 - 16h
parent
f0b3626064
commit
50ed7974e4
|
@ -1,8 +1,10 @@
|
|||
<?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="09/08/2023 - 21h">
|
||||
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="10/08/23 - 16h">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/GlobalVariable.py" beforeDir="false" afterPath="$PROJECT_DIR$/GlobalVariable.py" 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" />
|
||||
</list>
|
||||
|
@ -68,13 +70,6 @@
|
|||
<option name="presentableId" value="Default" />
|
||||
<updated>1680804787304</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00014" summary="25/04/23 - 21h">
|
||||
<created>1682612087897</created>
|
||||
<option name="number" value="00014" />
|
||||
<option name="presentableId" value="LOCAL-00014" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1682612087897</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00015" summary="28/04/23 - 21h">
|
||||
<created>1682714699263</created>
|
||||
<option name="number" value="00015" />
|
||||
|
@ -411,7 +406,14 @@
|
|||
<option name="project" value="LOCAL" />
|
||||
<updated>1691607124367</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="63" />
|
||||
<task id="LOCAL-00063" summary="10/08/23 - 16h">
|
||||
<created>1691675826292</created>
|
||||
<option name="number" value="00063" />
|
||||
<option name="presentableId" value="LOCAL-00063" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1691675826292</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="64" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
|
@ -426,7 +428,6 @@
|
|||
</option>
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<MESSAGE value="04/07/23 - 17h" />
|
||||
<MESSAGE value="05/07/23 - 12h" />
|
||||
<MESSAGE value="05/07/23 - 20h" />
|
||||
<MESSAGE value="08/07/23 - 20h" />
|
||||
|
@ -451,6 +452,7 @@
|
|||
<MESSAGE value="06/08/23 - 23h" />
|
||||
<MESSAGE value="08/08/2023 - 16h" />
|
||||
<MESSAGE value="09/08/2023 - 21h" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="09/08/2023 - 21h" />
|
||||
<MESSAGE value="10/08/23 - 16h" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="10/08/23 - 16h" />
|
||||
</component>
|
||||
</project>
|
|
@ -449,6 +449,18 @@ Les types d'image authorisé a etre stockés en base de données
|
|||
BDD_STOCKAGE_IMG = ['logo', 'cachet', 'user']
|
||||
|
||||
|
||||
"""
|
||||
Pour les session, on definit les étapes suivantes :
|
||||
0 => En projet
|
||||
1 => En planification
|
||||
2 => Planifiée
|
||||
3 => Terminée
|
||||
4 => Facturée
|
||||
-1 => Annulée
|
||||
"""
|
||||
SESSION_ETAPE = ['-1', '0', '1', '2', '3', '4', '5']
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -707,18 +707,17 @@ def GetAllClassStagiaire(diction):
|
|||
|
||||
|
||||
RetObject = []
|
||||
val_tmp = 1
|
||||
val_tmp = 0
|
||||
|
||||
print(" #### myquery 01= "+str(myquery))
|
||||
|
||||
|
||||
for retval in coll_session.find(myquery):
|
||||
val_tmp = val_tmp + 1
|
||||
user = retval
|
||||
user['id'] = str(val_tmp)
|
||||
val_tmp = val_tmp + 1
|
||||
RetObject.append(mycommon.JSONEncoder().encode(user))
|
||||
|
||||
|
||||
return True, RetObject
|
||||
|
||||
except Exception as e:
|
||||
|
|
4339
Log/log_file.log
4339
Log/log_file.log
File diff suppressed because it is too large
Load Diff
|
@ -30,6 +30,8 @@ la clée est :
|
|||
- class_internal_url
|
||||
|
||||
/!\ : le champ 'source' definit la source de la creation de la session
|
||||
|
||||
si le champ 'session_id' est renseigné alors c'est une mise à jour.
|
||||
"""
|
||||
def Add_Update_SessionFormation(diction):
|
||||
try:
|
||||
|
@ -44,7 +46,7 @@ def Add_Update_SessionFormation(diction):
|
|||
'code_postal', 'ville', 'formateur', 'code_session',
|
||||
'class_internal_url', 'session_status', 'date_debut_inscription', 'date_fin_inscription',
|
||||
'attestation_certif', "distantiel", "presentiel", "prix_session", 'contenu_ftion', 'lms_class_code',
|
||||
'session_ondemande', 'source']
|
||||
'session_ondemande', 'source', 'session_id', 'session_etape']
|
||||
|
||||
incom_keys = diction.keys()
|
||||
for val in incom_keys:
|
||||
|
@ -77,6 +79,9 @@ def Add_Update_SessionFormation(diction):
|
|||
if retval is False:
|
||||
return "Err_Connexion", " La session de connexion n'est pas valide"
|
||||
|
||||
session_id = ""
|
||||
if ("session_id" in diction.keys()):
|
||||
session_id = diction['session_id']
|
||||
|
||||
|
||||
code_session = ""
|
||||
|
@ -106,6 +111,13 @@ def Add_Update_SessionFormation(diction):
|
|||
if ("date_debut" in diction.keys()):
|
||||
mydata['date_debut'] = diction['date_debut']
|
||||
|
||||
if ("session_etape" in diction.keys()):
|
||||
if(str(diction['session_etape']) not in MYSY_GV.SESSION_ETAPE):
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " - L'étape '"+str(diction['session_etape'])+"' n'est pas autorisée ")
|
||||
return False, "L'étape '"+str(diction['session_etape'])+"' n'est pas autorisée "
|
||||
|
||||
mydata['session_etape'] = diction['session_etape']
|
||||
|
||||
|
||||
if ("date_fin" in diction.keys()):
|
||||
mydata['date_fin'] = diction['date_fin']
|
||||
|
@ -270,29 +282,85 @@ def Add_Update_SessionFormation(diction):
|
|||
# Fin Controle de cohérence sur les dates
|
||||
|
||||
|
||||
print(" ### query_key = ", query_key)
|
||||
coll_name = MYSY_GV.dbname['session_formation']
|
||||
ret_val = coll_name.find_one_and_update(
|
||||
query_key,
|
||||
{"$set": mydata},
|
||||
upsert=True,
|
||||
return_document=ReturnDocument.AFTER
|
||||
)
|
||||
"""
|
||||
Verification avant ajout ou mise à jour
|
||||
1 - si le champ 'session_id' est renseingé alors c'est une mise à jour.
|
||||
Dans le cas d'une mise à jour,
|
||||
je verifie s'il y a des inscription avec les code session actuellement en base, si oui, alors on refuse la modication
|
||||
/!\ : DU CODE SESSION, mais on accepte les autres champs car le session est deja utilisé.
|
||||
|
||||
2 - Si le champ 'session_id' N'EST PAS renseingé alors c'est une creation.
|
||||
On verifie que ce code session n'est pas deja utilisé pour cette formation.
|
||||
.
|
||||
|
||||
"""
|
||||
Warning_Message = ""
|
||||
if(len(str(session_id)) > 0 ):
|
||||
# Il s'agit d'une mise à jour
|
||||
|
||||
if (ret_val['_id'] is None):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " Impossible d'ajouter/mettre à jour la session '"+str(diction['code_session'])+"' ")
|
||||
return False, "Impossible d'ajouter/mettre à jour la session '"+str(diction['code_session'])+"' "
|
||||
# Etape 1 : recuperation du code session en base
|
||||
local_retval1 = MYSY_GV.dbname['session_formation'].find_one({'_id':ObjectId(str(session_id))})
|
||||
if( local_retval1 is None or 'code_session' not in local_retval1.keys() or 'class_internal_url' not in local_retval1.keys() ):
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " - Cette session n'as pas de code session ")
|
||||
return False, "Impossible de recuperer le code de la session (1) "
|
||||
|
||||
existing_session_code = local_retval1['code_session']
|
||||
existing_class_internal_url = local_retval1['class_internal_url']
|
||||
|
||||
|
||||
local_retval = MYSY_GV.dbname['inscription'].count_documents({'session_id':str(existing_session_code),
|
||||
'class_internal_url':str(existing_class_internal_url)})
|
||||
|
||||
return True, " La session de formation à bien été crééé"
|
||||
if( local_retval > 0):
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " - Cette session a déjà des inscriptions. Le code de la session ne peut etre modifié. Les autres champs ont été correctement mis à jour")
|
||||
mydata['code_session'] = existing_session_code # On remet le actuellement en base de données
|
||||
Warning_Message = "Cette session a déjà des inscriptions. Le code de la session ne peut etre modifié. Les autres champs ont été correctement mis à jour"
|
||||
|
||||
|
||||
print(" ###laaa mydata = ", mydata)
|
||||
coll_name = MYSY_GV.dbname['session_formation']
|
||||
ret_val = coll_name.find_one_and_update(
|
||||
{'_id':ObjectId(str(session_id))},
|
||||
{"$set": mydata},
|
||||
upsert=False,
|
||||
return_document=ReturnDocument.AFTER
|
||||
)
|
||||
|
||||
if (ret_val is None or '_id' not in ret_val.keys()):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " Impossible d'ajouter/mettre à jour la session '" + str(
|
||||
diction['code_session']) + "' ")
|
||||
return False, "Impossible d'ajouter/mettre à jour la session '" + str(diction['code_session']) + "' "
|
||||
|
||||
|
||||
print("len(str(Warning_Message)) = ", len(str(Warning_Message)), " ### CONTOLE : ", Warning_Message)
|
||||
if(len(str(Warning_Message)) > 2 ):
|
||||
print(" ### KOOOOOOOOOOOOOOOOOOOOOO")
|
||||
return True, str(Warning_Message)
|
||||
|
||||
return True, " La session de formation à bien été mise à jour"
|
||||
|
||||
if (len(str(session_id)) <= 0):
|
||||
# La session n'existe pas, on fait une simple creation
|
||||
|
||||
print(" ### mydata = ", mydata)
|
||||
coll_name = MYSY_GV.dbname['session_formation']
|
||||
ret_val = coll_name.insert_one(mydata)
|
||||
|
||||
|
||||
if (ret_val is None or '_id' not in ret_val.keys()):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " Impossible d'ajouter la session '" + str(
|
||||
diction['code_session']) + "' ")
|
||||
return False, "Impossible d'ajouter la session '" + str(diction['code_session']) + "' "
|
||||
|
||||
return True, " La session de formation à bien été créée"
|
||||
|
||||
|
||||
except Exception as e:
|
||||
exc_type, exc_obj, exc_tb = sys.exc_info()
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
|
||||
return False, "Impossible de créer la session de formation"
|
||||
return False, "Impossible de créer / mettre à jour la session de formation"
|
||||
|
||||
|
||||
"""
|
||||
|
@ -374,6 +442,8 @@ def GetSessionFormation(diction):
|
|||
nb_val = nb_val + 1
|
||||
RetObject.append(mycommon.JSONEncoder().encode(retval))
|
||||
|
||||
|
||||
|
||||
# Si le nombre de session trouvé est > 1 alors incohérence, retourner une message d'erreur
|
||||
if( nb_val > 1 ):
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " - la query "+str(myquery)+" retourne "+str(nb_val)+" session. ceci n'est pas normal. il ne doit pas y avoir plus 1 session")
|
||||
|
@ -688,7 +758,8 @@ def Add_Update_SessionFormation_mass(file=None, Folder=None, diction=None):
|
|||
'''
|
||||
field_list = ['date_debut', 'date_fin', 'nb_participant', 'adresse', 'code_postal', 'ville',
|
||||
'session_status', 'date_debut_inscription', 'date_fin_inscription', 'attestation', 'formateur',
|
||||
'code_session', "distanciel", "presentiel", "prix_session", 'contenu_ftion', 'lms_class_code', 'session_ondemande']
|
||||
'code_session', "distanciel", "presentiel", "prix_session", 'contenu_ftion', 'lms_class_code',
|
||||
'session_ondemande', 'session_etape']
|
||||
|
||||
# Controle du nombre de lignes dans le fichier.
|
||||
total_rows = len(df)
|
||||
|
@ -913,7 +984,24 @@ def Add_Update_SessionFormation_mass(file=None, Folder=None, diction=None):
|
|||
local_formateur = str(df['formateur'].values[n]).strip()
|
||||
mydata['formateur'] = local_formateur
|
||||
|
||||
session_status = ""
|
||||
if ("session_status" in df.keys()):
|
||||
if (str(df['session_status'].values[n])):
|
||||
session_status = str(df['session_status'].values[n]).strip()
|
||||
mydata['session_status'] = session_status
|
||||
|
||||
|
||||
session_etape = ""
|
||||
if ("session_etape" in df.keys()):
|
||||
if (str(df['session_etape'].values[n])):
|
||||
session_etape = str(df['session_etape'].values[n]).strip()
|
||||
mydata['session_etape'] = session_etape
|
||||
|
||||
"""
|
||||
Update du 11/08/23 :
|
||||
- le status va etre geré en 0 (desactivé) et 1 (activé)
|
||||
- mise en commentaire du code ci-dessous
|
||||
|
||||
local_session = str(df['session_status'].values[n]).strip()
|
||||
|
||||
if( str(local_session) != "0" and str(local_session) != "1" and str(local_session) != "2"):
|
||||
|
@ -923,7 +1011,7 @@ def Add_Update_SessionFormation_mass(file=None, Folder=None, diction=None):
|
|||
|
||||
if( str(local_session) == "1"):
|
||||
mydata['session_status'] = str("true")
|
||||
|
||||
"""
|
||||
|
||||
mydata['date_debut_inscription'] = str(df['date_debut_inscription'].values[n]).strip().split(" ")[0]
|
||||
local_status = mycommon.CheckisDate(mydata['date_debut_inscription'])
|
||||
|
@ -996,4 +1084,6 @@ def Add_Update_SessionFormation_mass(file=None, Folder=None, diction=None):
|
|||
except Exception as e:
|
||||
exc_type, exc_obj, exc_tb = sys.exc_info()
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
|
||||
return False, "Impossible d'importer les sessions de formation en masse "
|
||||
return False, "Impossible d'importer les sessions de formation en masse "
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue