21/11/2023 17h15

master
cherif 2023-11-21 17:11:24 +01:00
parent 3fc4dac28b
commit da094a3759
4 changed files with 1451 additions and 23 deletions

View File

@ -2,13 +2,10 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="20/11/2023 - 21h00">
<change afterPath="$PROJECT_DIR$/base_config_modele_journee.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$/Session_Formation_Sequence.py" beforeDir="false" afterPath="$PROJECT_DIR$/Session_Formation_Sequence.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/agenda.py" beforeDir="false" afterPath="$PROJECT_DIR$/agenda.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" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />

File diff suppressed because it is too large Load Diff

View File

@ -207,6 +207,9 @@ ils laisse le système créer toutes les sequence.
Alogo :
1 - Si la session est valide, on supprime toutes les sequences existantes pour cette session (y compris les plannings)
2 - on prend en entrée le modele de journé à appliquer (heures de la journée, jours de la semaine)
3 - Pour chaque ressource rattachée à session, on va aller faire les reservation d'agenda : ATTENTION
-> NOTE : On ne va pas ajouté les ressources tout de suite. Apres la creation, on donnera la possiblité de choisir plusieurs (voir toutes)
les sequence, puis proposer l'ajout en masse d'une ressource.
"""
@ -261,9 +264,48 @@ def Create_Automatic_Sequence(diction):
str(inspect.stack()[0][3]) + " - L'identifiant de la session n'est pas valide ")
return False, "L'identifiant de la session n'est pas valide "
"""
Si le "jounree_modele_id" est vide, cela veut qu'il faut aller chercher le modele par default
"""
jounree_modele_id = ""
if( str(diction['jounree_modele_id']) == "" ):
jounree_modele_data = MYSY_GV.dbname['base_config_modele_journee'].find_one({'partner_owner_recid': str(my_partner['recid']),
'valide': '1', 'locked':'0', 'default':"1"})
if( jounree_modele_data is None ):
# On ne trouve pas de modele par defaut pour ce client. On va aller le chercher le modele par defaut de MySy
jounree_modele_data_mysy = MYSY_GV.dbname['base_config_modele_journee'].find_one(
{'partner_owner_recid': "default", 'valide': '1', 'locked': '0', 'default': "1"})
if( jounree_modele_data_mysy is None ):
mycommon.myprint(
str(inspect.stack()[0][3]) + " - Aucun modèle de journée n'est configuré dans le système ")
return False, " Aucun modèle de journée n'est configuré dans le système "
jounree_modele_id = str(jounree_modele_data_mysy['_id'])
else:
jounree_modele_id = str(jounree_modele_data['_id'])
else:
jounree_modele_id = str(diction['jounree_modele_id'])
if (str(jounree_modele_id).strip() == ""):
mycommon.myprint(
str(inspect.stack()[0][3]) + " - Aucun modèle de journée n'est configuré dans le système (2) ")
return False, " Aucun modèle de journée n'est configuré dans le système (2) "
print(" #### jounree_modele_id = ", jounree_modele_id)
# Verification de l'existence du modele de journée
is_existe_valide_journee_model_id = MYSY_GV.dbname["base_config_modele_journee"].count_documents(
{'_id': ObjectId(str(diction['jounree_modele_id'])),
{'_id': ObjectId(str(jounree_modele_id)) ,
'partner_owner_recid': str(my_partner['recid']),
'valide': '1', 'locked':'0'})
@ -275,7 +317,7 @@ def Create_Automatic_Sequence(diction):
# Recuperation des data
is_existe_valide_journee_model_data= MYSY_GV.dbname["base_config_modele_journee"].find_one(
{'_id': ObjectId(str(diction['jounree_modele_id'])),
{'_id': ObjectId(str(jounree_modele_id)),
'partner_owner_recid': str(my_partner['recid']),
'valide': '1', 'locked': '0'})
@ -351,7 +393,7 @@ def Create_Automatic_Sequence(diction):
liste_jours_travaille_code_day.append(str(jour['day_name']))
"""
/!\ Suppression des sequences qui existe et reservation par rapport à cette session
/!\ Suppression des sequences qui existe et reservation dans les agenda par rapport à cette session
"""
for local_retval in MYSY_GV.dbname['session_formation_sequence'].find({'session_id': str(diction['session_id']),
'partner_owner_recid': str(my_partner['recid']),}):
@ -374,7 +416,6 @@ def Create_Automatic_Sequence(diction):
print(single_date.strftime("%A"))
if( str(single_date.strftime("%A")).lower() in liste_jours_travaille):
print(" OK TRAVAILLE")
# Pour chaque sequence de la journée
for local_val in is_existe_valide_journee_model_data['tab_sequence']:
@ -385,7 +426,7 @@ def Create_Automatic_Sequence(diction):
sequence_data['sequence_start'] = str(single_date.strftime("%d/%m/%Y"))+" "+str(local_val['heure_debut']).strip()
sequence_data['sequence_end'] = str(single_date.strftime("%d/%m/%Y"))+" "+str(local_val['heure_fin']).strip()
print(" ### sequence_data = ", sequence_data)
#print(" ### sequence_data = ", sequence_data)
local_status, local_val = Add_Session_Sequence(sequence_data)
@ -393,14 +434,11 @@ def Create_Automatic_Sequence(diction):
mycommon.myprint(
str(inspect.stack()[0][ 3]) + " WARNING : " + str(local_val))
cpt = cpt + 1
else:
print(" KO NON TRAVAILLE ")
@ -529,15 +567,13 @@ def Update_Session_Sequence(diction):
str(diction['_id']))}
}):
print(" #### str(retVal['event_start']) = ", str(retVal['sequence_start']))
print(" #### str(retVal['event_end']) = ", str(retVal['sequence_end']))
New_retVal_start_date = datetime.strptime(str(retVal['sequence_start']), '%d/%m/%Y %H:%M').strftime(
"%d/%m/%Y %H:%M")
New_retVal_end_date = datetime.strptime(str(retVal['sequence_end']), '%d/%m/%Y %H:%M').strftime(
"%d/%m/%Y %H:%M")
print(" ### New_retVal_start_date = ", New_retVal_start_date)
print(" ### New_retVal_end_date = ", New_retVal_end_date)
if (datetime.strptime(str(New_retVal_start_date), '%d/%m/%Y %H:%M') <= datetime.strptime(
str(date_debut_seq), '%d/%m/%Y %H:%M') and

View File

@ -106,15 +106,15 @@ def Add_Update_Agenda_Event(diction):
return False, " L'identifiant du 'related_collection_recid' n'est pas valide "
if (datetime.strptime(str(diction['event_start']), '%d/%m/%Y %H:%M') >= datetime.strptime(str(diction['event_end']),
'%d/%m/%Y %H:%M')):
if (datetime.strptime(str(diction['event_start'])[0:16], '%Y-%m-%dT%H:%M') >= datetime.strptime(str(diction['event_end'])[0:16],
'%Y-%m-%dT%H:%M')):
mycommon.myprint(
str(inspect.stack()[0][
3]) + " La date de fin de séquence " + str(
diction['event_end']) + " doit être postérieure à la date de début de séquence " + str(
3]) + " La date de fin " + str(
diction['event_end']) + " doit être postérieure à la date de début " + str(
diction['event_end']) + " ")
return False, " La date de fin de séquence " + str(
diction['event_end']) + " doit être postérieure à la date de début de séquence " + str(diction['event_end']) + " "
return False, " La date de fin " + str(
diction['event_end']) + " doit être postérieure à la date de début " + str(diction['event_end']) + " "
@ -244,6 +244,16 @@ def Add_Update_Agenda_Event_Stagiaire(diction):
str(inspect.stack()[0][3]) + " - L'identifiant du 'related_collection_recid' n'est pas valide ")
return False, " L'identifiant du 'related_collection_recid' n'est pas valide "
if (datetime.strptime(str(diction['event_start'])[0:16], '%Y-%m-%dT%H:%M') >= datetime.strptime(str(diction['event_end'])[0:16],
'%Y-%m-%dT%H:%M')):
mycommon.myprint(
str(inspect.stack()[0][
3]) + " La date de fin " + str(
diction['event_end']) + " doit être postérieure à la date de début " + str(
diction['event_end']) + " ")
return False, " La date de fin " + str(
diction['event_end']) + " doit être postérieure à la date de début " + str(diction['event_end']) + " "
mydata = {}
mydata['related_collection'] = str(diction['related_collection'])
@ -358,6 +368,7 @@ def get_Agenda_Event_List(diction):
'partner_owner_recid':str(my_partner['recid']), 'valide':'1', 'locked':'0'}
print(" ### qry = ", qry)
for New_retVal in MYSY_GV.dbname['agenda'].find({'related_collection':str(diction['related_collection']), 'related_collection_recid':str(diction['related_collection_recid']),
'partner_owner_recid':str(my_partner['recid']), 'valide':'1', 'locked':'0'}):