11/02/23 - 20h
parent
406a1c0177
commit
8bc7567884
|
@ -1,13 +1,16 @@
|
||||||
<?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="1122d9e2-679f-46d6-8c4f-97e9ae4041b5" name="Changes" comment="09/02/23 - 11h">
|
<list default="true" id="1122d9e2-679f-46d6-8c4f-97e9ae4041b5" name="Changes" comment="10/02/23 - 12h">
|
||||||
<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$/Inscription_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/Inscription_mgt.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$/Log/log_file.log" beforeDir="false" afterPath="$PROJECT_DIR$/Log/log_file.log" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/email_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/email_mgt.py" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Session_Formation.py" beforeDir="false" afterPath="$PROJECT_DIR$/Session_Formation.py" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Template/Mysy_attestion_modele2_tpl.html" beforeDir="false" afterPath="$PROJECT_DIR$/Template/Mysy_attestion_modele2_tpl.html" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/tools_cherif/tools_cherif.py" beforeDir="false" afterPath="$PROJECT_DIR$/tools_cherif/tools_cherif.py" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/class_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/class_mgt.py" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/data_indexees.csv" beforeDir="false" afterPath="$PROJECT_DIR$/data_indexees.csv" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/ela_output_test_file_pandas_2.txt" beforeDir="false" afterPath="$PROJECT_DIR$/ela_output_test_file_pandas_2.txt" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/email_inscription_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/email_inscription_mgt.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" />
|
||||||
|
@ -283,7 +286,14 @@
|
||||||
<option name="project" value="LOCAL" />
|
<option name="project" value="LOCAL" />
|
||||||
<updated>1675938338905</updated>
|
<updated>1675938338905</updated>
|
||||||
</task>
|
</task>
|
||||||
<option name="localTasksCounter" value="31" />
|
<task id="LOCAL-00031" summary="10/02/23 - 12h">
|
||||||
|
<created>1676027348546</created>
|
||||||
|
<option name="number" value="00031" />
|
||||||
|
<option name="presentableId" value="LOCAL-00031" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1676027348546</updated>
|
||||||
|
</task>
|
||||||
|
<option name="localTasksCounter" value="32" />
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="Vcs.Log.Tabs.Properties">
|
<component name="Vcs.Log.Tabs.Properties">
|
||||||
|
@ -298,7 +308,6 @@
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="VcsManagerConfiguration">
|
<component name="VcsManagerConfiguration">
|
||||||
<MESSAGE value="23/11/22 - 22h30" />
|
|
||||||
<MESSAGE value="26/11/22 - 10h30" />
|
<MESSAGE value="26/11/22 - 10h30" />
|
||||||
<MESSAGE value="26/11/22 - 23h30" />
|
<MESSAGE value="26/11/22 - 23h30" />
|
||||||
<MESSAGE value="15/12/2022 - 22h00" />
|
<MESSAGE value="15/12/2022 - 22h00" />
|
||||||
|
@ -323,7 +332,8 @@
|
||||||
<MESSAGE value="01/02/23 - 22h" />
|
<MESSAGE value="01/02/23 - 22h" />
|
||||||
<MESSAGE value="05/02/23 - 20h" />
|
<MESSAGE value="05/02/23 - 20h" />
|
||||||
<MESSAGE value="09/02/23 - 11h" />
|
<MESSAGE value="09/02/23 - 11h" />
|
||||||
<option name="LAST_COMMIT_MESSAGE" value="09/02/23 - 11h" />
|
<MESSAGE value="10/02/23 - 12h" />
|
||||||
|
<option name="LAST_COMMIT_MESSAGE" value="10/02/23 - 12h" />
|
||||||
</component>
|
</component>
|
||||||
<component name="XDebuggerManager">
|
<component name="XDebuggerManager">
|
||||||
<breakpoint-manager>
|
<breakpoint-manager>
|
||||||
|
|
|
@ -2024,13 +2024,27 @@ def SendAttendeeCertification(diction):
|
||||||
my_retrun_dict['email'] = local_Insc_retval['email']
|
my_retrun_dict['email'] = local_Insc_retval['email']
|
||||||
|
|
||||||
# Recuperation des infotrmations de la formation
|
# Recuperation des infotrmations de la formation
|
||||||
print(" ## str(local_Insc_retval['class_internal_url']) = ", str(local_Insc_retval['class_internal_url']))
|
##print(" ## str(local_Insc_retval['class_internal_url']) = ", str(local_Insc_retval['class_internal_url']))
|
||||||
local_formation = MYSY_GV.dbname['myclass'].find_one(
|
local_formation = MYSY_GV.dbname['myclass'].find_one(
|
||||||
{'internal_url': str(local_Insc_retval['class_internal_url'])})
|
{'internal_url': str(local_Insc_retval['class_internal_url'])})
|
||||||
my_retrun_dict['title'] = local_formation['title']
|
my_retrun_dict['title'] = local_formation['title']
|
||||||
|
|
||||||
|
"""
|
||||||
|
field_list_obligatoire = ['partner_recid', 'session_id', 'class_internal_url', 'class_title' ,
|
||||||
|
'email_participant']
|
||||||
|
"""
|
||||||
|
attestation_dict = {}
|
||||||
|
attestation_dict['partner_recid'] = str(partner_recid)
|
||||||
|
attestation_dict['session_id'] = str(diction['session_id'])
|
||||||
|
attestation_dict['class_internal_url'] = str(local_Insc_retval['class_internal_url'])
|
||||||
|
attestation_dict['class_title'] = local_formation['title']
|
||||||
|
attestation_dict['email_participant'] = local_Insc_retval['email']
|
||||||
|
attestation_dict['attestation_tmpl'] = attestation_certificat['template_name']
|
||||||
|
|
||||||
|
print(" ### attestation_dict = ", attestation_dict)
|
||||||
|
|
||||||
# Envoi de l'email de notification au formateur
|
# Envoi de l'email de notification au formateur
|
||||||
local_status, local_message = email_session.SendAttestion_to_attendee_by_email(my_retrun_dict)
|
local_status, local_message = email_session.SendAttestion_to_attendee_by_email(attestation_dict)
|
||||||
|
|
||||||
return local_status, str(local_message)
|
return local_status, str(local_message)
|
||||||
|
|
||||||
|
|
5282
Log/log_file.log
5282
Log/log_file.log
File diff suppressed because it is too large
Load Diff
|
@ -41,7 +41,7 @@ def Add_Update_SessionFormation(diction):
|
||||||
field_list = ['token', 'date_debut', 'date_fin', 'nb_participant', 'formation_session_id', 'adresse',
|
field_list = ['token', 'date_debut', 'date_fin', 'nb_participant', 'formation_session_id', 'adresse',
|
||||||
'code_postal', 'ville', 'formateur', 'code_session',
|
'code_postal', 'ville', 'formateur', 'code_session',
|
||||||
'class_internal_url', 'session_status', 'date_debut_inscription', 'date_fin_inscription',
|
'class_internal_url', 'session_status', 'date_debut_inscription', 'date_fin_inscription',
|
||||||
'attestation_certif', "distantiel", "presentiel", "prix_session"]
|
'attestation_certif', "distantiel", "presentiel", "prix_session", 'contenu_ftion']
|
||||||
incom_keys = diction.keys()
|
incom_keys = diction.keys()
|
||||||
for val in incom_keys:
|
for val in incom_keys:
|
||||||
if val not in field_list:
|
if val not in field_list:
|
||||||
|
@ -70,14 +70,12 @@ def Add_Update_SessionFormation(diction):
|
||||||
|
|
||||||
code_session = ""
|
code_session = ""
|
||||||
if ("code_session" in diction.keys()):
|
if ("code_session" in diction.keys()):
|
||||||
if diction['code_session']:
|
|
||||||
mydata['code_session'] = diction['code_session']
|
mydata['code_session'] = diction['code_session']
|
||||||
query_key['code_session'] = diction['code_session']
|
query_key['code_session'] = diction['code_session']
|
||||||
|
|
||||||
|
|
||||||
class_internal_url = ""
|
class_internal_url = ""
|
||||||
if ("class_internal_url" in diction.keys()):
|
if ("class_internal_url" in diction.keys()):
|
||||||
if diction['class_internal_url']:
|
|
||||||
mydata['class_internal_url'] = diction['class_internal_url']
|
mydata['class_internal_url'] = diction['class_internal_url']
|
||||||
class_internal_url = diction['class_internal_url']
|
class_internal_url = diction['class_internal_url']
|
||||||
|
|
||||||
|
@ -89,38 +87,30 @@ def Add_Update_SessionFormation(diction):
|
||||||
|
|
||||||
formation_session_id = ""
|
formation_session_id = ""
|
||||||
if ("formation_session_id" in diction.keys()):
|
if ("formation_session_id" in diction.keys()):
|
||||||
if diction['formation_session_id']:
|
|
||||||
mydata['formation_session_id'] = diction['formation_session_id']
|
mydata['formation_session_id'] = diction['formation_session_id']
|
||||||
|
|
||||||
session_id = diction['formation_session_id']
|
session_id = diction['formation_session_id']
|
||||||
|
|
||||||
|
|
||||||
if ("date_debut" in diction.keys()):
|
if ("date_debut" in diction.keys()):
|
||||||
if diction['date_debut']:
|
|
||||||
mydata['date_debut'] = diction['date_debut']
|
mydata['date_debut'] = diction['date_debut']
|
||||||
|
|
||||||
|
|
||||||
if ("date_fin" in diction.keys()):
|
if ("date_fin" in diction.keys()):
|
||||||
if diction['date_fin']:
|
|
||||||
mydata['date_fin'] = diction['date_fin']
|
mydata['date_fin'] = diction['date_fin']
|
||||||
|
|
||||||
|
|
||||||
if ("distantiel" in diction.keys()):
|
if ("distantiel" in diction.keys()):
|
||||||
if diction['distantiel']:
|
|
||||||
mydata['distantiel'] = diction['distantiel']
|
mydata['distantiel'] = diction['distantiel']
|
||||||
|
|
||||||
|
|
||||||
if ("presentiel" in diction.keys()):
|
if ("presentiel" in diction.keys()):
|
||||||
if diction['presentiel']:
|
|
||||||
mydata['presentiel'] = diction['presentiel']
|
mydata['presentiel'] = diction['presentiel']
|
||||||
|
|
||||||
if ("nb_participant" in diction.keys()):
|
if ("nb_participant" in diction.keys()):
|
||||||
if diction['nb_participant']:
|
|
||||||
mydata['nb_participant'] = diction['nb_participant']
|
mydata['nb_participant'] = diction['nb_participant']
|
||||||
|
|
||||||
|
|
||||||
if ("prix_session" in diction.keys()):
|
if ("prix_session" in diction.keys()):
|
||||||
if diction['prix_session']:
|
|
||||||
mydata['prix_session'] = diction['prix_session']
|
mydata['prix_session'] = diction['prix_session']
|
||||||
|
|
||||||
|
|
||||||
|
@ -137,8 +127,6 @@ def Add_Update_SessionFormation(diction):
|
||||||
else:
|
else:
|
||||||
mydata['code_postal'] = ""
|
mydata['code_postal'] = ""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if ("ville" in diction.keys()):
|
if ("ville" in diction.keys()):
|
||||||
if diction['ville']:
|
if diction['ville']:
|
||||||
mydata['ville'] = diction['ville']
|
mydata['ville'] = diction['ville']
|
||||||
|
@ -146,26 +134,24 @@ def Add_Update_SessionFormation(diction):
|
||||||
mydata['ville'] = ""
|
mydata['ville'] = ""
|
||||||
|
|
||||||
if ("attestation_certif" in diction.keys()):
|
if ("attestation_certif" in diction.keys()):
|
||||||
if diction['attestation_certif']:
|
|
||||||
mydata['attestation_certif'] = diction['attestation_certif']
|
mydata['attestation_certif'] = diction['attestation_certif']
|
||||||
|
|
||||||
|
|
||||||
if ("session_status" in diction.keys()):
|
if ("session_status" in diction.keys()):
|
||||||
if diction['session_status']:
|
|
||||||
mydata['session_status'] = diction['session_status']
|
mydata['session_status'] = diction['session_status']
|
||||||
|
|
||||||
if ("date_debut_inscription" in diction.keys()):
|
if ("date_debut_inscription" in diction.keys()):
|
||||||
if diction['date_debut_inscription']:
|
|
||||||
mydata['date_debut_inscription'] = diction['date_debut_inscription']
|
mydata['date_debut_inscription'] = diction['date_debut_inscription']
|
||||||
|
|
||||||
if ("date_fin_inscription" in diction.keys()):
|
if ("date_fin_inscription" in diction.keys()):
|
||||||
if diction['date_fin_inscription']:
|
|
||||||
mydata['date_fin_inscription'] = diction['date_fin_inscription']
|
mydata['date_fin_inscription'] = diction['date_fin_inscription']
|
||||||
|
|
||||||
if ("formateur" in diction.keys()):
|
if ("formateur" in diction.keys()):
|
||||||
if diction['formateur']:
|
|
||||||
mydata['formateur'] = diction['formateur']
|
mydata['formateur'] = diction['formateur']
|
||||||
|
|
||||||
|
if ("contenu_ftion" in diction.keys()):
|
||||||
|
mydata['contenu_ftion'] = diction['contenu_ftion']
|
||||||
|
|
||||||
|
|
||||||
mydata['date_update'] = str(datetime.now())
|
mydata['date_update'] = str(datetime.now())
|
||||||
mydata['valide'] = "1"
|
mydata['valide'] = "1"
|
||||||
|
@ -531,7 +517,7 @@ def Add_Update_SessionFormation_mass(file=None, Folder=None, diction=None):
|
||||||
'''
|
'''
|
||||||
field_list = ['date_debut', 'date_fin', 'nb_participant', 'adresse', 'code_postal', 'ville',
|
field_list = ['date_debut', 'date_fin', 'nb_participant', 'adresse', 'code_postal', 'ville',
|
||||||
'session_status', 'date_debut_inscription', 'date_fin_inscription', 'attestation', 'formateur',
|
'session_status', 'date_debut_inscription', 'date_fin_inscription', 'attestation', 'formateur',
|
||||||
'code_session', "distanciel", "presentiel", "prix_session"]
|
'code_session', "distanciel", "presentiel", "prix_session", 'contenu_ftion']
|
||||||
|
|
||||||
# Controle du nombre de lignes dans le fichier.
|
# Controle du nombre de lignes dans le fichier.
|
||||||
total_rows = len(df)
|
total_rows = len(df)
|
||||||
|
@ -671,6 +657,12 @@ def Add_Update_SessionFormation_mass(file=None, Folder=None, diction=None):
|
||||||
local_ville = str(df['ville'].values[n]).strip()
|
local_ville = str(df['ville'].values[n]).strip()
|
||||||
mydata['ville'] = local_ville
|
mydata['ville'] = local_ville
|
||||||
|
|
||||||
|
contenu_ftion = ""
|
||||||
|
if ("contenu_ftion" in df.keys()):
|
||||||
|
if (str(df['contenu_ftion'].values[n])):
|
||||||
|
contenu_ftion = str(df['contenu_ftion'].values[n]).strip()
|
||||||
|
mydata['contenu_ftion'] = contenu_ftion
|
||||||
|
|
||||||
#mydata['ville'] = str(df['ville'].values[n]).strip()
|
#mydata['ville'] = str(df['ville'].values[n]).strip()
|
||||||
|
|
||||||
local_attestation_certif = ""
|
local_attestation_certif = ""
|
||||||
|
|
|
@ -26,12 +26,11 @@ border: 2px solid; ">
|
||||||
serif;color:#454349;font-size:1.2rem; line-height: 2rem;border: none;">
|
serif;color:#454349;font-size:1.2rem; line-height: 2rem;border: none;">
|
||||||
<p style="border: none; text-align: left;">
|
<p style="border: none; text-align: left;">
|
||||||
{% if json_data.num_declation|length > 5 %}
|
{% if json_data.num_declation|length > 5 %}
|
||||||
Par la presente, l'oganisme de formation {{json_data.partner}} au Numero de declaration
|
Par la presente, l'oganisme de formation {{json_data.partner}} au Numero de déclaration {{json_data.num_declation}} <br />
|
||||||
{{json_data.num_declation}} <br />
|
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
||||||
Par la presente, l'oganisme de formation {{json_data.partner}} au Numero de SIREN
|
Par la presente, l'oganisme de formation {{json_data.partner}} au Numero de SIRET
|
||||||
{{json_data.mysy_partner_siren}} <br />
|
{{json_data.mysy_partner_siren}} <br />
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -75,15 +74,19 @@ border: 2px solid; ">
|
||||||
<div
|
<div
|
||||||
style="padding:12px 0px;text-align:left;font-family:Georgia, 'Times New Roman', Times, serif;color:#454349;font-size:1.2rem">
|
style="padding:12px 0px;text-align:left;font-family:Georgia, 'Times New Roman', Times, serif;color:#454349;font-size:1.2rem">
|
||||||
|
|
||||||
<div style="width: 100%; margin-bottom: 5rem;">
|
<div style="width: 100%; margin-bottom: 2rem;">
|
||||||
Contenus de la formation : <br />
|
Contenu de la formation : <br />
|
||||||
{{json_data.objectif}}
|
<p style=" width: 80%; margin-left: 1rem;font-size: 12px;">
|
||||||
|
{{json_data.contenu_ftion}}
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 30%; float: left;">
|
<div style="width: 30%; float: left;">
|
||||||
Fait à {{json_data.mysy_partner_adr_city}} le {{json_data.date_jour}}
|
Fait à {{json_data.mysy_partner_adr_city}} le {{json_data.date_jour}}
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 70%; float: left;text-align: right;">
|
<div style="width: 65%; float: left;text-align: right;">
|
||||||
Pour l'organisme de formation <br />
|
Pour l'organisme de formation <br />
|
||||||
|
|
||||||
{% if json_data.cachet_signature %}
|
{% if json_data.cachet_signature %}
|
||||||
|
|
|
@ -103,7 +103,7 @@ def add_class(diction):
|
||||||
part_status, part_pack, part_pack_nb_training_auto = mycommon.Partner_Get_pack_nbTraining(user_recid)
|
part_status, part_pack, part_pack_nb_training_auto = mycommon.Partner_Get_pack_nbTraining(user_recid)
|
||||||
if( part_status is False):
|
if( part_status is False):
|
||||||
mycommon.myprint(str(inspect.stack()[0][3]) + " - Impossible de recuperer le pack et le nombre de formation du partenaire")
|
mycommon.myprint(str(inspect.stack()[0][3]) + " - Impossible de recuperer le pack et le nombre de formation du partenaire")
|
||||||
return False, "Votre pack / abonnement ne permet pas créer les formations. Verifiez votre abonnement "
|
return False, "Votre pack / abonnement ne permet pas de créer les formations. Verifiez votre abonnement "
|
||||||
"""
|
"""
|
||||||
Recuperation du nombre de formations actif de ce partner
|
Recuperation du nombre de formations actif de ce partner
|
||||||
"""
|
"""
|
||||||
|
@ -1024,7 +1024,7 @@ def update_class(diction):
|
||||||
if (part_status is False):
|
if (part_status is False):
|
||||||
mycommon.myprint(str(inspect.stack()[0][
|
mycommon.myprint(str(inspect.stack()[0][
|
||||||
3]) + " - Impossible de recuperer le pack et le nombre de formation du partenaire")
|
3]) + " - Impossible de recuperer le pack et le nombre de formation du partenaire")
|
||||||
return False, "Votre pack / abonnement ne permet pas créer les formations. Verifiez votre abonnement "
|
return False, "Votre pack / abonnement ne permet pas de créer les formations. Verifiez votre abonnement "
|
||||||
|
|
||||||
|
|
||||||
coll_pack = MYSY_GV.dbname['pack']
|
coll_pack = MYSY_GV.dbname['pack']
|
||||||
|
@ -2678,7 +2678,7 @@ def add_class_mass(file=None, Folder=None, diction=None):
|
||||||
if (part_status is False):
|
if (part_status is False):
|
||||||
mycommon.myprint(str(
|
mycommon.myprint(str(
|
||||||
inspect.stack()[0][3]) + " - Impossible de recuperer le pack et le nombre de formations du partenaire")
|
inspect.stack()[0][3]) + " - Impossible de recuperer le pack et le nombre de formations du partenaire")
|
||||||
return False, "Votre pack / abonnement ne permet pas créer les formations. Verifiez votre abonnement "
|
return False, "Votre pack / abonnement ne permet pas de créer les formations. Verifiez votre abonnement "
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Recuperation du nombre de formations actif de ce partner
|
Recuperation du nombre de formations actif de ce partner
|
||||||
|
|
|
@ -1,4 +1,7 @@
|
||||||
,index,mots,occurence,moyenne,id_formation,source_field
|
,index,mots,occurence,moyenne,id_formation,source_field
|
||||||
0,0,aromatherapie,1,0.33,MYSY_0004,title
|
0,0,belt,1,0.17,MYSY_0001,title
|
||||||
1,1,integrative,1,0.33,MYSY_0004,title
|
1,1,ecam,1,0.17,MYSY_0001,title
|
||||||
2,2,praticien,1,0.33,MYSY_0004,title
|
2,2,yellow,1,0.17,MYSY_0001,title
|
||||||
|
3,3,deploiement,1,0.17,MYSY_0001,title
|
||||||
|
4,4,expert,1,0.17,MYSY_0001,title
|
||||||
|
5,5,lean,1,0.17,MYSY_0001,title
|
||||||
|
|
|
|
@ -1,4 +1,3 @@
|
||||||
mots occurence moyenne id_formation source_field
|
Empty DataFrame
|
||||||
0 aromatherapie 1 0.33 MYSY_0004 title
|
Columns: [mots, occurence, moyenne, id_formation, source_field]
|
||||||
1 integrative 1 0.33 MYSY_0004 title
|
Index: []
|
||||||
2 praticien 1 0.33 MYSY_0004 title
|
|
|
@ -8,7 +8,7 @@ import locale
|
||||||
import datetime
|
import datetime
|
||||||
import inspect
|
import inspect
|
||||||
import sys, os
|
import sys, os
|
||||||
|
from email import encoders
|
||||||
from bson import ObjectId
|
from bson import ObjectId
|
||||||
from pymongo import ReturnDocument
|
from pymongo import ReturnDocument
|
||||||
from xhtml2pdf import pisa
|
from xhtml2pdf import pisa
|
||||||
|
@ -580,8 +580,8 @@ def SendAttestion_to_attendee_by_email(diction):
|
||||||
"""
|
"""
|
||||||
Verification de la liste des champs obligatoires
|
Verification de la liste des champs obligatoires
|
||||||
"""
|
"""
|
||||||
field_list_obligatoire = ['nom', 'prenom', 'email', 'date_du', 'date_au', 'adresse', 'title',
|
field_list_obligatoire = ['partner_recid', 'session_id', 'class_internal_url', 'class_title' ,
|
||||||
'attestation_tmpl', 'inscription_id']
|
'email_participant', 'attestation_tmpl']
|
||||||
|
|
||||||
for val in field_list_obligatoire:
|
for val in field_list_obligatoire:
|
||||||
if val not in diction:
|
if val not in diction:
|
||||||
|
@ -594,10 +594,96 @@ def SendAttestion_to_attendee_by_email(diction):
|
||||||
|
|
||||||
msg = MIMEMultipart("alternative")
|
msg = MIMEMultipart("alternative")
|
||||||
|
|
||||||
|
## Recuperation des données du partenaire
|
||||||
|
local_partnair = MYSY_GV.dbname['partnair_account'].find_one({'recid':str(diction['partner_recid']),
|
||||||
|
'active':'1', 'locked':'0'})
|
||||||
|
if( local_partnair is None ):
|
||||||
|
mycommon.myprint(
|
||||||
|
str(inspect.stack()[0][3]) + " - Impossible de recuperer les données du partenaire")
|
||||||
|
return False, " Impossible de recuperer les données du partenaire "
|
||||||
|
|
||||||
|
mysy_partner_nom = ""
|
||||||
|
if ("nom" in local_partnair.keys()):
|
||||||
|
mysy_partner_nom = str(local_partnair['nom'])
|
||||||
|
|
||||||
|
mysy_partner_num_declation = ""
|
||||||
|
if ("num_nda" in local_partnair.keys()):
|
||||||
|
mysy_partner_num_declation = str(local_partnair['num_nda'])
|
||||||
|
|
||||||
|
mysy_partner_adr_city = ""
|
||||||
|
if ("adr_city" in local_partnair.keys()):
|
||||||
|
mysy_partner_adr_city = str(local_partnair['adr_city'])
|
||||||
|
|
||||||
|
## Recuperation des données de l'inscrit
|
||||||
|
local_inscription = MYSY_GV.dbname['inscription'].find_one({'session_id': str(diction['session_id']),
|
||||||
|
'class_internal_url': str(diction['class_internal_url']),
|
||||||
|
'email':str(diction['email_participant'])})
|
||||||
|
if (local_inscription is None):
|
||||||
|
mycommon.myprint(
|
||||||
|
str(inspect.stack()[0][3]) + " - Impossible de recuperer les données du participants")
|
||||||
|
return False, " Impossible de recuperer les données du participants "
|
||||||
|
|
||||||
|
nom = ""
|
||||||
|
if ("nom" in local_inscription.keys()):
|
||||||
|
nom = str(local_inscription['nom'])
|
||||||
|
|
||||||
|
prenom = ""
|
||||||
|
if ("prenom" in local_inscription.keys()):
|
||||||
|
prenom = str(local_inscription['prenom'])
|
||||||
|
|
||||||
|
date_du = ""
|
||||||
|
if ("date_du" in local_inscription.keys()):
|
||||||
|
date_du = str(local_inscription['date_du'])[0:10]
|
||||||
|
|
||||||
|
date_au = ""
|
||||||
|
if ("date_au" in local_inscription.keys()):
|
||||||
|
date_au = str(local_inscription['date_au'])[0:10]
|
||||||
|
|
||||||
|
ville = ""
|
||||||
|
if ("ville" in local_inscription.keys()):
|
||||||
|
ville = str(local_inscription['ville'])
|
||||||
|
|
||||||
|
code_postal = ""
|
||||||
|
if ("code_postal" in local_inscription.keys()):
|
||||||
|
code_postal = str(local_inscription['code_postal'])
|
||||||
|
|
||||||
|
adresse = ""
|
||||||
|
if ("adresse" in local_inscription.keys()):
|
||||||
|
adresse = str(local_inscription['adresse'])
|
||||||
|
|
||||||
|
## Recuperation des données de la session
|
||||||
|
local_session = MYSY_GV.dbname['session_formation'].find_one({'code_session': str(diction['session_id']),
|
||||||
|
'class_internal_url': str(
|
||||||
|
diction['class_internal_url']),
|
||||||
|
'valide':'1'})
|
||||||
|
if (local_session is None):
|
||||||
|
mycommon.myprint(
|
||||||
|
str(inspect.stack()[0][3]) + " - Impossible de recuperer les données de la session")
|
||||||
|
return False, " Impossible de recuperer les données de la session "
|
||||||
|
|
||||||
|
formateur = ""
|
||||||
|
if ("formateur" in local_session.keys()):
|
||||||
|
formateur = str(local_session['formateur'])
|
||||||
|
|
||||||
|
presentiel = ""
|
||||||
|
if ("presentiel" in local_session.keys()):
|
||||||
|
presentiel = str(local_session['presentiel'])
|
||||||
|
|
||||||
|
distantiel = ""
|
||||||
|
if ("distantiel" in local_session.keys()):
|
||||||
|
distantiel = str(local_session['distantiel'])
|
||||||
|
|
||||||
|
contenu_ftion = ""
|
||||||
|
if ("contenu_ftion" in local_session.keys()):
|
||||||
|
contenu_ftion = str(local_session['contenu_ftion']).replace('<p>', '').replace('</p>', '')
|
||||||
|
|
||||||
|
|
||||||
msg['From'] = MYSY_GV.O365_SMTP_COUNT_From_User
|
msg['From'] = MYSY_GV.O365_SMTP_COUNT_From_User
|
||||||
msg['To'] = str(diction['email'])
|
msg['To'] = str(diction['email_participant'])
|
||||||
|
|
||||||
|
ct = datetime.datetime.now()
|
||||||
|
ts = ct.timestamp()
|
||||||
|
date_jour = ct.strftime("%d/%m/%Y")
|
||||||
|
|
||||||
# msg = MIMEMultipart("alternative")
|
# msg = MIMEMultipart("alternative")
|
||||||
msg = EmailMessage()
|
msg = EmailMessage()
|
||||||
|
@ -611,23 +697,80 @@ def SendAttestion_to_attendee_by_email(diction):
|
||||||
template = templateEnv.get_template(TEMPLATE_FILE)
|
template = templateEnv.get_template(TEMPLATE_FILE)
|
||||||
# This data can come from database query
|
# This data can come from database query
|
||||||
body = {
|
body = {
|
||||||
"params": {"nom": str(diction['nom']),
|
"params": {"nom": str(nom),
|
||||||
"prenom": str(diction['prenom']),
|
"prenom": str(prenom),
|
||||||
"date_du": str(diction['date_du']),
|
"date_du": str(date_du),
|
||||||
"date_fin": str(diction['date_au']),
|
"date_au": str(date_au),
|
||||||
"adresse": str(diction['adresse']),
|
"adresse": str(adresse),
|
||||||
"title": str(diction['title']),
|
"class_title": str(diction['class_title']),
|
||||||
"email": str(diction['email']),
|
"email": str(diction['email_participant']),
|
||||||
|
"adresse": str(adresse),
|
||||||
|
"code_postal": str(code_postal),
|
||||||
|
"ville": str(ville),
|
||||||
|
"formateur": str(formateur),
|
||||||
|
"presentiel": str(presentiel),
|
||||||
|
"distantiel": str(distantiel),
|
||||||
|
"partner": str(mysy_partner_nom),
|
||||||
|
"contenu_ftion": str(contenu_ftion),
|
||||||
|
"num_declation": str(mysy_partner_num_declation),
|
||||||
|
"mysy_partner_adr_city":str(mysy_partner_adr_city),
|
||||||
|
"date_jour":str(date_jour),
|
||||||
|
"cachet_signature": "https://img.mysy-training.com/perso/mysy_cachet.png",
|
||||||
|
"logo_url": "https://img.mysy-training.com/1000formation/LOGO-FORMATION1000.png"
|
||||||
}}
|
}}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
sourceHtml = template.render(json_data=body["params"])
|
sourceHtml = template.render(json_data=body["params"])
|
||||||
|
|
||||||
msg.set_content(sourceHtml, subtype='html')
|
file_name = str("Attestation_" + str(ts) ).replace(".", "")
|
||||||
|
orig_file_name = str(file_name)+".pdf"
|
||||||
|
|
||||||
|
outputFilename = str(MYSY_GV.INVOICE_DIRECTORY) + str(orig_file_name)
|
||||||
|
print(" ### orig_file_name = ", outputFilename)
|
||||||
|
# open output file for writing (truncated binary)
|
||||||
|
resultFile = open(outputFilename, "w+b")
|
||||||
|
# convert HTML to PDF
|
||||||
|
pisaStatus = pisa.CreatePDF(
|
||||||
|
src=sourceHtml, # the HTML to convert
|
||||||
|
dest=resultFile) # file handle to receive result
|
||||||
|
|
||||||
|
# close output file
|
||||||
|
resultFile.close()
|
||||||
|
|
||||||
|
body = '''Hello,
|
||||||
|
This is the body of the email
|
||||||
|
sicerely yours
|
||||||
|
G.G.
|
||||||
|
'''
|
||||||
|
msg.attach(MIMEText(body, 'plain'))
|
||||||
|
|
||||||
|
# open the file in bynary
|
||||||
|
binary_pdf = open(outputFilename, 'rb')
|
||||||
|
|
||||||
|
payload = MIMEBase('application', 'octate-stream', Name=outputFilename)
|
||||||
|
payload.set_payload((binary_pdf).read())
|
||||||
|
|
||||||
|
# enconding the binary into base64
|
||||||
|
encoders.encode_base64(payload)
|
||||||
|
|
||||||
|
# add header with pdf name
|
||||||
|
payload.add_header('Content-Decomposition', 'attachment', filename=outputFilename)
|
||||||
|
msg.attach(payload)
|
||||||
|
|
||||||
|
|
||||||
|
"""with open(outputFilename, 'rb') as content_file:
|
||||||
|
content = content_file.read()
|
||||||
|
msg.add_attachment(content, maintype='application', subtype='pdf', filename='Attestation.pdf')
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
msg['From'] = MYSY_GV.O365_SMTP_COUNT_From_User
|
msg['From'] = MYSY_GV.O365_SMTP_COUNT_From_User
|
||||||
msg['Bcc'] = 'contact@mysy-training.com'
|
msg['Bcc'] = 'contact@mysy-training.com'
|
||||||
msg['Subject'] = 'MySy Training : Votre attestation de formation : ' + str(diction['title'])
|
msg['Subject'] = 'MySy Training : Votre attestation de formation : ' + str(diction['class_title'])
|
||||||
msg['To'] = str(diction['email'])
|
msg['To'] = str(diction['email_participant'])
|
||||||
|
|
||||||
|
msg.attach(MIMEText(open(outputFilename).read()))
|
||||||
|
|
||||||
smtpserver.ehlo()
|
smtpserver.ehlo()
|
||||||
smtpserver.starttls()
|
smtpserver.starttls()
|
||||||
|
@ -639,9 +782,11 @@ def SendAttestion_to_attendee_by_email(diction):
|
||||||
mytoday = datetime.date.today().strftime("%d/%m/%Y")
|
mytoday = datetime.date.today().strftime("%d/%m/%Y")
|
||||||
my_local_mydata = {'certification_send_date':str(mytoday)}
|
my_local_mydata = {'certification_send_date':str(mytoday)}
|
||||||
|
|
||||||
print(" ### str(diction['inscription_id']) = ",str(diction['inscription_id']) )
|
#print(" ### str(diction['inscription_id']) = ",str(diction['inscription_id']) )
|
||||||
## Mise à jour de la date d'envoi du certificat
|
## Mise à jour de la date d'envoi du certificat
|
||||||
MYSY_GV.dbname['inscription'].find_one_and_update({'_id':ObjectId(str(diction['inscription_id']))},
|
MYSY_GV.dbname['inscription'].find_one_and_update({'session_id': str(diction['session_id']),
|
||||||
|
'class_internal_url': str(diction['class_internal_url']),
|
||||||
|
'email':str(diction['email_participant'])},
|
||||||
{"$set":my_local_mydata},
|
{"$set":my_local_mydata},
|
||||||
return_document=ReturnDocument.AFTER,)
|
return_document=ReturnDocument.AFTER,)
|
||||||
|
|
||||||
|
@ -738,6 +883,7 @@ def SendAttestion_to_attendee_by_email_standalone(diction):
|
||||||
"presentiel": str(diction['presentiel']),
|
"presentiel": str(diction['presentiel']),
|
||||||
"distantiel": str(diction['distantiel']),
|
"distantiel": str(diction['distantiel']),
|
||||||
"partner": str(mysy_partner_nom),
|
"partner": str(mysy_partner_nom),
|
||||||
|
"contenu_ftion": "Les 10 états d’esprit Kaizen<br>Pratique du PDCA et de la Résolution de problème<br>MODULE 3 Pérennisation:<br>Les rituels managériaux<br>Piloter un système Lean",
|
||||||
"num_declation": str(mysy_partner_num_declation),
|
"num_declation": str(mysy_partner_num_declation),
|
||||||
"mysy_partner_siren": str(mysy_partner_siren),
|
"mysy_partner_siren": str(mysy_partner_siren),
|
||||||
"mysy_partner_adr_city":str(mysy_partner_adr_city),
|
"mysy_partner_adr_city":str(mysy_partner_adr_city),
|
||||||
|
|
Loading…
Reference in New Issue