09/04/2024 - 23h50
parent
601af08a93
commit
461fbe59ee
|
@ -4,8 +4,7 @@
|
|||
<list default="true" id="c6d0259a-16e1-410d-91a1-830590ee2a08" name="Changes" comment="09/04/2024 - 15h19">
|
||||
<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$/module_editique.py" beforeDir="false" afterPath="$PROJECT_DIR$/module_editique.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/prj_common.py" beforeDir="false" afterPath="$PROJECT_DIR$/prj_common.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/partner_document_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/partner_document_mgt.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" />
|
||||
|
@ -76,13 +75,6 @@
|
|||
<option name="presentableId" value="Default" />
|
||||
<updated>1680804787304</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00213" summary="04/02/2024 - 23h">
|
||||
<created>1707082428610</created>
|
||||
<option name="number" value="00213" />
|
||||
<option name="presentableId" value="LOCAL-00213" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1707082428611</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00214" summary="05/02/2024 -23h">
|
||||
<created>1707172831686</created>
|
||||
<option name="number" value="00214" />
|
||||
|
@ -419,7 +411,14 @@
|
|||
<option name="project" value="LOCAL" />
|
||||
<updated>1712669291681</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="262" />
|
||||
<task id="LOCAL-00262" summary="09/04/2024 - 15h19">
|
||||
<created>1712676544737</created>
|
||||
<option name="number" value="00262" />
|
||||
<option name="presentableId" value="LOCAL-00262" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1712676544738</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="263" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
|
|
1262
Log/log_file.log
1262
Log/log_file.log
File diff suppressed because it is too large
Load Diff
|
@ -194,12 +194,12 @@ def Add_Partner_Document(diction):
|
|||
if ("contenu_doc" in diction.keys()):
|
||||
if diction['contenu_doc']:
|
||||
contenu_doc = diction['contenu_doc']
|
||||
if (len(str(contenu_doc)) > 10000):
|
||||
if (len(str(contenu_doc)) > 20000):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][
|
||||
3]) + " - Le champ 'contenu_doc' fait plus de 10000 caractères ")
|
||||
3]) + " - Le champ 'contenu_doc' fait plus de 20000 caractères ")
|
||||
|
||||
return False, " - Le champ 'contenu_doc' fait plus de 10000 caractères "
|
||||
return False, " - Le champ 'contenu_doc' fait plus de 20000 caractères "
|
||||
data['contenu_doc'] = contenu_doc
|
||||
|
||||
|
||||
|
@ -441,12 +441,12 @@ def Update_Partner_Document(diction):
|
|||
if ("contenu_doc" in diction.keys()):
|
||||
if diction['contenu_doc']:
|
||||
contenu_doc = diction['contenu_doc']
|
||||
if (len(str(sujet)) > 10000):
|
||||
if (len(str(sujet)) > 20000):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][
|
||||
3]) + " - Le champ 'contenu_doc' fait plus de 10000 caractères ")
|
||||
3]) + " - Le champ 'contenu_doc' fait plus de 20000 caractères ")
|
||||
|
||||
return False, " - Le champ 'contenu_doc' fait plus de 10000 caractère "
|
||||
return False, " - Le champ 'contenu_doc' fait plus de 20000 caractère "
|
||||
data_update['contenu_doc'] = diction['contenu_doc']
|
||||
|
||||
|
||||
|
|
174
survey_mgt.py
174
survey_mgt.py
|
@ -611,6 +611,20 @@ def Create_One_Survey_To_Inscrit(diction):
|
|||
|
||||
"""
|
||||
Cette fonction permet d'envoyer la demande d'enquete à la personne concerné
|
||||
/!\ : Cette fontion permet d'envoyer toutes les demande d'enquete, que soit :
|
||||
un questionnaire de positionnement, une demande d'evaluation a chaud,
|
||||
une demande d'evaluation à froid, ou tout autre.
|
||||
|
||||
Le type de courrier à utiliser, le 'courrier_template_type_document_ref_interne' à loger dans tracking history
|
||||
depende du type d'enquete.
|
||||
|
||||
par exemple :
|
||||
- si survey.survey_type == 'pos' ==> courrier_template_type_document_ref_interne = "QUESTION_POSITIONNEMENT" et
|
||||
courrier_template.ref_interne = QUESTION_POSITIONNEMENT.
|
||||
|
||||
- si survey.survey_type == 'hot_eval' ==> courrier_template_type_document_ref_interne = "EVAL_FORMATION" et
|
||||
courrier_template.ref_interne = EVAL_FORMATION.
|
||||
|
||||
"""
|
||||
|
||||
def Send_Survey_TabIds(diction):
|
||||
|
@ -700,72 +714,6 @@ 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
|
||||
|
@ -778,6 +726,86 @@ def Send_Survey_TabIds(diction):
|
|||
mycommon.myprint(str(inspect.stack()[0][3]) + " L'identifiant de l'inscrit est invalide ")
|
||||
return False, " L'identifiant de l'inscrit est invalide "
|
||||
|
||||
|
||||
courrier_ref_interne = ""
|
||||
if ( "survey_type" in local_survey_retval.keys() and local_survey_retval['survey_type'] == "pos"):
|
||||
courrier_ref_interne = "QUESTION_POSITIONNEMENT"
|
||||
|
||||
elif ( "survey_type" in local_survey_retval.keys() and local_survey_retval['survey_type'] == "hot_eval"):
|
||||
courrier_ref_interne = "EVAL_FORMATION"
|
||||
|
||||
else :
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " Le type d'enquete est invalide ")
|
||||
return False, " Le type d'enquete est invalide "
|
||||
|
||||
"""
|
||||
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': str(courrier_ref_interne),
|
||||
'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': str(courrier_ref_interne),
|
||||
'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': str(courrier_ref_interne),
|
||||
'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': str(courrier_ref_interne),
|
||||
'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
|
||||
|
||||
servey_url = MYSY_GV.CLIENT_URL_BASE + "Survey/" + str(local_survey_retval['_id'])
|
||||
|
||||
convention_dictionnary_data["servey_url"] = str(servey_url)
|
||||
|
@ -843,12 +871,22 @@ def Send_Survey_TabIds(diction):
|
|||
|
||||
qry = {'_id': ObjectId(str(my_survey_id)), 'partner_owner_recid': str(my_partner['recid']),
|
||||
'valide': '1', 'locked': '0'}
|
||||
MYSY_GV.dbname['survey'].find_one_and_update(qry,
|
||||
result = MYSY_GV.dbname['survey'].find_one_and_update(qry,
|
||||
{'$set':{'statut':'1', 'date_update':str(now),
|
||||
'update_by':str(my_partner['_id']),
|
||||
'date_envoi':now}}
|
||||
)
|
||||
|
||||
courrier_ref_interne = ""
|
||||
if ("survey_type" in result.keys() and result['survey_type'] == "pos"):
|
||||
courrier_ref_interne = "QUESTION_POSITIONNEMENT"
|
||||
|
||||
elif ("survey_type" in result.keys() and result['survey_type'] == "hot_eval"):
|
||||
courrier_ref_interne = "EVAL_FORMATION"
|
||||
|
||||
else:
|
||||
mycommon.myprint(str(inspect.stack()[0][3]) + " Le type d'enquete est invalide ")
|
||||
return False, " Le type d'enquete est invalide "
|
||||
|
||||
"""
|
||||
Apres que l'envoie est fait, on va loguer le traitement dans la collection : courrier_template_tracking_history
|
||||
|
@ -869,7 +907,7 @@ def Send_Survey_TabIds(diction):
|
|||
print(" inscription_data = ", inscription_data)
|
||||
|
||||
local_status, local_retval = module_editique.Editic_Log_History_Action_From_courrier_template_type_document_ref_interne(
|
||||
my_partner, "QUESTION_POSITIONNEMENT", str(inscription_data['session_id']), 'inscription',
|
||||
my_partner, str(courrier_ref_interne), str(inscription_data['session_id']), 'inscription',
|
||||
str(local_inscription_id),"")
|
||||
if (local_status is False):
|
||||
mycommon.myprint(
|
||||
|
|
Loading…
Reference in New Issue