diff --git a/hal/dict_scimago_core.py b/hal/dict_scimago_core.py index 45364dfbbd31aad607a39e9ac717a8c8f461cc1d..92b0761cfa196f163e3534c1dc9c0cd348a904e6 100644 --- a/hal/dict_scimago_core.py +++ b/hal/dict_scimago_core.py @@ -3,6 +3,7 @@ # URLs SCIMAGO pour tous les les domaines informatique dict_scimago = { + "SCIMago-J-2022.csv":'https://www.scimagojr.com/journalrank.php?year=2022&type=j&out=xls', "SCIMago-J-2021.csv":'https://www.scimagojr.com/journalrank.php?year=2021&type=j&out=xls', "SCIMago-J-2020.csv":'https://www.scimagojr.com/journalrank.php?year=2020&type=j&out=xls', "SCIMago-J-2019.csv":'https://www.scimagojr.com/journalrank.php?year=2019&type=j&out=xls', @@ -17,12 +18,14 @@ dict_scimago = { # URLs CORE pour les confs en informatique dict_core = { + "CORE-C-2023.csv":"http://portal.core.edu.au/conf-ranks/?search=&by=all&source=CORE2023&sort=arank&page=1&do=Export", "CORE-C-2021.csv":"http://portal.core.edu.au/conf-ranks/?search=&by=all&source=CORE2021&sort=arank&page=1&do=Export", "CORE-C-2020.csv":"http://portal.core.edu.au/conf-ranks/?search=&by=all&source=CORE2020&sort=arank&page=1&do=Export", "CORE-C-2018.csv":"http://portal.core.edu.au/conf-ranks/?search=&by=all&source=CORE2018&sort=arank&page=1&do=Export", "CORE-C-2017.csv":"http://portal.core.edu.au/conf-ranks/?search=&by=all&source=CORE2017&sort=arank&page=1&do=Export", "CORE-C-2014.csv":"http://portal.core.edu.au/conf-ranks/?search=&by=all&source=CORE2014&sort=arank&page=1&do=Export", - "CORE-C-2013.csv":"http://portal.core.edu.au/conf-ranks/?search=&by=all&source=CORE2013&sort=arank&page=1&do=Export" + "CORE-C-2013.csv":"http://portal.core.edu.au/conf-ranks/?search=&by=all&source=CORE2013&sort=arank&page=1&do=Export", + "CORE-C-2010.csv":"http://portal.core.edu.au/conf-ranks/?search=&by=all&source=ERA2010&sort=arank&page=1&do=Export" } diff --git a/hal/scriptupdatehalranking.py b/hal/scriptupdatehalranking.py index a52f9ca83bba32461d12d5be334a088c25c3bd4b..40ddc667c8febf9984936e12a4b76f9d9a0cd77c 100644 --- a/hal/scriptupdatehalranking.py +++ b/hal/scriptupdatehalranking.py @@ -74,6 +74,7 @@ def script_verify_hal_ranking(name_user, firstname_user, id_hal_user, name_file) datey = int(datey[0]) journ = "" conf = "" + note = "" contributor_name = pub["contributorFullName_s"] contributor_id = str(pub["contributorId_i"]) owners = str(pub["owners_i"]) @@ -137,11 +138,13 @@ def script_verify_hal_ranking(name_user, firstname_user, id_hal_user, name_file) if art_file != None : list_journals = [] - csvscimago = csv.reader(open('ranking/{0}'.format(art_file),"r"), delimiter=str('|')) - for row in csvscimago : + csvscimago = open('ranking/{0}'.format(art_file),"r") + csvscimagoreader = csv.reader(csvscimago, delimiter=str('|')) + for row in csvscimagoreader : list_journals.append(row[0]) newjourn = "" + note = "" try : result = difflib.get_close_matches(journ,list_journals) print("For journal '{0}' results are '{1}'".format(journ, result)) @@ -150,21 +153,35 @@ def script_verify_hal_ranking(name_user, firstname_user, id_hal_user, name_file) print("DIFFERENCE between {0} and {1} --> UPDATE".format(journ,result[0])) #reponse.append("ART|{0}|{1}|DIFF|{2}|{3}|{4}".format(title,datey, journ, result[0],allowners)) res = "DIFF" + ## find note + print(f"find note art search {result[0]}") + csvscimago.seek(0) + for row in csvscimagoreader : + if result[0] == row[0] : + note = row[1] + #row = ["ART",title,datey,"DIFF",journ,result[0],allowners] else : #reponse.append("ART|{0}|{1}|CORRECT|{2}||{3}".format(title,datey,journ, allowners)) res = "CORRECT" + ## find note + print(f"find note art search {result[0]}") + csvscimago.seek(0) + for row in csvscimagoreader : + if result[0] == row[0] : + note = row[1] #row = ["ART",title,datey,"DIFF",journ,result[0],allowners] except Exception as e : print("Journal {0} NOT FOUND in list".format(journ)) #reponse.append("ART|{0}|{1}|NONE|{2}||{3}".format(title,datey, journ, allowners)) res = "NONE" + print("") - row = ["ART",title,uri,datey,res,journ,newjourn,allowners] + row = ["ART",title,uri,datey,res,journ,newjourn,note,allowners] else : print("Pas de correspondance de fichier") res = "TOO OLD" - row = ["ART",title,uri,datey,res,journ,'',allowners] + row = ["ART",title,uri,datey,res,journ,'',note,allowners] elif pub["docType_s"] == "COMM" : try : @@ -206,12 +223,14 @@ def script_verify_hal_ranking(name_user, firstname_user, id_hal_user, name_file) if conf_file != None : list_confs = [] list_confs_acr = [] - csvcore = csv.reader(open('ranking/{0}'.format(conf_file),"r"), delimiter=str('|')) - for row in csvcore : + csvcore = open('ranking/{0}'.format(conf_file),"r") + csvcorereader = csv.reader(csvcore, delimiter=str('|')) + for row in csvcorereader : list_confs.append(row[0]) list_confs_acr.append(row[1]) newconf = "" + note ="" try : @@ -219,6 +238,12 @@ def script_verify_hal_ranking(name_user, firstname_user, id_hal_user, name_file) if conf in list_confs : res = "CORRECT" matchconf = True + ## find note + print("find note comm") + csvcore.seek(0) + for row in csvcorereader : + if conf == row[0] : + note = row[2] else : acro_conf = get_conf_acronym(conf) @@ -226,16 +251,33 @@ def script_verify_hal_ranking(name_user, firstname_user, id_hal_user, name_file) if acro_conf in list_confs_acr : res = "CORRECT ACR" matchconf = True + ## find note + print("find note comm") + csvcore.seek(0) + for row in csvcorereader : + if acro_conf == row[1] : + note = row[2] if not matchconf : result = difflib.get_close_matches(conf,list_confs) if conf == result[0] : res = "CORRECT BIZZARE" matchconf = True + ## find note + print("find note comm") + csvcore.seek(0) + for row in csvcorereader : + if result[0] == row[0] : + note = row[2] if conf != result[0] : newconf = result[0] print("DIFFERENCE between {0} and {1} --> UPDATE".format(conf,result[0])) res = "DIFF" matchconf = True + ## find note + csvcore.seek(0) + for row in csvcorereader : + if result[0] == row[0] : + note = row[2] except Exception as e : @@ -268,14 +310,14 @@ def script_verify_hal_ranking(name_user, firstname_user, id_hal_user, name_file) #reponse.append("COMM|{0}|{1}|NONE|{2}||{3}".format(title,datey,conf, allowners)) res = "NONE" """ print("") - row = ["COMM",title,uri,datey,res,conf,newconf,allowners] + row = ["COMM",title,uri,datey,res,conf,newconf,note,allowners] else : print("Pas de correspondance de fichier") res = "TOO OLD" - row = ["COMM",title,uri,datey,res,conf,'',allowners] + row = ["COMM",title,uri,datey,res,conf,'',note,allowners] else : #other types of publis - row = [pub["docType_s"],title,'','','','','',''] + row = [pub["docType_s"],title,'','','','','','',''] csvwriter.writerow(row) @@ -288,12 +330,12 @@ def script_verify_hal_ranking(name_user, firstname_user, id_hal_user, name_file) for row in csvreader: if contrib_id != "": - if contrib_id in row[7] : - row[7] = "Y" + if contrib_id in row[8] : + row[8] = "Y" else : - row[7] = "N" + row[8] = "N" else : - row[7] = "N" + row[8] = "N" csvwriter.writerow(row) diff --git a/hal/templates/hal/verifhal_byuser.html b/hal/templates/hal/verifhal_byuser.html index 1940fbf8fd3f8166d2db7ef7d8beac6b2e22fdf1..2ac0b98a34a033126ffa5319f0383509e4d8f49b 100644 --- a/hal/templates/hal/verifhal_byuser.html +++ b/hal/templates/hal/verifhal_byuser.html @@ -55,12 +55,13 @@ <h4>Comprendre le tableau de résultats</h4> La colonne <b>résultat</b> peut prendre les valeurs <ul> - <li>"CORRECT" : le nom du journal/conf dans HAL correspond avec le nom dans Scimago/Core -> Rien à faire</li> - <li>"CORRECT ACR" : l'acronyme de la conf dans HAL correspond avec l'acronyme dans Core -> Rien à faire</li> - <li>"DIFF" : le nom du journal/conf dans HAL ne correspond pas avec le nom dans Scimago/Core, un nom approchant a été trouvé, si il convient -> effectuez la modification </li> - <li>"NONE" : le nom du journal/conf dans HAL ne correspond pas avec le nom dans Scimago/Core, aucun nom approchant de trouvé -> à verifier </li> - <li>[VIDE] : si rien n'est indiqué, le type de document (autre que ART ou COMM) ne peut pas être ranké</li> - <li>"TOO OLD" : la date de la publication est antérieure aux premiers fichiers de Scimago/Core</li> + <li><b>"CORRECT"</b> : le nom du journal/conf dans HAL correspond avec le nom dans Scimago/Core -> Rien à faire</li> + <li><b>"CORRECT ACR"</b> : l'acronyme de la conf dans HAL correspond avec l'acronyme dans Core -> Rien à faire</li> + <li><b>"DIFF"</b> : le nom du journal/conf dans HAL ne correspond pas avec le nom dans Scimago/Core, un nom approchant a été trouvé + <br/>Dans le cas ou <b>cela correspond au vrai nom</b> -> effectuez la modification </li> + <li><b>"NONE"</b> : le nom du journal/conf dans HAL ne correspond pas avec le nom dans Scimago/Core, aucun nom approchant de trouvé -> à verifier </li> + <li><b>[VIDE]</b> : si rien n'est indiqué, le type de document (autre que ART ou COMM) ne peut pas être ranké</li> + <li><b>"TOO OLD"</b> : la date de la publication est antérieure aux premiers fichiers de Scimago/Core</li> </ul> <br/><br/> @@ -75,6 +76,7 @@ <th>Resultat</th> <th>Journ/Conf HAL</th> <th>Journ/Conf Rank</th> + <th>Note</th> <th>Propriété</th> <th>Lien</th> </tr> @@ -83,11 +85,12 @@ <tr> <td>{{ pub.type }}</td> <td>{{ pub.title }}</td> - <td>{{pub.uri}}</td> + <td>{{ pub.uri }}</td> <td>{{ pub.date }}</td> <td>{{ pub.change }}</td> <td>{{ pub.conf }}</td> <td>{{ pub.conf2 }}</td> + <td>{{ pub.note }}</td> <td>{{ pub.owner }}</td> <td> {% if pub.change == 'DIFF' and pub.owner == 'Y' %} diff --git a/hal/views.py b/hal/views.py index eb95d900563b15b43b27b069d9e8cd4e0afb5748..39e0bf4a9af5d01454e4f17951e9031f12de9177 100644 --- a/hal/views.py +++ b/hal/views.py @@ -147,6 +147,7 @@ class PubliChange(): self.change = "" self.conf = "" self.conf2 = "" + self.note = "" self.owner = "" ################################################################################################################################## @@ -322,7 +323,8 @@ def verifhal_byuser(request, csvfile): p.change = row[4] p.conf = row[5] p.conf2 = row[6] - p.owner = row[7] + p.note = row[7] + p.owner = row[8] list_to_post.append(p)