30/07/22 - 14h30

master
ChérifBALDE 2022-07-31 12:06:24 +02:00 committed by cherif
parent 7de52cf0f9
commit 927a2514c1
3 changed files with 67 additions and 9 deletions

View File

@ -2,7 +2,7 @@
Ce fichier traite tout ce qui est liée à la gestion des formations
'''
import pymongo
from pymongo import MongoClient
import json
from bson import ObjectId
@ -47,7 +47,8 @@ def add_class(diction):
# field_list.
'''
field_list = ['external_code', 'title', 'description', 'trainer', 'institut_formation', 'distantiel', 'presentiel',
'price', 'url','duration', 'duration_unit', 'token', 'plus_produit', 'mots_cle','domaine', 'internal_url', 'zone_diffusion']
'price', 'url','duration', 'duration_unit', 'token', 'plus_produit', 'mots_cle','domaine',
'internal_url', 'zone_diffusion', 'metier']
incom_keys = diction.keys()
for val in incom_keys:
if val not in field_list:
@ -124,6 +125,12 @@ def add_class(diction):
if diction['description']:
mydata['description'] = diction['description']
if ("metier" in diction.keys()):
if diction['metier']:
mydata['metier'] = diction['metier']
if ("trainer" in diction.keys()):
if diction['trainer']:
mydata['trainer'] = diction['trainer']
@ -303,7 +310,7 @@ def update_class(diction):
'''
field_list = ['external_code', 'title', 'description', 'trainer', 'institut_formation', 'distantiel',
'presentiel','price', 'url', 'duration', 'token','plus_produit', 'mots_cle',
'domaine', 'internal_code', 'internal_url','zone_diffusion']
'domaine', 'internal_code', 'internal_url','zone_diffusion', 'metier']
incom_keys = diction.keys()
for val in incom_keys:
@ -374,6 +381,9 @@ def update_class(diction):
if ("trainer" in diction.keys()):
mydata['trainer'] = diction['trainer']
if ("metier" in diction.keys()):
mydata['metier'] = diction['metier']
if ("institut_formation" in diction.keys()):
mydata['institut_formation'] = diction['institut_formation']
@ -1422,7 +1432,7 @@ def add_class_mass(file=None, Folder=None, diction=None):
# Verification que les noms des colonne sont bien corrects"
'''
field_list = ['external_code', 'title', 'description', 'trainer', 'institut_formation', 'distantiel', 'presentiel',
'price', 'domaine', 'url','duration', 'plus_produit', 'mots_cle', 'zone_diffusion']
'price', 'domaine', 'url','duration', 'plus_produit', 'mots_cle', 'zone_diffusion', 'metier']
total_rows = len(df)
@ -1453,6 +1463,7 @@ def add_class_mass(file=None, Folder=None, diction=None):
mydata['presentiel'] = str(df['presentiel'].values[n])
mydata['distantiel'] = str(df['distantiel'].values[n])
mydata['price'] = str(df['price'].values[n])
mydata['metier'] = str(df['metier'].values[n])
'''
@ -1510,7 +1521,7 @@ def get_class_by_metier(diction):
# Ici on doit mettre tous les champs possible (obligatoire ou non) de la BDD dans la liste
# field_list.
'''
field_list = ['metier', 'token' 'user_ip', 'user_country_code',
field_list = ['metier', 'token','user_ip', 'user_country_code',
'user_country_name', 'user_city', 'user_postal', 'user_latitude', 'user_longitude', 'user_state']
incom_keys = diction.keys()
@ -1537,9 +1548,9 @@ def get_class_by_metier(diction):
my_metier = ""
my_token = ""
if ("internal_url" in diction.keys()):
if ("metier" in diction.keys()):
if diction['metier']:
my_metier = diction['internal_url']
my_metier = str(diction['metier']).lower()
if ("token" in diction.keys()):
if diction['token']:
@ -1550,12 +1561,13 @@ def get_class_by_metier(diction):
RetObject = []
for retVal in coll_name.find({'valide': '1', 'locked': '0', 'metier': str(my_metier)},
{"_id": 0, "indexed": 0, "indexed_desc": 0, "indexed_obj": 0, "indexed_title": 0,
"valide": 0, "locked": 0, "partner_owner_recid": 0, }
):
).sort([("price", pymongo.ASCENDING), ("date_update", pymongo.DESCENDING), ]):
print(" retval " + str(retVal))
#print(" retval " + str(retVal))
if ("description" in retVal.keys()):
tmp_str = retVal['description']

12
main.py
View File

@ -1173,6 +1173,18 @@ def get_class_by_metier():
status, result = cm.get_class_by_metier(payload)
return jsonify(status=status, message=result)
'''
Cette API met à jour les formations en ajoutant les metier
'''
@app.route('/myclass/api/UpdateMetier/', methods=['GET','POST'])
@crossdomain(origin='*')
def UpdateMetier():
status = mycommon.UpdateMetier()
return jsonify(status=status)
if __name__ == '__main__':
print(" debut api")
context = SSL.Context(SSL.SSLv23_METHOD)

View File

@ -1483,3 +1483,37 @@ def CreateInternalUrl(sentence=None):
print(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
return False, ""
'''
Cette fonction va lire un fichier ou un collection tmp_class_metier(_id, metier) et va mettre à jour les metier
'''
def UpdateMetier():
try:
myclass_coll = MYSY_GV.dbname["myclass"]
myclass_tmp_metier_coll = MYSY_GV.dbname["tmp_class_metier"]
my_data = []
i = 0
for x in myclass_tmp_metier_coll.find():
mymetier = str(x['metier']).lower()
ret_val2 = myclass_coll.find_one_and_update({"_id": ObjectId(str(x['class_id']))},
{"$set": {"metier":mymetier }},
upsert=True,
return_document=ReturnDocument.AFTER
)
if ( (ret_val2 is False) or (ret_val2['_id'] is False) ):
mycommon.myprint("Impossible de mettre à jour la formation _id =" + str(x['class_id']) )
return False
i = i+1
print(str(i)+" Formation (metier) ont été mises à jour")
return True
except Exception as e:
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))
return False