From 927a2514c1701c96d2f1aaf91dbf34b6e99c7c73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ch=C3=A9rifBALDE?= Date: Sun, 31 Jul 2022 12:06:24 +0200 Subject: [PATCH] 30/07/22 - 14h30 --- class_mgt.py | 30 +++++++++++++++++++++--------- main.py | 12 ++++++++++++ prj_common.py | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 9 deletions(-) diff --git a/class_mgt.py b/class_mgt.py index 1ea7a24..255ca1d 100644 --- a/class_mgt.py +++ b/class_mgt.py @@ -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'] diff --git a/main.py b/main.py index 9b5e50c..4f05f0f 100644 --- a/main.py +++ b/main.py @@ -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) diff --git a/prj_common.py b/prj_common.py index c8ecde7..5f32f66 100644 --- a/prj_common.py +++ b/prj_common.py @@ -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 \ No newline at end of file