04/05/2024 - 20h30

master
cherif 2024-05-04 20:37:33 +02:00
parent 477bd1d5d4
commit ecb28d720d
5 changed files with 2740 additions and 73 deletions

View File

@ -1,9 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="sss"> <list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="vvvv">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" 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$/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$/Session_Formation_Sequence.py" beforeDir="false" afterPath="$PROJECT_DIR$/Session_Formation_Sequence.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -73,13 +76,6 @@
<option name="presentableId" value="Default" /> <option name="presentableId" value="Default" />
<updated>1680804787304</updated> <updated>1680804787304</updated>
</task> </task>
<task id="LOCAL-00234" summary="sss">
<created>1709567569246</created>
<option name="number" value="00234" />
<option name="presentableId" value="LOCAL-00234" />
<option name="project" value="LOCAL" />
<updated>1709567569247</updated>
</task>
<task id="LOCAL-00235" summary="04/03/2024 - 22h15"> <task id="LOCAL-00235" summary="04/03/2024 - 22h15">
<created>1709587020472</created> <created>1709587020472</created>
<option name="number" value="00235" /> <option name="number" value="00235" />
@ -416,7 +412,14 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1714748608160</updated> <updated>1714748608160</updated>
</task> </task>
<option name="localTasksCounter" value="283" /> <task id="LOCAL-00283" summary="vvvv">
<created>1714823572225</created>
<option name="number" value="00283" />
<option name="presentableId" value="LOCAL-00283" />
<option name="project" value="LOCAL" />
<updated>1714823572226</updated>
</task>
<option name="localTasksCounter" value="284" />
<servers /> <servers />
</component> </component>
<component name="Vcs.Log.Tabs.Properties"> <component name="Vcs.Log.Tabs.Properties">
@ -458,7 +461,6 @@
</option> </option>
</component> </component>
<component name="VcsManagerConfiguration"> <component name="VcsManagerConfiguration">
<MESSAGE value="03/04/24 - 21h30" />
<MESSAGE value="04/04/24 - 19h30" /> <MESSAGE value="04/04/24 - 19h30" />
<MESSAGE value="04/04/24 - 21h30" /> <MESSAGE value="04/04/24 - 21h30" />
<MESSAGE value="06/04/2024 - 21h19" /> <MESSAGE value="06/04/2024 - 21h19" />
@ -483,6 +485,7 @@
<MESSAGE value="28/04/2024 - 22h" /> <MESSAGE value="28/04/2024 - 22h" />
<MESSAGE value="02/05/2024 - 22h" /> <MESSAGE value="02/05/2024 - 22h" />
<MESSAGE value="sss" /> <MESSAGE value="sss" />
<option name="LAST_COMMIT_MESSAGE" value="sss" /> <MESSAGE value="vvvv" />
<option name="LAST_COMMIT_MESSAGE" value="vvvv" />
</component> </component>
</project> </project>

File diff suppressed because it is too large Load Diff

View File

@ -9585,4 +9585,7 @@ def Client_Update_Liste_Attendee_No_Token(diction):
except Exception as e: except Exception as e:
exc_type, exc_obj, exc_tb = sys.exc_info() exc_type, exc_obj, exc_tb = sys.exc_info()
print(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno)) print(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
return False, " Impossible de mettre à jour la liste des participants" return False, " Impossible de mettre à jour la liste des participants"

View File

@ -5,7 +5,7 @@ Par exemple, une session peut de deroulée sur 2 mois (planning) mais en realit
Ce developpement permet de gerer ce cas. Ce developpement permet de gerer ce cas.
""" """
import ast
import bson import bson
import pymongo import pymongo
@ -55,7 +55,8 @@ def Add_Session_Sequence(diction):
""" """
Verification des input acceptés Verification des input acceptés
""" """
field_list = ['token', 'session_id', 'sequence_title', 'sequence_start', 'sequence_end', 'agenda', 'objectif', 'commentaire' ] field_list = ['token', 'session_id', 'sequence_title', 'sequence_start', 'sequence_end', 'agenda', 'objectif',
'commentaire', 'check_chevauchement' ]
incom_keys = diction.keys() incom_keys = diction.keys()
for val in incom_keys: for val in incom_keys:
@ -145,41 +146,51 @@ def Add_Session_Sequence(diction):
date_fin_seq) + " doit être postérieure à la date de début de séquence "+ str( date_debut_seq)+" " date_fin_seq) + " doit être postérieure à la date de début de séquence "+ str( date_debut_seq)+" "
for retVal in MYSY_GV.dbname['session_formation_sequence'].find({'session_id': str(diction['session_id']), """
'partner_owner_recid': str(my_partner['recid']), 04/05/2024 : Controle des chevauchements
'valide':'1', Par defaut on fait des controle de chevauchement, sauf si on decide de la desactiver
'locked':'0'}):
"""""
check_chevauchement = 1
if( "check_chevauchement" in diction.keys() and diction['check_chevauchement'] == "0"):
check_chevauchement = 0
#print(" #### str(retVal['event_start']) = ", str(retVal['sequence_start'])) if( check_chevauchement == 1 ):
#print(" #### str(retVal['event_end']) = ", str(retVal['sequence_end'])) for retVal in MYSY_GV.dbname['session_formation_sequence'].find({'session_id': str(diction['session_id']),
'partner_owner_recid': str(my_partner['recid']),
'valide':'1',
'locked':'0'}):
New_retVal_start_date = datetime.strptime(str(retVal['sequence_start']), '%d/%m/%Y %H:%M').strftime("%d/%m/%Y %H:%M") #print(" #### str(retVal['event_start']) = ", str(retVal['sequence_start']))
New_retVal_end_date = datetime.strptime(str(retVal['sequence_end']), '%d/%m/%Y %H:%M').strftime("%d/%m/%Y %H:%M") #print(" #### str(retVal['event_end']) = ", str(retVal['sequence_end']))
#print(" ### New_retVal_start_date = ", New_retVal_start_date) New_retVal_start_date = datetime.strptime(str(retVal['sequence_start']), '%d/%m/%Y %H:%M').strftime("%d/%m/%Y %H:%M")
#print(" ### New_retVal_end_date = ", New_retVal_end_date) 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 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
datetime.strptime(str(New_retVal_end_date), '%d/%m/%Y %H:%M') >= datetime.strptime(str(date_debut_seq), '%d/%m/%Y %H:%M')): datetime.strptime(str(New_retVal_end_date), '%d/%m/%Y %H:%M') >= datetime.strptime(str(date_debut_seq), '%d/%m/%Y %H:%M')):
mycommon.myprint( mycommon.myprint(
str(inspect.stack()[0][ str(inspect.stack()[0][
3]) + " La date de debut de séquence yyy " + str( 3]) + " La date de debut de séquence yyy " + str(
date_debut_seq) + " chevauche une autre séquence ") date_debut_seq) + " chevauche une autre séquence ")
return False, " La date de debut de séquence yyy " + str( return False, " La date de debut de séquence yyy " + str(
date_debut_seq) + " chevauche une autre séquence" date_debut_seq) + " chevauche une autre séquence"
if (datetime.strptime(str(New_retVal_start_date), '%d/%m/%Y %H:%M') <= datetime.strptime(str(date_fin_seq), '%d/%m/%Y %H:%M') and if (datetime.strptime(str(New_retVal_start_date), '%d/%m/%Y %H:%M') <= datetime.strptime(str(date_fin_seq), '%d/%m/%Y %H:%M') and
datetime.strptime(str(New_retVal_end_date), '%d/%m/%Y %H:%M') >= datetime.strptime(str(date_fin_seq), '%d/%m/%Y %H:%M')): datetime.strptime(str(New_retVal_end_date), '%d/%m/%Y %H:%M') >= datetime.strptime(str(date_fin_seq), '%d/%m/%Y %H:%M')):
mycommon.myprint( mycommon.myprint(
str(inspect.stack()[0][ str(inspect.stack()[0][
3]) + " La date de fin de séquence zzz " + str( 3]) + " La date de fin de séquence zzz " + str(
date_debut_seq) + " chevauche une autre séquence ") date_debut_seq) + " chevauche une autre séquence ")
return False, " La date de fin de séquence zz " + str( return False, " La date de fin de séquence zz " + str(
date_debut_seq) + " chevauche une autre séquence" date_debut_seq) + " chevauche une autre séquence"
sequence_title = "" sequence_title = ""
if( "sequence_title" in diction.keys() ): if( "sequence_title" in diction.keys() ):
@ -226,6 +237,9 @@ def Add_Session_Sequence(diction):
return False, " Impossible d'ajouter la séquence " return False, " Impossible d'ajouter la séquence "
""" """
Fonction de Creation automatique de sequence. Fonction de Creation automatique de sequence.
Pour certains utilisteurs, au lieu de créer manuellement chaque sequence, Pour certains utilisteurs, au lieu de créer manuellement chaque sequence,
@ -867,7 +881,8 @@ def Update_Session_Sequence(diction):
""" """
Verification des input acceptés Verification des input acceptés
""" """
field_list = ['token', '_id', 'session_id', 'sequence_title', 'sequence_start', 'sequence_end', 'agenda', 'objectif', 'commentaire'] field_list = ['token', '_id', 'session_id', 'sequence_title', 'sequence_start', 'sequence_end', 'agenda', 'objectif',
'commentaire', 'check_chevauchement']
incom_keys = diction.keys() incom_keys = diction.keys()
for val in incom_keys: for val in incom_keys:
@ -961,44 +976,54 @@ def Update_Session_Sequence(diction):
date_fin_seq) + " doit être postérieure à la date de début de séquence " + str(date_debut_seq) + " " date_fin_seq) + " doit être postérieure à la date de début de séquence " + str(date_debut_seq) + " "
for retVal in MYSY_GV.dbname['session_formation_sequence'].find({'session_id': str(diction['session_id']), """
'partner_owner_recid': str( 04/05/2024 : Controle des chevauchements
my_partner['recid']), Par defaut on fait des controle de chevauchement, sauf si on decide de la desactiver
'valide': '1',
'locked': '0', """""
'_id': {'$ne': ObjectId( check_chevauchement = 1
str(diction['_id']))} if( "check_chevauchement" in diction.keys() and diction['check_chevauchement'] == "0"):
}): check_chevauchement = 0
if( check_chevauchement == 1 ):
for retVal in MYSY_GV.dbname['session_formation_sequence'].find({'session_id': str(diction['session_id']),
'partner_owner_recid': str(
my_partner['recid']),
'valide': '1',
'locked': '0',
'_id': {'$ne': ObjectId(
str(diction['_id']))}
}):
New_retVal_start_date = datetime.strptime(str(retVal['sequence_start']), '%d/%m/%Y %H:%M').strftime( New_retVal_start_date = datetime.strptime(str(retVal['sequence_start']), '%d/%m/%Y %H:%M').strftime(
"%d/%m/%Y %H:%M") "%d/%m/%Y %H:%M")
New_retVal_end_date = datetime.strptime(str(retVal['sequence_end']), '%d/%m/%Y %H:%M').strftime( New_retVal_end_date = datetime.strptime(str(retVal['sequence_end']), '%d/%m/%Y %H:%M').strftime(
"%d/%m/%Y %H:%M") "%d/%m/%Y %H:%M")
if (datetime.strptime(str(New_retVal_start_date), '%d/%m/%Y %H:%M') <= datetime.strptime( 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 str(date_debut_seq), '%d/%m/%Y %H:%M') and
datetime.strptime(str(New_retVal_end_date), '%d/%m/%Y %H:%M') >= datetime.strptime( datetime.strptime(str(New_retVal_end_date), '%d/%m/%Y %H:%M') >= datetime.strptime(
str(date_debut_seq), '%d/%m/%Y %H:%M')): str(date_debut_seq), '%d/%m/%Y %H:%M')):
mycommon.myprint( mycommon.myprint(
str(inspect.stack()[0][ str(inspect.stack()[0][
3]) + " La date de debut de séquence" + str( 3]) + " La date de debut de séquence" + str(
date_debut_seq) + " chevauche une autre séquence ") date_debut_seq) + " chevauche une autre séquence ")
return False, " La date de debut de séquence" + str( return False, " La date de debut de séquence" + str(
date_debut_seq) + " chevauche une autre séquence" date_debut_seq) + " chevauche une autre séquence"
if (datetime.strptime(str(New_retVal_start_date), '%d/%m/%Y %H:%M') <= datetime.strptime( if (datetime.strptime(str(New_retVal_start_date), '%d/%m/%Y %H:%M') <= datetime.strptime(
str(date_fin_seq), '%d/%m/%Y %H:%M') and str(date_fin_seq), '%d/%m/%Y %H:%M') and
datetime.strptime(str(New_retVal_end_date), '%d/%m/%Y %H:%M') >= datetime.strptime( datetime.strptime(str(New_retVal_end_date), '%d/%m/%Y %H:%M') >= datetime.strptime(
str(date_fin_seq), '%d/%m/%Y %H:%M')): str(date_fin_seq), '%d/%m/%Y %H:%M')):
mycommon.myprint( mycommon.myprint(
str(inspect.stack()[0][ str(inspect.stack()[0][
3]) + " La date de fin de séquence" + str( 3]) + " La date de fin de séquence" + str(
date_debut_seq) + " chevauche une autre séquence ") date_debut_seq) + " chevauche une autre séquence ")
return False, " La date de fin de séquence" + str( return False, " La date de fin de séquence" + str(
date_debut_seq) + " chevauche une autre séquence" date_debut_seq) + " chevauche une autre séquence"
update_data = {} update_data = {}
@ -1958,3 +1983,307 @@ def Get_List_Sequence_Ressource_Affectation(diction):
exc_type, exc_obj, exc_tb = sys.exc_info() exc_type, exc_obj, exc_tb = sys.exc_info()
mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno))
return False, " Impossible de récupérer la liste des ressources affectées à cette séquence " return False, " Impossible de récupérer la liste des ressources affectées à cette séquence "
"""
Cette fonction permet de dupliquer une semaine type
de date_debut à date_fin.
le champ : 'semaine_tab_event' contient la semaine type et est de forme :
[
{
"id": "1714820379044",
"title": "Nouvelle",
"start": "2024-05-02 11:00:00",
"end": "2024-05-02 12:30:00",
"agenda": "ddd",
"objectif": "ff",
"comment": "sdfds",
"day_week": "Thursday"
},
{
"id": "1714820397818",
"title": "Nouvelle",
"start": "2024-04-30 14:30:00",
"end": "2024-04-30 16:00:00",
"agenda": "ddfd",
"objectif": "fff",
"comment": "qqsdsq",
"day_week": "Tuesday"
},
{
"id": "1714831959464",
"title": "Nouvelle",
"start": "2024-05-03 09:00:00",
"end": "2024-05-03 11:00:00",
"agenda": "",
"objectif": "",
"comment": "",
"day_week": "Friday"
},
{
"id": "1714831968489",
"title": "Nouvelle",
"start": "2024-05-04 08:30:00",
"end": "2024-05-04 12:00:00",
"agenda": "",
"objectif": "",
"comment": "",
"day_week": "Saturday"
}
]
il faut dans une premier tmps reordonnée la liste des events comme suit :
[
{
"day_week": "Thursday",
"tab_event" : [ { "id": "1714820379044",
"title": "Nouvelle",
"start": "2024-05-02 11:00:00",
"end": "2024-05-02 12:30:00",
"agenda": "ddd",
"objectif": "ff",
"comment": "sdfds"
},
{ "id": "1714831959464",
"title": "Nouvelle",
"start": "2024-05-03 09:00:00",
"end": "2024-05-03 11:00:00",
"agenda": "",
"objectif": "",
"comment": "",
}
]
},
{
"day_week": "Saturday",
"tab_event" : [ { "id": "1714820379044",
"title": "Nouvelle",
"start": "2024-05-02 11:00:00",
"end": "2024-05-02 12:30:00",
"agenda": "ddd",
"objectif": "ff",
"comment": "sdfds"
},
{ "id": "1714831959464",
"title": "Nouvelle",
"start": "2024-05-03 09:00:00",
"end": "2024-05-03 11:00:00",
"agenda": "",
"objectif": "",
"comment": "",
}
]
}
]
"""
def Convert_And_ReFormat_Week_Type(semaine_tab_event):
try:
Formated_Week = []
for tmp in semaine_tab_event:
print(" inside : ", tmp )
local_day = tmp['day_week']
local_node = {}
local_node['id'] = tmp['id']
local_node['title'] = tmp['title']
local_node['start'] = tmp['start']
local_node['end'] = tmp['end']
local_node['agenda'] = tmp['agenda']
local_node['objectif'] = tmp['objectif']
local_node['comment'] = tmp['comment']
day_in_Formated_Week = 0
for exist_data in Formated_Week :
if( "day_week" in exist_data.keys() and exist_data["day_week"] == local_day ):
exist_data["tab_event"].append(local_node)
day_in_Formated_Week = 1
if( day_in_Formated_Week == 0 ):
new_node = {}
new_node['day_week'] = local_day
new_node['tab_event'] = []
new_node['tab_event'].append(local_node)
Formated_Week.append(new_node)
return True, Formated_Week
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 reformater la semaine type "
def Create_Automatic_Sequence_From_Week_Model(diction):
try:
diction = mycommon.strip_dictionary(diction)
"""
Verification des input acceptés
"""
field_list = ['token', 'session_id', 'date_debut', 'date_fin', "semaine_tab_event"]
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', 'session_id', 'date_debut', 'date_fin', 'semaine_tab_event']
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 liste ")
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
# Verification de l'existence et de la session
is_existe_valide_session_id = MYSY_GV.dbname["session_formation"].count_documents(
{'_id': ObjectId(str(diction['session_id'])),
'partner_owner_recid': str(my_partner['recid']),
'valide': '1'})
if (is_existe_valide_session_id <= 0):
mycommon.myprint(
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 "
# Controle de cohérence sur les dates
local_status = mycommon.CheckisDate(str(diction['date_debut'])[0:10])
if (local_status is False):
mycommon.myprint(
str(inspect.stack()[0][
3]) + " La date de debut n'est pas au format jj/mm/aaaa ")
return False, " La date de debut n'est pas au format jj/mm/aaaa "
local_status = mycommon.CheckisDate(str(diction['date_fin'])[0:10])
if (local_status is False):
mycommon.myprint(
str(inspect.stack()[0][
3]) + " La date de fin n'est pas au format jj/mm/aaaa ")
return False, "La date de fin n'est pas au format jj/mm/aaaa "
if (datetime.strptime(str(diction['date_debut'])[0:10], '%d/%m/%Y') > datetime.strptime(
str(diction['date_fin'])[0:10], '%d/%m/%Y')):
mycommon.myprint(
str(inspect.stack()[0][
3]) + " La date debut " + str(
diction['date_debut'])[0:10] +
" est postérieure à la date de fin " + str(diction['date_fin'])[0:10])
return False, " La date debut de formation " + str(diction['date_debut'])[0:10] + \
" est postérieure à la date de fin de formation " + str(diction['date_fin'])[0:10] + " "
semaine_tab_event = diction['semaine_tab_event']
semaine_tab_event_JSON = ast.literal_eval(semaine_tab_event)
local_status, local_retval = Convert_And_ReFormat_Week_Type(semaine_tab_event_JSON)
if( local_status is False):
return local_status, local_retval
formated_semaine_tab_event = local_retval
date_debut_session = datetime.strptime(str(diction['date_debut'])[0:10], '%d/%m/%Y')
date_fin_session = datetime.strptime(str(diction['date_fin'])[0:10], '%d/%m/%Y')
cpt = 10
nb_sequence = 0
print(" date_debut = ", str(diction['date_debut'])[0:10])
print(" date_fin = ", str(diction['date_fin'])[0:10])
for single_date in mycommon.daterange(date_debut_session, date_fin_session):
print(single_date.strftime("%Y-%m-%d"))
print(single_date.strftime("%A"))
"""
Recuperation des events associé à ce jour
"""
local_day = single_date.strftime("%A")
tab_events = []
for local_tmp in formated_semaine_tab_event:
if( "day_week" in local_tmp.keys() and local_tmp['day_week'] == local_day ):
tab_events = local_tmp['tab_event']
print(" Pour le jour : ", local_day)
print(" TAB EVENT = ", tab_events)
for local_event in tab_events :
local_start_date = datetime.strptime(str(local_event['start']), "%Y-%m-%d %H:%M:%S")
local_start_hour = local_start_date.strftime("%H:%M")
local_end_date = datetime.strptime(str(local_event['end']), "%Y-%m-%d %H:%M:%S")
local_end_hour = local_end_date.strftime("%H:%M")
sequence_data = {}
sequence_data['token'] = diction['token']
sequence_data['session_id'] = diction['session_id']
sequence_data['sequence_title'] = local_event['title']
sequence_data['agenda'] = local_event['agenda']
sequence_data['objectif'] = local_event['objectif']
sequence_data['commentaire'] = local_event['comment']
sequence_data['check_chevauchement'] = "0"
sequence_data['sequence_start'] = str(single_date.strftime("%d/%m/%Y")) + " " + str( local_start_hour).strip()
sequence_data['sequence_end'] = str(single_date.strftime("%d/%m/%Y")) + " " + str(local_end_hour).strip()
print(" #### sequence_data = ", sequence_data)
local_status, local_event = Add_Session_Sequence(sequence_data)
print(" ### OK ")
if (local_status is False):
mycommon.myprint(
str(inspect.stack()[0][3]) + " WARNING : " + str(local_event))
else:
nb_sequence = nb_sequence + 1
cpt = cpt + 1
return True, str(nb_sequence) + " séquence(s) automatiquement créée(s) "
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 dupliquer la semaine "

16
main.py
View File

@ -8761,6 +8761,22 @@ def Get_Givent_Unite_Enseignement_Data_Of_Given_Class():
"""
API Pour créer automatiquement des sequence de session en partant d'une semaine type
"""
@app.route('/myclass/api/Create_Automatic_Sequence_From_Week_Model/', methods=['POST','GET'])
@crossdomain(origin='*')
def Create_Automatic_Sequence_From_Week_Model():
# On recupere le corps (payload) de la requete
payload = mycommon.strip_dictionary (request.form.to_dict())
print(" ### Create_Automatic_Sequence_From_Week_Model payload = ",payload)
status, retval = Session_Formation_Sequence.Create_Automatic_Sequence_From_Week_Model(payload)
return jsonify(status=status, message=retval)
if __name__ == '__main__': if __name__ == '__main__':
print(" debut api") print(" debut api")
context = SSL.Context(SSL.SSLv23_METHOD) context = SSL.Context(SSL.SSLv23_METHOD)