From bfca587bb70c01ff494a0d60a86781208e307167 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ch=C3=A9rifBALDE?= Date: Sun, 22 May 2022 07:42:46 +0200 Subject: [PATCH] 22/05/22 - 7h30 --- GlobalVariable.py | 11 ++ data_indexees.csv | 310 ++++-------------------------- ela_index_bdd_classes.py | 141 +++++++------- ela_output_test_file_pandas_2.txt | 26 +-- main.py | 12 +- partners.py | 1 - prj_common.py | 65 ++++++- wrapper.py | 19 +- 8 files changed, 212 insertions(+), 373 deletions(-) diff --git a/GlobalVariable.py b/GlobalVariable.py index 664ca90..6f83363 100644 --- a/GlobalVariable.py +++ b/GlobalVariable.py @@ -87,3 +87,14 @@ INTERNAL_MAIL_SENDER = "contact@mysy-training.com" INTERNAL_TEL_RECEVER = "+33769203945" INTERNAL_TEL_SENDER = "+33769203945" + +''' +Cette variable definit le nombre max +de retour à faire sur une requet de recherche +''' +QUERY_LIMIT_ROW = 50 + +''' +Cette varibal definit le nombre max +retour à faire sur page d'acceuil ''' +MAINPAGE_QUERY_LIMIT_ROW = 100 \ No newline at end of file diff --git a/data_indexees.csv b/data_indexees.csv index 497a5f4..829cf73 100644 --- a/data_indexees.csv +++ b/data_indexees.csv @@ -1,278 +1,34 @@ ,index,mots,occurence,moyenne,id_formation,source_field -0,0,envoi,1,0.0,1652439802530303,default -1,1,lpi,1,0.0,1652439802530303,default -2,2,automatique,1,0.0,1652439802530303,default -3,3,visualiser,1,0.0,1652439802530303,default -4,4,gestion,11,0.02,1652439802530303,default -5,5,interpreteur,1,0.0,1652439802530303,default -6,6,access,1,0.0,1652439802530303,default -7,7,video,1,0.0,1652439802530303,default -8,8,tache,8,0.01,1652439802530303,default -9,9,consommation,1,0.0,1652439802530303,default -10,10,local,1,0.0,1652439802530303,default -11,11,locale,1,0.0,1652439802530303,default -12,12,cron,2,0.0,1652439802530303,default -13,13,ouvert,2,0.0,1652439802530303,default -14,14,suppression,1,0.0,1652439802530303,default -15,15,correcte,1,0.0,1652439802530303,default -16,16,demarrer,1,0.0,1652439802530303,default -17,17,desactiver,1,0.0,1652439802530303,default -18,18,notation,1,0.0,1652439802530303,default -19,19,travau,2,0.0,1652439802530303,default -20,20,horloge,2,0.0,1652439802530303,default -21,21,lightdm,2,0.0,1652439802530303,default -22,22,different,2,0.0,1652439802530303,default -23,23,standard,2,0.0,1652439802530303,default -24,24,email,1,0.0,1652439802530303,default -25,25,hote,1,0.0,1652439802530303,default -26,26,personnaliser,2,0.0,1652439802530303,default -27,27,chemin,1,0.0,1652439802530303,default -28,28,reperer,1,0.0,1652439802530303,default -29,29,environement,1,0.0,1652439802530303,default -30,30,utiliser,5,0.01,1652439802530303,default -31,31,squelette,1,0.0,1652439802530303,default -32,32,manipulation,1,0.0,1652439802530303,default -33,33,priorite,1,0.0,1652439802530303,default -34,34,agent,1,0.0,1652439802530303,default -35,35,protocole,1,0.0,1652439802530303,default -36,36,revocation,1,0.0,1652439802530303,default -37,37,personaliser,2,0.0,1652439802530303,default -38,38,recherche,1,0.0,1652439802530303,default -39,39,server,1,0.0,1652439802530303,default -40,40,uni,1,0.0,1652439802530303,default -41,41,ligne,1,0.0,1652439802530303,default -42,42,locau,2,0.0,1652439802530303,default -43,43,tort,1,0.0,1652439802530303,default -44,44,icmp,1,0.0,1652439802530303,default -45,45,sgid,1,0.0,1652439802530303,default -46,46,definir,6,0.01,1652439802530303,default -47,47,sed,1,0.0,1652439802530303,default -48,48,determiner,1,0.0,1652439802530303,default -49,49,transfert,1,0.0,1652439802530303,default -50,50,carte,2,0.0,1652439802530303,default -51,51,date,2,0.0,1652439802530303,default -52,52,creer,2,0.0,1652439802530303,default -53,53,ecrire,2,0.0,1652439802530303,default -54,54,bureau,1,0.0,1652439802530303,default -55,55,emplacement,1,0.0,1652439802530303,default -56,56,parametrage,3,0.0,1652439802530303,default -57,57,proprietaire,1,0.0,1652439802530303,default -58,58,pare,1,0.0,1652439802530303,default -59,59,ressource,1,0.0,1652439802530303,default -60,60,variable,2,0.0,1652439802530303,default -61,61,donne,5,0.01,1652439802530303,default -62,62,linu,1,0.0,1652439802530303,default -63,63,systeme,11,0.02,1652439802530303,default -64,64,nouveau,1,0.0,1652439802530303,default -65,65,execution,1,0.0,1652439802530303,default -66,66,fichier,5,0.01,1652439802530303,default -67,67,assistance,1,0.0,1652439802530303,default -68,68,qcm,6,0.01,1652439802530303,default -69,69,materielle,1,0.0,1652439802530303,default -70,70,manuelle,1,0.0,1652439802530303,default -71,71,qmail,1,0.0,1652439802530303,default -72,72,anacron,1,0.0,1652439802530303,default -73,73,protection,1,0.0,1652439802530303,default -74,74,alia,1,0.0,1652439802530303,default -75,75,information,1,0.0,1652439802530303,default -76,76,substitution,1,0.0,1652439802530303,default -77,77,atelier,11,0.02,1652439802530303,default -78,78,bash,1,0.0,1652439802530303,default -79,79,actuellement,1,0.0,1652439802530303,default -80,80,code,1,0.0,1652439802530303,default -81,81,log,3,0.0,1652439802530303,default -82,82,basique,7,0.01,1652439802530303,default -83,83,ipv,3,0.0,1652439802530303,default -84,84,syntaxe,1,0.0,1652439802530303,default -85,85,clavier,2,0.0,1652439802530303,default -86,86,automatisation,1,0.0,1652439802530303,default -87,87,fondamentau,1,0.0,1652439802530303,default -88,88,utilise,1,0.0,1652439802530303,default -89,89,bashrc,1,0.0,1652439802530303,default -90,90,prive,1,0.0,1652439802530303,default -91,91,technologie,1,0.0,1652439802530303,default -92,92,fuseau,1,0.0,1652439802530303,default -93,93,gdm,2,0.0,1652439802530303,default -94,94,horaire,1,0.0,1652439802530303,default -95,95,depanner,2,0.0,1652439802530303,default -96,96,planifie,3,0.0,1652439802530303,default -97,97,avance,1,0.0,1652439802530303,default -98,98,preparation,1,0.0,1652439802530303,default -99,99,mail,3,0.0,1652439802530303,default -100,100,concept,2,0.0,1652439802530303,default -101,101,chiffrement,1,0.0,1652439802530303,default -102,102,service,6,0.01,1652439802530303,default -103,103,suid,2,0.0,1652439802530303,default -104,104,probleme,2,0.0,1652439802530303,default -105,105,bit,1,0.0,1652439802530303,default -106,106,syslog,4,0.01,1652439802530303,default -107,107,shell,5,0.01,1652439802530303,default -108,108,securiser,2,0.0,1652439802530303,default -109,109,demon,2,0.0,1652439802530303,default -110,110,client,2,0.0,1652439802530303,default -111,111,interface,6,0.01,1652439802530303,default -112,112,fonctionnement,1,0.0,1652439802530303,default -113,113,rsyslog,1,0.0,1652439802530303,default -114,114,droit,4,0.01,1652439802530303,default -115,115,auditer,3,0.0,1652439802530303,default -116,116,sequence,1,0.0,1652439802530303,default -117,117,planifier,1,0.0,1652439802530303,default -118,118,activer,1,0.0,1652439802530303,default -119,119,feu,1,0.0,1652439802530303,default -120,120,theme,1,0.0,1652439802530303,default -121,121,g,1,0.0,1652439802530303,default -122,122,public,1,0.0,1652439802530303,default -123,123,gnupg,1,0.0,1652439802530303,default -124,124,limite,2,0.0,1652439802530303,default -125,125,accueil,1,0.0,1652439802530303,default -126,126,speciau,1,0.0,1652439802530303,default -127,127,tunnel,2,0.0,1652439802530303,default -128,128,dns,3,0.0,1652439802530303,default -129,129,simple,1,0.0,1652439802530303,default -130,130,ntp,3,0.0,1652439802530303,default -131,131,exim,1,0.0,1652439802530303,default -132,132,imprimante,2,0.0,1652439802530303,default -133,133,comprendre,5,0.01,1652439802530303,default -134,134,financement,1,0.0,1652439802530303,default -135,135,transfer,1,0.0,1652439802530303,default -136,136,configuration,21,0.03,1652439802530303,default -137,137,utc,1,0.0,1652439802530303,default -138,138,password,2,0.0,1652439802530303,default -139,139,commenter,6,0.01,1652439802530303,default -140,140,loop,1,0.0,1652439802530303,default -141,141,associe,2,0.0,1652439802530303,default -142,142,affichage,3,0.0,1652439802530303,default -143,143,reseau,9,0.01,1652439802530303,default -144,144,awk,1,0.0,1652439802530303,default -145,145,notamment,1,0.0,1652439802530303,default -146,146,routage,1,0.0,1652439802530303,default -147,147,regionau,1,0.0,1652439802530303,default -148,148,mot,2,0.0,1652439802530303,default -149,149,tester,1,0.0,1652439802530303,default -150,150,org,1,0.0,1652439802530303,default -151,151,analyser,1,0.0,1652439802530303,default -152,152,file,2,0.0,1652439802530303,default -153,153,connaissance,8,0.01,1652439802530303,default -154,154,administrative,2,0.0,1652439802530303,default -155,155,passe,2,0.0,1652439802530303,default -156,156,sql,3,0.0,1652439802530303,default -157,157,role,2,0.0,1652439802530303,default -158,158,sendmail,1,0.0,1652439802530303,default -159,159,ats,1,0.0,1652439802530303,default -160,160,securite,3,0.0,1652439802530303,default -161,161,commande,9,0.01,1652439802530303,default -162,162,superuser,1,0.0,1652439802530303,default -163,163,route,1,0.0,1652439802530303,default -164,164,mta,3,0.0,1652439802530303,default -165,165,principale,1,0.0,1652439802530303,default -166,166,path,2,0.0,1652439802530303,default -167,167,conditionnel,1,0.0,1652439802530303,default -168,168,prevue,1,0.0,1652439802530303,default -169,169,cle,1,0.0,1652439802530303,default -170,170,courant,1,0.0,1652439802530303,default -171,171,authentification,2,0.0,1652439802530303,default -172,172,architecture,1,0.0,1652439802530303,default -173,173,internationalisation,1,0.0,1652439802530303,default -174,174,principe,1,0.0,1652439802530303,default -175,175,cup,1,0.0,1652439802530303,default -176,176,nmap,1,0.0,1652439802530303,default -177,177,supprimer,2,0.0,1652439802530303,default -178,178,executable,1,0.0,1652439802530303,default -179,179,kdm,2,0.0,1652439802530303,default -180,180,bash_profile,1,0.0,1652439802530303,default -181,181,wrapper,1,0.0,1652439802530303,default -182,182,audit,2,0.0,1652439802530303,default -183,183,installation,1,0.0,1652439802530303,default -184,184,principau,4,0.01,1652439802530303,default -185,185,arret,1,0.0,1652439802530303,default -186,186,modifier,5,0.01,1652439802530303,default -187,187,ordre,1,0.0,1652439802530303,default -188,188,shebang,1,0.0,1652439802530303,default -189,189,demarrage,1,0.0,1652439802530303,default -190,190,inutilise,1,0.0,1652439802530303,default -191,191,passage,1,0.0,1652439802530303,default -192,192,installer,1,0.0,1652439802530303,default -193,193,action,1,0.0,1652439802530303,default -194,194,propre,4,0.01,1652439802530303,default -195,195,visuel,1,0.0,1652439802530303,default -196,196,essentiel,1,0.0,1652439802530303,default -197,197,graphique,4,0.01,1652439802530303,default -198,198,script,6,0.01,1652439802530303,default -199,199,sortie,1,0.0,1652439802530303,default -200,200,resolution,2,0.0,1652439802530303,default -201,201,groupe,3,0.0,1652439802530303,default -202,202,pool,1,0.0,1652439802530303,default -203,203,postfi,1,0.0,1652439802530303,default -204,204,netstat,1,0.0,1652439802530303,default -205,205,processu,1,0.0,1652439802530303,default -206,206,acce,2,0.0,1652439802530303,default -207,207,reconfiguration,1,0.0,1652439802530303,default -208,208,openssh,2,0.0,1652439802530303,default -209,209,redemarrage,1,0.0,1652439802530303,default -210,210,configurer,11,0.02,1652439802530303,default -211,211,logrotate,2,0.0,1652439802530303,default -212,212,effectuer,2,0.0,1652439802530303,default -213,213,heure,4,0.01,1652439802530303,default -214,214,connexion,3,0.0,1652439802530303,default -215,215,fourni,1,0.0,1652439802530303,default -216,216,udp,2,0.0,1652439802530303,default -217,217,difference,2,0.0,1652439802530303,default -218,218,xdm,1,0.0,1652439802530303,default -219,219,cidr,1,0.0,1652439802530303,default -220,220,e,3,0.0,1652439802530303,default -221,221,internet,1,0.0,1652439802530303,default -222,222,requeter,1,0.0,1652439802530303,default -223,223,test,2,0.0,1652439802530303,default -224,224,utilisation,5,0.01,1652439802530303,default -225,225,ouverture,1,0.0,1652439802530303,default -226,226,table,1,0.0,1652439802530303,default -227,227,memoire,1,0.0,1652439802530303,default -228,228,accorde,2,0.0,1652439802530303,default -229,229,fonction,1,0.0,1652439802530303,default -230,230,vulnerabilite,1,0.0,1652439802530303,default -231,231,connecte,2,0.0,1652439802530303,default -232,232,pam,1,0.0,1652439802530303,default -233,233,ntpq,1,0.0,1652439802530303,default -234,234,verifier,1,0.0,1652439802530303,default -235,235,programmer,1,0.0,1652439802530303,default -236,236,serveur,9,0.01,1652439802530303,default -237,237,impression,4,0.01,1652439802530303,default -238,238,selectionner,1,0.0,1652439802530303,default -239,239,strategie,1,0.0,1652439802530303,default -240,240,parametre,4,0.01,1652439802530303,default -241,241,gerer,10,0.02,1652439802530303,default -242,242,depannage,1,0.0,1652439802530303,default -243,243,fonctionnalite,1,0.0,1652439802530303,default -244,244,administration,3,0.0,1652439802530303,default -245,245,sujet,12,0.02,1652439802530303,default -246,246,distante,1,0.0,1652439802530303,default -247,247,dossier,1,0.0,1652439802530303,default -248,248,maintenir,2,0.0,1652439802530303,default -249,249,environnement,4,0.01,1652439802530303,default -250,250,fixer,1,0.0,1652439802530303,default -251,251,frequemment,1,0.0,1652439802530303,default -252,252,boucle,1,0.0,1652439802530303,default -253,253,accessibilite,2,0.0,1652439802530303,default -254,254,port,3,0.0,1652439802530303,default -255,255,window,1,0.0,1652439802530303,default -256,256,automatiser,1,0.0,1652439802530303,default -257,257,gestionnaire,3,0.0,1652439802530303,default -258,258,utilisateur,13,0.02,1652439802530303,default -259,259,sudo,2,0.0,1652439802530303,default -260,260,ajouter,2,0.0,1652439802530303,default -261,261,trouver,1,0.0,1652439802530303,default -262,262,correctement,1,0.0,1652439802530303,default -263,263,certification,1,0.0,1652439802530303,default -264,264,messagerie,1,0.0,1652439802530303,default -265,265,entrepot,1,0.0,1652439802530303,default -266,266,compatibilite,1,0.0,1652439802530303,default -267,267,timezone,1,0.0,1652439802530303,default -268,268,organiser,1,0.0,1652439802530303,default -269,269,shadow,1,0.0,1652439802530303,default -270,270,masque,1,0.0,1652439802530303,default -271,271,arreter,1,0.0,1652439802530303,default -272,272,connaitre,6,0.01,1652439802530303,default -273,273,ajout,1,0.0,1652439802530303,default -274,274,base,10,0.02,1652439802530303,default -275,275,compte,4,0.01,1652439802530303,default -276,276,ssh,1,0.0,1652439802530303,default +0,0,infrastructure,2,0.12," +concevoir-une-infrastructure-de-reseau-dans-azure +-4",default +1,1,concevoir,2,0.12," +concevoir-une-infrastructure-de-reseau-dans-azure +-4",default +2,2,decouvrez,1,0.06," +concevoir-une-infrastructure-de-reseau-dans-azure +-4",default +3,3,ressource,1,0.06," +concevoir-une-infrastructure-de-reseau-dans-azure +-4",default +4,4,reseau,3,0.18," +concevoir-une-infrastructure-de-reseau-dans-azure +-4",default +5,5,connecter,1,0.06," +concevoir-une-infrastructure-de-reseau-dans-azure +-4",default +6,6,azure,3,0.18," +concevoir-une-infrastructure-de-reseau-dans-azure +-4",default +7,7,flexible,1,0.06," +concevoir-une-infrastructure-de-reseau-dans-azure +-4",default +8,8,comment,1,0.06," +concevoir-une-infrastructure-de-reseau-dans-azure +-4",default +9,9,locau,1,0.06," +concevoir-une-infrastructure-de-reseau-dans-azure +-4",default +10,10,securisee,1,0.06," +concevoir-une-infrastructure-de-reseau-dans-azure +-4",default diff --git a/ela_index_bdd_classes.py b/ela_index_bdd_classes.py index 24580dd..73b96e3 100644 --- a/ela_index_bdd_classes.py +++ b/ela_index_bdd_classes.py @@ -492,75 +492,80 @@ Elle retourne l'id_externe de la formation ''' def ela_recherche_tokens(sentence): + try: + tab_training_id = [] + status, tab_tokens = ls.Ela_Tokenize(sentence) + if( status is False): + return False - tab_training_id = [] - status, tab_tokens = ls.Ela_Tokenize(sentence) - if( status is False): + status, tab_tokens2 = ls.Ela_remove_stop_words(tab_tokens) + if (status is False): + return False + + status, tab_tokens3 = ls.Ela_remove_pronoun(tab_tokens2) + if (status is False): + return False + + ''' + note : 26/03 : Faire evolution la fonction ici pour + gerer les mots qui ne doivent pas etre racinisé comme le cas du mot "Responsive" + + De manière plus globale, il faudrait exclure certains mot de la racinisation. + + ''' + #print(" VERIF : "+str(tab_tokens3)) + + status, tab_tokens4 = ls.Ela_stemmize_search(tab_tokens3) + if( status is False): + return False + + #print(" VERIF APRES STEMISATION : " + str(tab_tokens4)) + + tab_tokens4.sort() + + ''' + tab_tokens4 contient la liste des mots à rechercher. + En suite pour chaque mot de "tab_tokens4" on regarde dans la table "elaindex" + a quoi cela pourrait correspondre. + ''' + + # collection + collection = MYSY_GV.dbname["elaindex"] + + #print(" mot recherché tab_tokens4 (initialement) = "+str(tab_tokens4)) + + status, new_tab_tokens4 = mysy_recherche_levenshtein(tab_tokens4) + if( status is False): + mycommon.myprint(str(inspect.stack()[0][3]) + " Recherche : mysy_recherche_levenshtein return FALSE ") + return [] + + #print(" ### les nouveaux mots recherchés new_tab_tokens4 = " + str(new_tab_tokens4)) + + pipe2 = [{ '$match': { 'mots': { '$in': new_tab_tokens4 } } }, + { '$group': { + '_id': "$id_formation", + 'count_class': {'$sum': 1}, + 'sum_occurence': {'$sum': '$occurence'} + } + }, + {'$sort': {'count_class': -1, 'sum_occurence': -1}}, + {'$limit': MYSY_GV.QUERY_LIMIT_ROW} + ] + # ici limite à 4 + for result in collection.aggregate(pipe2): + tab_training_id.append(str(result["_id"])) + #print(result) + + #print("resultat tab_training_id = "+str(tab_training_id)) + + + + return tab_training_id + except Exception as e: + exc_type, exc_obj, exc_tb = sys.exc_info() + mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False - status, tab_tokens2 = ls.Ela_remove_stop_words(tab_tokens) - if (status is False): - return False - - status, tab_tokens3 = ls.Ela_remove_pronoun(tab_tokens2) - if (status is False): - return False - - ''' - note : 26/03 : Faire evolution la fonction ici pour - gerer les mots qui ne doivent pas etre racinisé comme le cas du mot "Responsive" - - De manière plus globale, il faudrait exclure certains mot de la racinisation. - - ''' - #print(" VERIF : "+str(tab_tokens3)) - - status, tab_tokens4 = ls.Ela_stemmize_search(tab_tokens3) - if( status is False): - return False - - #print(" VERIF APRES STEMISATION : " + str(tab_tokens4)) - - tab_tokens4.sort() - - ''' - tab_tokens4 contient la liste des mots à rechercher. - En suite pour chaque mot de "tab_tokens4" on regarde dans la table "elaindex" - a quoi cela pourrait correspondre. - ''' - - # collection - collection = MYSY_GV.dbname["elaindex"] - - #print(" mot recherché tab_tokens4 (initialement) = "+str(tab_tokens4)) - - status, new_tab_tokens4 = mysy_recherche_levenshtein(tab_tokens4) - if( status is False): - mycommon.myprint(str(inspect.stack()[0][3]) + " Recherche : mysy_recherche_levenshtein return FALSE ") - return [] - - #print(" ### les nouveaux mots recherchés new_tab_tokens4 = " + str(new_tab_tokens4)) - - pipe2 = [{ '$match': { 'mots': { '$in': new_tab_tokens4 } } }, - { '$group': { - '_id': "$id_formation", - 'count_class': {'$sum': 1}, - 'sum_occurence': {'$sum': '$occurence'} - } - }, - {'$sort': {'count_class': -1, 'sum_occurence': -1}} - ] - - for result in collection.aggregate(pipe2): - tab_training_id.append(str(result["_id"])) - #print(result) - - #print("resultat tab_training_id = "+str(tab_training_id)) - - - - return tab_training_id - ''' Cette fonction essayer de faire une recherche de leveinstein @@ -863,9 +868,11 @@ def ela_recherche_article_avis_tokens(sentence): 'sum_occurence': {'$sum': '$occurence'} } }, - {'$sort': {'count_class': -1, 'sum_occurence': -1}} + {'$sort': {'count_class': -1, 'sum_occurence': -1}}, + {'$limit': MYSY_GV.QUERY_LIMIT_ROW} ] + # ici limit on rows for result in collection.aggregate(pipe2): tab_training_id.append(str(result["_id"])) # print(result) diff --git a/ela_output_test_file_pandas_2.txt b/ela_output_test_file_pandas_2.txt index 8005cce..8fc1d74 100644 --- a/ela_output_test_file_pandas_2.txt +++ b/ela_output_test_file_pandas_2.txt @@ -1,14 +1,14 @@ - mots occurence moyenne id_formation source_field -0 envoi 1 0.0 1652439802530303 default -1 lpi 1 0.0 1652439802530303 default -2 automatique 1 0.0 1652439802530303 default -3 visualiser 1 0.0 1652439802530303 default -4 gestion 11 0.02 1652439802530303 default -.. ... ... ... ... ... -272 connaitre 6 0.01 1652439802530303 default -273 ajout 1 0.0 1652439802530303 default -274 base 10 0.02 1652439802530303 default -275 compte 4 0.01 1652439802530303 default -276 ssh 1 0.0 1652439802530303 default + mots ... source_field +0 infrastructure ... default +1 concevoir ... default +2 decouvrez ... default +3 ressource ... default +4 reseau ... default +5 connecter ... default +6 azure ... default +7 flexible ... default +8 comment ... default +9 locau ... default +10 securisee ... default -[277 rows x 5 columns] \ No newline at end of file +[11 rows x 5 columns] \ No newline at end of file diff --git a/main.py b/main.py index 47ded55..a8039c8 100644 --- a/main.py +++ b/main.py @@ -1026,13 +1026,23 @@ def CronUSerMessage_Mail(): ''' Juste une API pour tester de ptite choses ''' +@app.route('/myclass/api/OrderClassRandomly/', methods=['GET','POST']) +@crossdomain(origin='*') +def OrderClassRandomly(): + # On recupere le corps (payload) de la requete + payload = request.form.to_dict() + print(" ### payload = ", payload) + status, result = mycommon.FormationAlaUne() + return jsonify(status=status, message=result) + + @app.route('/myclass/api/testch/', methods=['GET','POST']) @crossdomain(origin='*') def testch(): # On recupere le corps (payload) de la requete payload = request.form.to_dict() print(" ### payload = ", payload) - status, result = mycommon.Reordertab() + status, result = mycommon.FormationAlaUne() return jsonify(status=status, message=result) if __name__ == '__main__': diff --git a/partners.py b/partners.py index 2873f4f..3ae72c7 100644 --- a/partners.py +++ b/partners.py @@ -502,7 +502,6 @@ def update_partner_account(diction): return_document=ReturnDocument.AFTER ) - if (ret_val and ret_val['_id']): mycommon.myprint(str(inspect.stack()[0][3]) + "Le partenaire a bien ete mise à jour =" + str(ret_val['_id'])) return True, "Le partenaire a bien ete mise à jour" diff --git a/prj_common.py b/prj_common.py index d146130..560f26b 100644 --- a/prj_common.py +++ b/prj_common.py @@ -14,6 +14,7 @@ import os import csv import inspect import sys +import pandas as pd from datetime import datetime from pymongo import ReturnDocument from unidecode import unidecode @@ -786,11 +787,69 @@ def Reordertab(): new_tab.append(table[cpt]) new_tab_cpt = new_tab_cpt +1 - - - return True, new_tab except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() print(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) return False, [] + + +''' +Pour etre en mesure d'afficher que 100 de X formations qui existent +en base, un systeme de "aLaUne" va etre mis en place +Un cron va a periodicité données choisir de manière aleatoire +les formations à afficher à la une.''' +def FormationAlaUne(): + try: + + coll_name = MYSY_GV.dbname['myclass'] + df = pd.DataFrame(list(coll_name.find({'valide':'1'},{'_id':1, 'external_code':1}))) + df['isalaune'] = '0' + + + taille2 = df.shape[0] + affectation = 0 + while( affectation < MYSY_GV.MAINPAGE_QUERY_LIMIT_ROW ): + affectation = affectation + 1 + cpt = random.randint(0, taille2) + df.at[cpt, 'isalaune'] = '1' + + i = 0 + tab_id = [] + while( i < taille2): + if( str(df.at[i,'isalaune']) == "1"): + #print(str(df.at[i,'external_code']) +" = "+str(df.at[i,'isalaune'])) + tab_id.append(str(df.at[i,'_id'])) + i = i+1 + + ''' + Suppression des ancien "is a la une" + ''' + # update many with "num" field greater than 100 + result = coll_name.update_many( + {"isalaune": "1"}, + { + "$set": {"isalaune": '0'} + }) + print("raw:", result.raw_result) + print("acknowledged:", result.acknowledged) + print("matched_count:", result.matched_count) + + + + for val in tab_id: + print(" val ="+val) + ret_val = coll_name.find_one_and_update( + {'_id': ObjectId(str(val)), 'valide':'1', 'locked':'0'}, + {"$set": {'isalaune':'1'}}, + return_document=ReturnDocument.AFTER + ) + + + + + return True, "ok" + except Exception as e: + exc_type, exc_obj, exc_tb = sys.exc_info() + print(str(inspect.stack()[0][3]) + " -" + str(e) + " - Line : " + str(exc_tb.tb_lineno)) + return False, "KO" diff --git a/wrapper.py b/wrapper.py index f506829..100336b 100644 --- a/wrapper.py +++ b/wrapper.py @@ -177,7 +177,7 @@ def get_all_class(diction): if diction['user_state']: mydata['user_state'] = diction['user_state'] - print(" My Data ="+str(mydata)) + #print(" My Data ="+str(mydata)) coll_name = MYSY_GV.dbname['myclass'] @@ -185,9 +185,10 @@ def get_all_class(diction): insertObject = [] - - for x in coll_name.find({'valide':'1', 'locked':'0'}, {"_id": 0, "indexed": 0, "indexed_desc": 0, "indexed_obj": 0, "indexed_title": 0, - "valide": 0, "locked": 0, "partner_owner_recid": 0, }).sort( + for x in coll_name.find({'valide':'1', 'locked':'0', 'isalaune':'1'}, {"_id": 0, "indexed": 0, "indexed_desc": 0, "indexed_obj": 0, "indexed_title": 0, + "valide": 0, "locked": 0, "partner_owner_recid": 0, }).\ + limit(MYSY_GV.MAINPAGE_QUERY_LIMIT_ROW).\ + sort( [ ("_id", pymongo.DESCENDING),]): @@ -369,9 +370,7 @@ def recherche_text_simple(diction): coll_name = MYSY_GV.dbname['myclass'] - print(" Dans la recherch TIPS , les critère = " + str(certif_crit) + " la langue = " + str( - lang_crit) + " price = " + str(price_crit)+" support = "+str(support_crit), - " price_crit = "+str(price_crit), "duration_crit = "+str(duration_crit)) + ''' A present mise à jour de la table "user_recherche" avec les resultats trouvés @@ -399,9 +398,7 @@ def recherche_text_simple(diction): la valeur nb_result permettra de savoir si la requete a donnée un resultat. si ce n'est pas le cas, il faudra à la fin enregistrer la requete avec un result a vide''' nb_result = 0 - for x in coll_name.find(({"$and": [{"external_code": {"$in": final_message2}}, - certif_crit, lang_crit, type_crit, price_crit, - support_crit, duration_crit]}), + for x in coll_name.find({"external_code": {"$in": final_message2}}, {"_id": 0, "indexed": 0, "indexed_desc": 0, "indexed_obj": 0, "indexed_title": 0, "valide": 0, "locked": 0, "partner_owner_recid": 0, }): @@ -545,7 +542,7 @@ def recherche_text_simple(diction): ''' #print(insertObject) - + #print(" result ok ") ''' en cas de resultat vide, enregsitrement de la requete de recherche avec les filtres associé''' if (nb_result == 0): my_recid = {}