25/03/2024 - 18h30
parent
a0a955ed0e
commit
0d35d5c6e3
|
@ -5,15 +5,13 @@
|
|||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/E_Sign_Document.py" beforeDir="false" afterPath="$PROJECT_DIR$/E_Sign_Document.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/GlobalVariable.py" beforeDir="false" afterPath="$PROJECT_DIR$/GlobalVariable.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$/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$/crm_opportunite.py" beforeDir="false" afterPath="$PROJECT_DIR$/crm_opportunite.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/email_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/email_mgt.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/emargement.py" beforeDir="false" afterPath="$PROJECT_DIR$/emargement.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/attached_file_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/attached_file_mgt.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/class_mgt.py" beforeDir="false" afterPath="$PROJECT_DIR$/class_mgt.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/main.py" beforeDir="false" afterPath="$PROJECT_DIR$/main.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/partner_order.py" beforeDir="false" afterPath="$PROJECT_DIR$/partner_order.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/prj_common.py" beforeDir="false" afterPath="$PROJECT_DIR$/prj_common.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/ressources_humaines.py" beforeDir="false" afterPath="$PROJECT_DIR$/ressources_humaines.py" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
|
|
|
@ -1237,7 +1237,7 @@ def Sent_E_Document_Signature_Request(diction):
|
|||
msg.attach(html_mime)
|
||||
msg['From'] = partner_SMTP_COUNT_From_User
|
||||
msg['Bcc'] = 'contact@mysy-training.com'
|
||||
msg['Subject'] = " Signature electronique document"
|
||||
msg['Subject'] = " Demande signature électronique document"
|
||||
# msg['to'] = "billardman01@hotmail.com"
|
||||
|
||||
msg['to'] = str(diction['user_email'])
|
||||
|
@ -1251,7 +1251,7 @@ def Sent_E_Document_Signature_Request(diction):
|
|||
msg.attach(html_mime)
|
||||
msg['From'] = MYSY_GV.O365_SMTP_COUNT_From_User
|
||||
msg['Bcc'] = 'contact@mysy-training.com'
|
||||
msg['Subject'] = " Signature electronique document"
|
||||
msg['Subject'] = " Demande signature électronique document"
|
||||
# msg['to'] = "billardman01@hotmail.com"
|
||||
|
||||
msg['to'] = str(diction['user_email'])
|
||||
|
|
|
@ -667,4 +667,9 @@ Gestion des sequences de formation ( en rapport avec les emargements) :
|
|||
- option = 1 ==> on prend la demi-journée
|
||||
- option = 2 ==> on prend la journée
|
||||
"""
|
||||
EMARGEMENT_OPTION = ["0", "1", "2"]
|
||||
EMARGEMENT_OPTION = ["0", "1", "2"]
|
||||
|
||||
"""
|
||||
Taille maximale des nom de fichier
|
||||
"""
|
||||
FILE_NAME_MAX_SIZE = 250
|
5049
Log/log_file.log
5049
Log/log_file.log
File diff suppressed because one or more lines are too long
|
@ -151,7 +151,7 @@ def Store_User_Downloaded_File(file=None, Folder=None, diction=None):
|
|||
if diction['document_display_order']:
|
||||
document_display_order = diction['document_display_order']
|
||||
|
||||
if (len(str(file.filename)) > 100):
|
||||
if (len(str(file.filename)) > MYSY_GV.FILE_NAME_MAX_SIZE):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][
|
||||
3]) + " - Fichier invalide, trop long = " + str(
|
||||
|
@ -242,7 +242,7 @@ def Get_Stored_Downloaded_File(diction):
|
|||
if diction['file_name']:
|
||||
file_name = diction['file_name']
|
||||
|
||||
if(len(str(file_name)) > 100 ):
|
||||
if(len(str(file_name)) > MYSY_GV.FILE_NAME_MAX_SIZE ):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][
|
||||
3]) + " - Fichier invalide, trop long = "+ str(file_name)+ ". le nom doit faire moins de 100 caractère")
|
||||
|
@ -472,7 +472,7 @@ def Delete_Stored_Downloaded_File(diction):
|
|||
if diction['file_name']:
|
||||
file_name = diction['file_name']
|
||||
|
||||
if(len(str(file_name)) > 100 ):
|
||||
if(len(str(file_name)) > MYSY_GV.FILE_NAME_MAX_SIZE ):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][
|
||||
3]) + " - Fichier invalide, trop long = "+ str(file_name)+ ". le nom doit faire moins de 100 caractère")
|
||||
|
|
115
class_mgt.py
115
class_mgt.py
|
@ -57,7 +57,7 @@ def add_class(diction):
|
|||
'internal_url', 'zone_diffusion', 'metier', 'published', 'img_url', 'objectif',
|
||||
'programme', 'prerequis', 'note', 'cpf', 'certif', 'class_inscription_url', 'pourqui',
|
||||
'support', 'img_banner_detail_class', 'source', 'lms_class_code', 'formateur_id',
|
||||
'class_level']
|
||||
'class_level', 'methode_pedagogique', 'condition_handicape']
|
||||
|
||||
incom_keys = diction.keys()
|
||||
for val in incom_keys:
|
||||
|
@ -277,6 +277,36 @@ def add_class(diction):
|
|||
|
||||
mydata['programme'] = programme
|
||||
|
||||
methode_pedagogique = ""
|
||||
if ("methode_pedagogique" in diction.keys()):
|
||||
if diction['methode_pedagogique']:
|
||||
programme = diction['methode_pedagogique']
|
||||
if (len(mycommon.cleanhtml(diction['methode_pedagogique'])) > MYSY_GV.CLASS_ZONE_PROGRAM_LIMIT):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " : le champ 'methode pedagogique' de La formation " + str(
|
||||
mydata['external_code']) + " a plus de " + str(
|
||||
MYSY_GV.CLASS_ZONE_PROGRAM_LIMIT) + " caractères")
|
||||
return False, " le champ 'methode pedagogique' de La formation " + str(
|
||||
mydata['external_code']) + " a plus de " + str(MYSY_GV.CLASS_ZONE_PROGRAM_LIMIT) + " caractères"
|
||||
|
||||
mydata['methode_pedagogique'] = methode_pedagogique
|
||||
|
||||
condition_handicape = ""
|
||||
if ("condition_handicape" in diction.keys()):
|
||||
if diction['condition_handicape']:
|
||||
condition_handicape = diction['condition_handicape']
|
||||
if (len(mycommon.cleanhtml(diction['condition_handicape'])) > MYSY_GV.CLASS_ZONE_PROGRAM_LIMIT):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " : le champ 'condition handicape' de La formation " + str(
|
||||
mydata['external_code']) + " a plus de " + str(
|
||||
MYSY_GV.CLASS_ZONE_PROGRAM_LIMIT) + " caractères")
|
||||
return False, " le champ 'condition handicape' de La formation " + str(
|
||||
mydata['external_code']) + " a plus de " + str(MYSY_GV.CLASS_ZONE_PROGRAM_LIMIT) + " caractères"
|
||||
|
||||
mydata['condition_handicape'] = condition_handicape
|
||||
|
||||
|
||||
|
||||
prerequis = ""
|
||||
if ("prerequis" in diction.keys()):
|
||||
if diction['prerequis']:
|
||||
|
@ -614,7 +644,7 @@ def update_class(diction):
|
|||
'domaine', 'internal_code', 'internal_url','zone_diffusion', 'metier',
|
||||
'published', 'img_url', 'objectif', 'programme', 'prerequis', 'note',
|
||||
'cpf', 'certif', 'class_inscription_url','pourqui', 'support', 'img_banner_detail_class',
|
||||
'duration_unit', 'source', 'lms_class_code', 'formateur_id', 'class_level']
|
||||
'duration_unit', 'source', 'lms_class_code', 'formateur_id', 'class_level','methode_pedagogique', 'condition_handicape']
|
||||
|
||||
incom_keys = diction.keys()
|
||||
for val in incom_keys:
|
||||
|
@ -746,6 +776,29 @@ def update_class(diction):
|
|||
diction['external_code']) + " a plus de " + str(MYSY_GV.CLASS_ZONE_PROGRAM_LIMIT) + " caractères"
|
||||
|
||||
|
||||
if ("methode_pedagogique" in diction.keys()):
|
||||
mydata['methode_pedagogique'] = diction['methode_pedagogique']
|
||||
if (len(mycommon.cleanhtml(diction['methode_pedagogique'])) > MYSY_GV.CLASS_ZONE_PROGRAM_LIMIT):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " : le champ 'methode pedagogique' de La formation " + str(
|
||||
diction['external_code']) + " a plus de " + str(
|
||||
MYSY_GV.CLASS_ZONE_PROGRAM_LIMIT) + " caractères")
|
||||
return False, " le champ 'methode pedagogique' de La formation " + str(
|
||||
diction['external_code']) + " a plus de " + str(MYSY_GV.CLASS_ZONE_PROGRAM_LIMIT) + " caractères"
|
||||
|
||||
|
||||
if ("condition_handicape" in diction.keys()):
|
||||
mydata['condition_handicape'] = diction['condition_handicape']
|
||||
if (len(mycommon.cleanhtml(diction['condition_handicape'])) > MYSY_GV.CLASS_ZONE_PROGRAM_LIMIT):
|
||||
mycommon.myprint(
|
||||
str(inspect.stack()[0][3]) + " : le champ 'condition handicape' de La formation " + str(
|
||||
diction['external_code']) + " a plus de " + str(
|
||||
MYSY_GV.CLASS_ZONE_PROGRAM_LIMIT) + " caractères")
|
||||
return False, " le champ 'condition handicape' de La formation " + str(
|
||||
diction['external_code']) + " a plus de " + str(MYSY_GV.CLASS_ZONE_PROGRAM_LIMIT) + " caractères"
|
||||
|
||||
|
||||
|
||||
if ("cpf" in diction.keys()):
|
||||
mydata['cpf'] = diction['cpf']
|
||||
|
||||
|
@ -2087,6 +2140,29 @@ def get_class(diction):
|
|||
retVal['programme'] = no_html[:MYSY_GV.MAX_CARACT_DETAIL] + " ..."
|
||||
|
||||
|
||||
if ("methode_pedagogique" in retVal.keys()):
|
||||
tmp_str = retVal['methode_pedagogique']
|
||||
no_html = mycommon.cleanhtml( retVal['methode_pedagogique'])
|
||||
text_size = text_size + len(str(no_html))
|
||||
nb_pave_a_afficher = nb_pave_a_afficher + 1
|
||||
|
||||
|
||||
if (len(no_html) > MYSY_GV.MAX_CARACT_DETAIL):
|
||||
retVal['methode_pedagogique'] = no_html[:MYSY_GV.MAX_CARACT_DETAIL] + " ..."
|
||||
|
||||
|
||||
if ("condition_handicape" in retVal.keys()):
|
||||
tmp_str = retVal['condition_handicape']
|
||||
no_html = mycommon.cleanhtml( retVal['condition_handicape'])
|
||||
text_size = text_size + len(str(no_html))
|
||||
nb_pave_a_afficher = nb_pave_a_afficher + 1
|
||||
|
||||
|
||||
if (len(no_html) > MYSY_GV.MAX_CARACT_DETAIL):
|
||||
retVal['condition_handicape'] = no_html[:MYSY_GV.MAX_CARACT_DETAIL] + " ..."
|
||||
|
||||
|
||||
|
||||
if ("pedagogie" in retVal.keys()):
|
||||
tmp_str = retVal['pedagogie']
|
||||
no_html = mycommon.cleanhtml(retVal['pedagogie'])
|
||||
|
@ -3024,7 +3100,8 @@ def add_class_mass(file=None, Folder=None, diction=None):
|
|||
'distantiel', 'presentiel', 'prix', 'domaine', 'url','duree', 'duree_unite', 'plus_produit',
|
||||
'mots_cle', 'zone_diffusion', 'metier', 'publie', 'img_url',
|
||||
'objectif', 'programme', 'prerequis', 'formateur', 'note', 'cpf', 'certif',
|
||||
'class_inscription_url', 'pourqui', 'support', 'img_banner_detail_class', 'formateur_email']
|
||||
'class_inscription_url', 'pourqui', 'support', 'img_banner_detail_class', 'formateur_email',
|
||||
'methode_pedagogique', 'condition_handicape']
|
||||
|
||||
total_rows = len(df)
|
||||
|
||||
|
@ -3225,6 +3302,22 @@ def add_class_mass(file=None, Folder=None, diction=None):
|
|||
|
||||
mydata['programme'] = programme
|
||||
|
||||
methode_pedagogique = ""
|
||||
if ("methode_pedagogique" in df.keys()):
|
||||
if (str(df['methode_pedagogique'].values[n])):
|
||||
methode_pedagogique = str(df['methode_pedagogique'].values[n]).strip()
|
||||
methode_pedagogique = mycommon.format_MySy_Text_Tag(methode_pedagogique)
|
||||
|
||||
mydata['methode_pedagogique'] = methode_pedagogique
|
||||
|
||||
condition_handicape = ""
|
||||
if ("condition_handicape" in df.keys()):
|
||||
if (str(df['condition_handicape'].values[n])):
|
||||
condition_handicape = str(df['condition_handicape'].values[n]).strip()
|
||||
condition_handicape = mycommon.format_MySy_Text_Tag(condition_handicape)
|
||||
|
||||
mydata['condition_handicape'] = condition_handicape
|
||||
|
||||
prerequis = ""
|
||||
if ("prerequis" in df.keys()):
|
||||
if (str(df['prerequis'].values[n])):
|
||||
|
@ -3452,7 +3545,7 @@ def Controle_add_class_mass(saved_file=None, Folder=None, diction=None):
|
|||
'distantiel', 'presentiel', 'prix', 'domaine', 'url', 'duree', 'duree_unite', 'plus_produit',
|
||||
'mots_cle', 'zone_diffusion', 'metier', 'publie', 'img_url',
|
||||
'objectif', 'programme', 'prerequis', 'formateur', 'note', 'cpf', 'certif',
|
||||
'class_inscription_url', 'pourqui', 'support', 'img_banner_detail_class', 'formateur_email']
|
||||
'class_inscription_url', 'pourqui', 'support', 'img_banner_detail_class', 'formateur_email' ,'methode_pedagogique', 'condition_handicape']
|
||||
|
||||
total_rows = len(df)
|
||||
|
||||
|
@ -3919,6 +4012,20 @@ def get_class_by_metier(diction):
|
|||
if (len(no_html) > MYSY_GV.MAX_CARACT):
|
||||
retVal['programme'] = no_html[:MYSY_GV.MAX_CARACT] + " ..."
|
||||
|
||||
if ("methode_pedagogique" in retVal.keys()):
|
||||
tmp_str = retVal['methode_pedagogique']
|
||||
no_html = mycommon.cleanhtml(retVal['methode_pedagogique'])
|
||||
if (len(no_html) > MYSY_GV.MAX_CARACT):
|
||||
retVal['methode_pedagogique'] = no_html[:MYSY_GV.MAX_CARACT] + " ..."
|
||||
|
||||
|
||||
if ("condition_handicape" in retVal.keys()):
|
||||
tmp_str = retVal['condition_handicape']
|
||||
no_html = mycommon.cleanhtml(retVal['condition_handicape'])
|
||||
if (len(no_html) > MYSY_GV.MAX_CARACT):
|
||||
retVal['condition_handicape'] = no_html[:MYSY_GV.MAX_CARACT] + " ..."
|
||||
|
||||
|
||||
if ("pedagogie" in retVal.keys()):
|
||||
tmp_str = retVal['pedagogie']
|
||||
no_html = mycommon.cleanhtml(retVal['pedagogie'])
|
||||
|
|
4
main.py
4
main.py
|
@ -8040,7 +8040,7 @@ def Create_E_Signature_For_E_Document():
|
|||
file_img = None
|
||||
if request.method == 'POST':
|
||||
# Create variable for uploaded file
|
||||
if ('signature_img' in request.files.keys()):
|
||||
if ('signature_img' in request.files.keys() and request.files['signature_img']):
|
||||
file_img = request.files['signature_img']
|
||||
|
||||
|
||||
|
@ -8049,6 +8049,8 @@ def Create_E_Signature_For_E_Document():
|
|||
user_ip = headers_list[0] if headers_list else request.remote_addr
|
||||
|
||||
payload['user_ip'] = user_ip
|
||||
if( "signature_img" in payload.keys() ):
|
||||
del payload['signature_img']
|
||||
|
||||
status, retval = E_Sign_Document.Create_E_Signature_For_E_Document(file_img, MYSY_GV.TEMPORARY_DIRECTORY_V2, payload)
|
||||
return jsonify(status=status, message=retval)
|
||||
|
|
|
@ -461,6 +461,7 @@ def Add_Partner_Order(diction):
|
|||
la sequence par defaut dont partner_owner_recid = 'default'
|
||||
"""
|
||||
|
||||
|
||||
# Rcuperation de la sequence de l'objet "partner_order_header" dans la collection : "mysy_sequence"
|
||||
retval_sequence_order = MYSY_GV.dbname['mysy_sequence'].find_one({'related_mysy_object': 'partner_order_header',
|
||||
'valide': '1', 'partner_owner_recid':str(my_partner['recid'])})
|
||||
|
|
|
@ -4925,7 +4925,7 @@ ensuite de faire la mise à jour manuellement.
|
|||
|
||||
Mais ca permet d'envoir un systeme pleinement operationnel des l'activation du compte.
|
||||
Liste des points de configuration à ajoouter
|
||||
- Les document : Il faut créer à minima les documents suivants :
|
||||
- Les documents : Il faut créer à minima les documents suivants :
|
||||
-> Demande d'inscription
|
||||
-> Confirmation Inscription
|
||||
-> Convention individuelle
|
||||
|
@ -5006,7 +5006,8 @@ def Configure_Partner_Init_Setup_No_Token(diction):
|
|||
liste_document_ref_interne = ['CONF_PRE_INSCRIPTION', 'CONF_INSCRIPTION', 'REFUS_INSCRIPTION','ANNULE_INSCRIPTION',
|
||||
'EMARGEMENT_FORMATION', 'TABLEAU EMARGEMENT', 'EMPLOYEE_CREDENTIALS', 'EMARGEMENT'
|
||||
'CONVOCATION_STAGIAIRE', 'EMPLOYEE_CREDENTIALS_FOR_LMS', 'ATTESTATION_FORMATION',
|
||||
'PART_INVOICE', 'PART_ORDER', 'CONVENTION_STAGIAIRE']
|
||||
'PART_INVOICE', 'PART_ORDER', 'CONVENTION_STAGIAIRE', 'E_DOCUMENT_SIGNATURE_REQUEST', 'E_DOCUMENT_SIGNATURE_CODE',
|
||||
'E_DOCUMENT_SIGNED']
|
||||
|
||||
"""
|
||||
Supprimer les eventuel ancienne information de ce type pour ce partenaire
|
||||
|
|
|
@ -335,7 +335,7 @@ def Add_Ressource_Humaine(diction):
|
|||
field_list = ['token', "nom", "email", "telephone", "website", "comment",'adr_adresse', 'adr_code_postal',
|
||||
'adr_ville', 'adr_pays', 'profil', 'telephone_mobile', 'linkedin',
|
||||
'facebook', 'twitter', 'prenom', 'fonction', 'civilite', 'superieur_hierarchie_id', 'ismanager',
|
||||
'groupe_prix_achat_id', 'prix_achat', 'type_contrat', 'gategorie', 'date_naissance'
|
||||
'groupe_prix_achat_id', 'prix_achat', 'type_contrat', 'gategorie', 'date_naissance', 'competence'
|
||||
]
|
||||
|
||||
incom_keys = diction.keys()
|
||||
|
@ -589,6 +589,12 @@ def Add_Ressource_Humaine(diction):
|
|||
twitter = diction['twitter']
|
||||
data['twitter'] = twitter
|
||||
|
||||
competence = ""
|
||||
if ("competence" in diction.keys()):
|
||||
if diction['competence']:
|
||||
competence = diction['competence']
|
||||
data['competence'] = competence
|
||||
|
||||
|
||||
profil = ""
|
||||
if ("profil" in diction.keys()):
|
||||
|
@ -666,7 +672,7 @@ def Update_Ressource_Humaine(diction):
|
|||
'adr_ville', 'adr_pays', 'profil', 'telephone_mobile', 'linkedin',
|
||||
'facebook', 'twitter', '_id', 'prenom', 'fonction', 'civilite',
|
||||
'superieur_hierarchie_id', 'ismanager', 'groupe_prix_achat_id', 'prix_achat', 'type_contrat',
|
||||
'gategorie', 'date_naissance']
|
||||
'gategorie', 'date_naissance', 'competence']
|
||||
|
||||
|
||||
incom_keys = diction.keys()
|
||||
|
@ -943,6 +949,10 @@ def Update_Ressource_Humaine(diction):
|
|||
twitter = diction['twitter']
|
||||
data_update['twitter'] = diction['twitter']
|
||||
|
||||
competence = ""
|
||||
if ("competence" in diction.keys()):
|
||||
data_update['competence'] = diction['competence']
|
||||
|
||||
|
||||
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue