07/04/2024 - 19h19
parent
514e48d8b5
commit
dca2288844
|
@ -1,10 +1,11 @@
|
|||
<?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="06/04/2024 - 21h19">
|
||||
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="07/04/2024 - 13h19">
|
||||
<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" />
|
||||
<change beforePath="$PROJECT_DIR$/Session_Formation_Sequence.py" beforeDir="false" afterPath="$PROJECT_DIR$/Session_Formation_Sequence.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/prj_common.py" beforeDir="false" afterPath="$PROJECT_DIR$/prj_common.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/survey_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/survey_mgt.py" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
|
@ -75,13 +76,6 @@
|
|||
<option name="presentableId" value="Default" />
|
||||
<updated>1680804787304</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00210" summary="02/02/2024 - 23h">
|
||||
<created>1706911273733</created>
|
||||
<option name="number" value="00210" />
|
||||
<option name="presentableId" value="LOCAL-00210" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1706911273735</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00211" summary="03/02/2024 - 21h">
|
||||
<created>1706989870351</created>
|
||||
<option name="number" value="00211" />
|
||||
|
@ -418,7 +412,14 @@
|
|||
<option name="project" value="LOCAL" />
|
||||
<updated>1712431177614</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="259" />
|
||||
<task id="LOCAL-00259" summary="07/04/2024 - 13h19">
|
||||
<created>1712487406647</created>
|
||||
<option name="number" value="00259" />
|
||||
<option name="presentableId" value="LOCAL-00259" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1712487406648</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="260" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
|
@ -460,7 +461,6 @@
|
|||
</option>
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<MESSAGE value="02/03/2024 - 23h20" />
|
||||
<MESSAGE value="sss" />
|
||||
<MESSAGE value="04/03/2024 - 22h15" />
|
||||
<MESSAGE value="06/03/2024 - 22h15" />
|
||||
|
@ -485,6 +485,7 @@
|
|||
<MESSAGE value="04/04/24 - 19h30" />
|
||||
<MESSAGE value="04/04/24 - 21h30" />
|
||||
<MESSAGE value="06/04/2024 - 21h19" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="06/04/2024 - 21h19" />
|
||||
<MESSAGE value="07/04/2024 - 13h19" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="07/04/2024 - 13h19" />
|
||||
</component>
|
||||
</project>
|
1676
Log/log_file.log
1676
Log/log_file.log
File diff suppressed because it is too large
Load Diff
|
@ -145,7 +145,6 @@ def Add_Session_Sequence(diction):
|
|||
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']),
|
||||
'valide':'1',
|
||||
|
@ -156,6 +155,7 @@ def Add_Session_Sequence(diction):
|
|||
|
||||
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)
|
||||
|
||||
|
@ -166,9 +166,9 @@ def Add_Session_Sequence(diction):
|
|||
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][
|
||||
3]) + " La date de debut de séquence" + str(
|
||||
3]) + " La date de debut de séquence yyy " + str(
|
||||
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 yyy " + str(
|
||||
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
|
||||
|
@ -176,9 +176,9 @@ def Add_Session_Sequence(diction):
|
|||
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][
|
||||
3]) + " La date de fin de séquence" + str(
|
||||
3]) + " La date de fin de séquence zzz " + str(
|
||||
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 zz " + str(
|
||||
date_debut_seq) + " chevauche une autre séquence"
|
||||
|
||||
sequence_title = ""
|
||||
|
@ -218,9 +218,6 @@ def Add_Session_Sequence(diction):
|
|||
|
||||
|
||||
|
||||
"""
|
||||
"""
|
||||
|
||||
return True, " La séquence a été correctement ajoutée"
|
||||
|
||||
except Exception as e:
|
||||
|
@ -481,8 +478,6 @@ def Create_Automatic_Sequence_ORIG(diction):
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
return True, str(nb_sequence)+" séquence(s) automatiquement créée(s) "
|
||||
|
||||
except Exception as e:
|
||||
|
@ -674,9 +669,10 @@ def Create_Automatic_Sequence(diction):
|
|||
|
||||
nb_sequence = 0
|
||||
|
||||
|
||||
for single_date in mycommon.daterange(date_debut_session, date_fin_session):
|
||||
# print(single_date.strftime("%Y-%m-%d"))
|
||||
# print(single_date.strftime("%A"))
|
||||
#print(single_date.strftime("%Y-%m-%d"))
|
||||
#print(single_date.strftime("%A"))
|
||||
|
||||
# print(" Les date off sont : ", is_existe_valide_journee_model_data['date_off'])
|
||||
date_jour = str(single_date.strftime("%Y-%m-%d"))
|
||||
|
@ -686,10 +682,9 @@ def Create_Automatic_Sequence(diction):
|
|||
jours_name_list_sequence = is_existe_valide_journee_model_data[jour_name]["tab_sequence"]
|
||||
|
||||
# print(" ### les sequences du ", jour_name, " sont ", jours_name_list_sequence)
|
||||
#
|
||||
## Sequences / Emargement à la demi journée (matin & apres midi )
|
||||
if( diction['option'] == "1"):
|
||||
# Sequences / Emargement à la demi journée (matin & apres midi )
|
||||
# Vu qu'on prend les journée
|
||||
|
||||
#Verifer que le jour n'est pas off. (ex : les dimanches sont paramettré comme off)
|
||||
is_off_day_of_week = "0"
|
||||
|
@ -736,8 +731,6 @@ def Create_Automatic_Sequence(diction):
|
|||
sequence_data['sequence_start'] = str(single_date.strftime("%d/%m/%Y")) + " "+str(matine_heure_debut)
|
||||
sequence_data['sequence_end'] = str(single_date.strftime("%d/%m/%Y")) + " "+str(matine_heure_fin)
|
||||
|
||||
# print(" ### sequence_data = ", sequence_data)
|
||||
|
||||
local_status, local_val = Add_Session_Sequence(sequence_data)
|
||||
|
||||
if (local_status is False):
|
||||
|
@ -754,8 +747,6 @@ def Create_Automatic_Sequence(diction):
|
|||
sequence_data['sequence_start'] = str(single_date.strftime("%d/%m/%Y")) + " "+str(apres_midi_heure_debut)
|
||||
sequence_data['sequence_end'] = str(single_date.strftime("%d/%m/%Y")) + " "+str(apres_midi_heure_fin)
|
||||
|
||||
# print(" ### sequence_data = ", sequence_data)
|
||||
|
||||
local_status, local_val = Add_Session_Sequence(sequence_data)
|
||||
|
||||
if (local_status is False):
|
||||
|
@ -769,7 +760,7 @@ def Create_Automatic_Sequence(diction):
|
|||
cpt = cpt + 1
|
||||
|
||||
# Pour chaque sequence de la journée
|
||||
if (diction['option'] == "2"):
|
||||
elif (diction['option'] == "2"):
|
||||
# Sequences / Emargement à la journée
|
||||
|
||||
|
||||
|
@ -818,7 +809,6 @@ def Create_Automatic_Sequence(diction):
|
|||
sequence_data['sequence_start'] = str(single_date.strftime("%d/%m/%Y")) + " "+str(matine_heure_debut)
|
||||
sequence_data['sequence_end'] = str(single_date.strftime("%d/%m/%Y")) + " "+str(apres_midi_heure_fin)
|
||||
|
||||
# print(" ### sequence_data = ", sequence_data)
|
||||
|
||||
local_status, local_val = Add_Session_Sequence(sequence_data)
|
||||
|
||||
|
@ -831,6 +821,7 @@ def Create_Automatic_Sequence(diction):
|
|||
cpt = cpt + 1
|
||||
|
||||
else:
|
||||
|
||||
# Si pas la journée, ni la demi journée alors on crée les sequences selon le calendrier
|
||||
# print(" ### les sequences du ", jour_name, " sont ", jours_name_list_sequence)
|
||||
# Pour chaque sequence de la journée
|
||||
|
@ -846,8 +837,6 @@ def Create_Automatic_Sequence(diction):
|
|||
sequence_data['sequence_end'] = str(single_date.strftime("%d/%m/%Y")) + " " + str(
|
||||
local_val['heure_fin']).strip()
|
||||
|
||||
# print(" ### sequence_data = ", sequence_data)
|
||||
|
||||
local_status, local_val = Add_Session_Sequence(sequence_data)
|
||||
|
||||
if (local_status is False):
|
||||
|
|
|
@ -4148,7 +4148,14 @@ def Is_User_Has_Right_To_Action(diction):
|
|||
|
||||
|
||||
def daterange(start_date, end_date):
|
||||
for n in range(int((end_date - start_date).days)):
|
||||
"""
|
||||
07/04/2024 :
|
||||
# Pour la fonction 'range' de base fait sur while (x < y).
|
||||
# Ici j'ai besoin de faire du while(x <= y).
|
||||
# alors on va faire end_date = end_date + 1 days
|
||||
"""
|
||||
new_end_date = end_date + timedelta(days=1)
|
||||
for n in range(int((new_end_date - start_date).days)):
|
||||
yield start_date + timedelta(n)
|
||||
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ def Get_Given_Survey_Data_No_Token(diction):
|
|||
|
||||
|
||||
RetObject = []
|
||||
val_tmp = 0
|
||||
val_tmp = 1
|
||||
|
||||
qry = { 'statut':'1', 'valide': '1', 'locked': '0', '_id':ObjectId(str(diction['survey_id']))}
|
||||
|
||||
|
@ -124,17 +124,22 @@ def Get_Given_Survey_Data_No_Token(diction):
|
|||
Recuperation des données du formulaire (question)
|
||||
"""
|
||||
list_questions = []
|
||||
formulaire_message_introduction = ""
|
||||
if( "formulaire_id" in New_retVal.keys() ):
|
||||
my_formulaire_data = MYSY_GV.dbname['formulaire'].find_one( {"partner_owner_recid": str(New_retVal['partner_owner_recid']), 'valide': '1', 'locked':'0', '_id':ObjectId(str(New_retVal['formulaire_id']))})
|
||||
|
||||
if(my_formulaire_data and "list_questions" in my_formulaire_data.keys() ):
|
||||
list_questions = my_formulaire_data['list_questions']
|
||||
|
||||
if( "message_introduction" in my_formulaire_data.keys() ):
|
||||
formulaire_message_introduction = my_formulaire_data['message_introduction']
|
||||
|
||||
user['list_questions'] = list_questions
|
||||
user['message_introduction'] = formulaire_message_introduction
|
||||
|
||||
RetObject.append(mycommon.JSONEncoder().encode(user))
|
||||
|
||||
print(" ### RetObject = ", RetObject)
|
||||
#print(" ### RetObject = ", RetObject)
|
||||
return True, RetObject
|
||||
|
||||
|
||||
|
@ -691,7 +696,72 @@ def Send_Survey_TabIds(diction):
|
|||
'valide': '1',
|
||||
'locked': '0'}, {'config_value': 1})['config_value'])
|
||||
|
||||
"""
|
||||
Recuperation du modele de courrier (unique) associé à l'envoie des questions de positionnement
|
||||
le principe est de prendre le module du partenaire. si pas de modele du partenaire on
|
||||
prend le modele par default
|
||||
"""
|
||||
courrier_template_model = MYSY_GV.dbname['courrier_template'].count_documents(
|
||||
{'ref_interne': "QUESTION_POSITIONNEMENT",
|
||||
'valide': '1',
|
||||
'locked': '0',
|
||||
'type_doc': 'email',
|
||||
'partner_owner_recid': str(my_partner['recid'])}
|
||||
)
|
||||
if (courrier_template_model == 1):
|
||||
courrier_template_data = MYSY_GV.dbname['courrier_template'].find_one(
|
||||
{'ref_interne': "QUESTION_POSITIONNEMENT",
|
||||
'valide': '1',
|
||||
'locked': '0',
|
||||
'type_doc': 'email',
|
||||
'partner_owner_recid': str(my_partner['recid'])}
|
||||
)
|
||||
|
||||
else:
|
||||
courrier_template_model = MYSY_GV.dbname['courrier_template'].count_documents(
|
||||
{'ref_interne': "QUESTION_POSITIONNEMENT",
|
||||
'valide': '1',
|
||||
'locked': '0',
|
||||
'type_doc': 'email',
|
||||
'partner_owner_recid': "default"}
|
||||
)
|
||||
if (courrier_template_model == 1):
|
||||
courrier_template_data = MYSY_GV.dbname['courrier_template'].find_one(
|
||||
{'ref_interne': "QUESTION_POSITIONNEMENT",
|
||||
'valide': '1',
|
||||
'locked': '0',
|
||||
'type_doc': 'email',
|
||||
'partner_owner_recid': "default"}
|
||||
)
|
||||
else:
|
||||
mycommon.myprint(str(
|
||||
inspect.stack()[0][
|
||||
3]) + " Aucun modèle de document configuré pour envoyer les demandes pour les questionnaires de positionnement ")
|
||||
return False, " Aucun modèle de document configuré pour envoyer les demandes pour les questionnaires de positionnement "
|
||||
|
||||
if ("contenu_doc" not in courrier_template_data.keys() or str(
|
||||
courrier_template_data['contenu_doc']).strip() == ""):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " Le modèle de document ne contient pas de valeur 'contenu_doc' ")
|
||||
return False, " Le modèle de document ne contient pas de valeur 'contenu_doc' "
|
||||
|
||||
contenu_doc_Template = jinja2.Template(str(courrier_template_data['contenu_doc']))
|
||||
# Creation du dictionnaire d'information à utiliser pour la creation du doc
|
||||
convention_dictionnary_data = {}
|
||||
new_diction = {}
|
||||
new_diction['token'] = diction['token']
|
||||
new_diction['list_stagiaire_id'] = []
|
||||
new_diction['list_session_id'] = []
|
||||
new_diction['list_class_id'] = []
|
||||
new_diction['list_client_id'] = []
|
||||
new_diction['list_apprenant_id'] = []
|
||||
|
||||
local_status, local_retval = mycommon.Get_Dictionnary_data_For_Template(new_diction)
|
||||
|
||||
if (local_status is False):
|
||||
return local_status, local_retval
|
||||
|
||||
convention_dictionnary_data = local_retval
|
||||
|
||||
for my_survey_id in tab_my_survey_ids:
|
||||
# Recuperation des données de l'inscript
|
||||
|
@ -706,16 +776,20 @@ def Send_Survey_TabIds(diction):
|
|||
|
||||
servey_url = MYSY_GV.CLIENT_URL_BASE + "Survey/" + str(local_survey_retval['_id'])
|
||||
|
||||
html = """\
|
||||
<html>
|
||||
<body>
|
||||
<p>Hi,<br>
|
||||
Merci de suivre l'enquete :""" + str(servey_url) + """ </p>
|
||||
<p><a href="https://blog.mailtrap.io/2018/09/27/cloud-or-local-smtp-server">SMTP Server for Testing: Cloud-based or Local?</a></p>
|
||||
<p> Feel free to <strong>let us</strong> know what content would be useful for you!</p>
|
||||
</body>
|
||||
</html>
|
||||
"""
|
||||
convention_dictionnary_data["servey_url"] = str(servey_url)
|
||||
convention_dictionnary_data["servey_email"] = str(local_survey_retval['email'])
|
||||
convention_dictionnary_data["servey_nom"] = str(local_survey_retval['nom'])
|
||||
convention_dictionnary_data["servey_prenom"] =str(local_survey_retval['prenom'])
|
||||
|
||||
|
||||
body = {
|
||||
"params": convention_dictionnary_data
|
||||
}
|
||||
|
||||
html = contenu_doc_Template.render(params=body["params"])
|
||||
|
||||
html_mime = MIMEText(html, 'html')
|
||||
|
||||
|
||||
html_mime = MIMEText(html, 'html')
|
||||
|
||||
|
|
Loading…
Reference in New Issue