Plots2: Supprimer « - » avant le nombre de messages sur les fiches thématiques lors du tri par « nombre de personnes »

Créé le 28 mai 2020  ·  25Commentaires  ·  Source: publiclab/plots2

Veuillez décrire le problème

Il semble y avoir un petit "-" avant le nombre de messages sur les fiches thématiques lorsque l'on clique sur l'option de tri "# de personnes", ce qui donne l'impression qu'il y a un nombre négatif de messages. Voir capture d'écran :

Screen Shot 2020-05-20 at 10 36 42 AM (1)

Que vous attendiez-vous à voir que vous ne l'avez pas fait ?

je m'attendais à voir des entiers positifs.

Merci de nous montrer où chercher

https://publiclab.org/tags?sort=followers&order=asc

Quel est votre nom d'utilisateur PublicLab.org ?

Cela peut nous aider à diagnostiquer le problème :

liz

bug

Commentaire le plus utile

Hey @ebarry, je pense que c'est un problème plus grave en fait :sweat_smile: j'avais fait des modifications pour cela ici https://github.com/publiclab/plots2/pull/7609 mais j'ai dû tout gâcher et calculer le mauvais compte que j'ai pense :déçu: Boucle dans j'aurai peut-être besoin d'aide pour résoudre ce problème :sweat_smile:

Tous les 25 commentaires

Quelqu'un a-t-il des liens de code à portée de main qu'il pourrait ajouter ici ? Merci d'avance!

Hey @ebarry, je pense que c'est un problème plus grave en fait :sweat_smile: j'avais fait des modifications pour cela ici https://github.com/publiclab/plots2/pull/7609 mais j'ai dû tout gâcher et calculer le mauvais compte que j'ai pense :déçu: Boucle dans j'aurai peut-être besoin d'aide pour résoudre ce problème :sweat_smile:

Salut @Tlazypanda, pouvons-nous regarder d'autres endroits où le code de type Tag.counter est utilisé et essayer de passer à cela ?

https://github.com/publiclab/plots2/pull/7609/files#diff -8fe92870a7f027a46eed82a51c5c16bcR118

Cependant, les décomptes sont très peu décalés. Je me demande s'il s'agit d'un problème de spam et d'affecter un peu les mathématiques ?

Voir par exemple la différence entre ces décomptes :

image

image

Nous pouvons chercher où le compte 236 est calculé et passer à cela, peut-être ?

Cela utilise donc une variable d'instance générée par le contrôleur :

https://github.com/publiclab/plots2/blob/c056cb0b97ebc6b34184ec3dfa9a83e1096395f9/app/views/tag/show.html.erb#L58

Je crois que c'est ici que cela est calculé:

https://github.com/publiclab/plots2/blob/c056cb0b97ebc6b34184ec3dfa9a83e1096395f9/app/controllers/tag_controller.rb#L551 -L560

@jywarren , ce que je peux voir dans tag/:id, c'est-à-dire que la page d'affichage de tag, c'est que nous affichons uniquement des notes de recherche là-bas et dans les cartes thématiques, nous essayons d'afficher des notes de recherche + des questions.
Donc, je pense que ce que nous devons faire, c'est que nous devons récupérer les notes de la même manière que nous le faisons dans tag#show et pour afficher le nombre au bas de la carte de sujet, nous aurons juste besoin d'utiliser cette expression mathématique :
Nombre de notes avec le tagname-Nombre de notes affichées dans la carte de sujet

nous devons récupérer les notes de la même manière que nous le faisons dans tag#show

Salut, c'est juste ! notant le concept de "source unique de vérité" ici : https://github.com/publiclab/plots2/issues/6855#issuecomment -578331475

Je pense que nous devrions utiliser les mêmes calculs ici : https://github.com/publiclab/plots2/pull/7476 (basé sur #6855).

@urvashigupta7 merci beaucoup d'être intervenu ! Seriez-vous intéressé à faire ces changements?

Je pense également que dans https://github.com/publiclab/plots2/pull/7476/ , nous ne filtrons pas le spam. Donc sur ces lignes, nous devrions probablement ajouter .where(status: 1) :

https://github.com/publiclab/plots2/blob/c056cb0b97ebc6b34184ec3dfa9a83e1096395f9/app/controllers/tag_controller.rb#L551 -L560

Ce code dépend aussi de ceci, qui ne filtre pas le spam :

https://github.com/publiclab/plots2/blob/f4dfdcbae4dfa60b0ec357081ee1fae6f2089436/app/models/node.rb#L609 -L618

De même, ce code doit également filtrer le spam avec le même filtre :

https://github.com/publiclab/plots2/blob/f4dfdcbae4dfa60b0ec357081ee1fae6f2089436/app/models/tag.rb#L118 -L124

Hmm. Il semble que nous filtrons le spam du calcul @total_posts , car il s'exécute /après/ ces lignes :

https://github.com/publiclab/plots2/blob/c056cb0b97ebc6b34184ec3dfa9a83e1096395f9/app/controllers/tag_controller.rb#L204 -L218

Cependant, ni Tag.counter ni Node.for_tagname_and_type filtrent. C'est peut-être ça l'irrégularité ?

Le compte ici n'est toujours pas correct, je pense. Par exemple, https://stable.publiclab.org/tags répertorie maintenant 692 publications pour balloon-mapping mais voici les statistiques de cette balise (dans stable) :

image

Je pense que nous devons dépendre de ce correctif : https://github.com/publiclab/plots2/pull/8245

alors nous pouvons vérifier cela à nouveau. Réouverture pour un instant... les doigts

https://github.com/publiclab/plots2/pull/8245 est maintenant terminé ! Et a des tests unitaires, si bien. OK, maintenant cela peut fonctionner...

OK, ça dit 573 posts » -- hmm

Notes de recherche 469
Question 37
Wiki pages 77
Personnes 346

Je veux dire, notes plus wikis = 546...? et plus de questions est 583?

Maintenant, en testant la balise tests sur stable, je soupçonne qu'il peut y avoir une mise en cache en cours. L'ajout de cette balise à une nouvelle note, https://stable.publiclab.org/notes/aidanswope/05-21-2019/angel-s-point-balloon-map-updated , n'a pas entraîné l'onglet de notes allant de 7 à 8, bien que tag.count renvoie 8 comme le résultat de tag.run_count

https://stable.publiclab.org/tag/tests

OK, donc en traçant le nombre de tabulations :

https://github.com/publiclab/plots2/blob/e97eff7464a544a97f4b38f169f76250600b3148/app/models/node.rb#L621 -L630

Node.where(status: 1, type: 'note').includes(:revision, :tag).references(:term_data, :node_revisions).where('term_data.name = ? OR term_data.parent = ?', 'balloon-mapping', 'balloon-mapping').where.not(nid: qids).count => 470

Par rapport au nombre de cartes thématiques :

NodeTag.joins(:node).where(tid: 10).where('node.status = 1 AND node.type = "note"').where.not(nid: qids).count => 467

😭

Ces trois éléments font la différence : [6129, 7236, 7414] --

[#,

,

]

Très étrange! pour 2 raisons : 3 notes ne sont pas les mêmes que les 10 manquantes (je pensais que nous n'avions pas encore examiné les questions), ET, ces trois notes semblent être normales sauf qu'une était en février 2013 et 2 en mai 2013 :

(mise à jour : voir ci-dessous pour les noms de balises en double)

Intéressant aussi :

Node.where(status: 1, type: 'note').includes(:revision, :tag).references(:term_data, :node_revisions).where('term_data.name = ? OR term_data.parent = ?', 'balloon-mapping', 'balloon-mapping').where(nid: qids).count => 29

Cela s'accorde avec :

NodeTag.joins(:node).where(tid: 10).where('node.status = 1 AND node.type = "note"').where(nid: qids).count

contre 37 comme indiqué sur l'onglet, qui est calculé avec :

https://github.com/publiclab/plots2/blob/e97eff7464a544a97f4b38f169f76250600b3148/app/models/node.rb#L640 -L646

Ah ! Cette dernière section montre que les messages étiquetés question:balloon-mapping sont inclus dans ce décompte même s'ils n'ont pas le tag de base balloon-mapping !!!

Les 8 messages suivants semblent avoir question:balloon-mapping mais pas balloon-mapping :

[13556, 15762, 16426, 18994, 20694, 11301, 12251, 19625]

OK, donc cela nous amène à moins de 2 nœuds. Comparons maintenant manuellement :

irb(main):040:0> NodeTag.joins(:node).where(tid: 10).where('node.status = 1 AND node.type = "note"').count
=> 496
irb(main):041:0> Node.where(status: 1, type: 'note').includes(:tag).references(:term_data).where('term_data.name = ?', 'balloon-mapping').count
=> 499
irb(main):022:0> Node.where(status: 1, type: 'note').includes(:revision, :tag).references(:term_data, :node_revisions).where('term_data.name = ? OR term_data.parent = ?', 'balloon-mapping', 'balloon-mapping').collect(&:nid)
=> [146, 253, 254, 268, 403, 511, 724, 732, 743, 913, 1482, 1489, 1620, 1626, 1627, 1632, 1715, 1849, 1968, 1994, 2126, 2138, 2144, 2476, 2589, 2930, 3115, 3325, 4649, 4952, 5038, 5220, 5250, 5978, 6934, 7050, 7189, 7294, 7314, 7491, 7577, 7593, 7995, 8189, 8907, 8913, 8914, 8950, 9019, 9032, 9042, 9086, 9417, 9434, 9742, 9888, 9977, 10541, 11019, 11100, 11223, 11574, 11582, 11827, 12201, 12240, 12491, 12619, 12708, 13095, 13424, 13945, 14022, 14095, 14183, 14185, 14219, 14515, 14572, 14587, 14597, 14600, 14611, 14620, 14813, 14907, 14909, 14983, 15545, 15568, 16591, 16653, 16746, 16877, 18316, 19153, 19272, 19462, 19558, 19578, 19620, 19762, 20331, 23549, 24101, 24102, 1795, 6635, 347, 369, 439, 444, 792, 861, 1665, 1668, 1962, 2135, 2143, 2152, 2245, 2277, 2783, 2784, 3563, 3635, 3670, 4482, 4516, 4755, 4760, 4923, 4925, 6059, 7641, 10181, 10489, 11101, 11724, 13243, 13880, 13948, 17322, 64, 166, 202, 344, 1666, 1816, 1818, 1819, 2919, 3354, 3736, 3821, 4087, 8020, 8947, 9301, 11199, 11260, 11261, 11755, 12161, 1544, 1739, 1742, 1892, 2006, 5494, 9353, 10705, 828, 1515, 1786, 1877, 1926, 1949, 2121, 2625, 2666, 2677, 2846, 2892, 2961, 4092, 4907, 5394, 5415, 5664, 7132, 7367, 7368, 7717, 7964, 8400, 10243, 6175, 9507, 4636, 6293, 3014, 6624, 9806, 10289, 10554, 11278, 11391, 12104, 12622, 12894, 13143, 9935, 10036, 10196, 10450, 11283, 11719, 11769, 12237, 10246, 10605, 2462, 9497, 1889, 2131, 2443, 3026, 4127, 4252, 4673, 5538, 5893, 6608, 8034, 8902, 8959, 9644, 9707, 10045, 10162, 10335, 10336, 10337, 10373, 10540, 10570, 11107, 11110, 11112, 11124, 11143, 11175, 11298, 11336, 12053, 12203, 12590, 16984, 19515, 19580, 23822, 2163, 3634, 7620, 10166, 11056, 11319, 11589, 1541, 1652, 1676, 1677, 1746, 2154, 2237, 2275, 2311, 2623, 2785, 3454, 3652, 3822, 4014, 4691, 4720, 4950, 5161, 7785, 8866, 8926, 8928, 8937, 8958, 8986, 9759, 9915, 10101, 10230, 10244, 10302, 10311, 10374, 10523, 10602, 11021, 11078, 11103, 11253, 11726, 11988, 12686, 12752, 12757, 13400, 13845, 14116, 14660, 14713, 14756, 1716, 2660, 7191, 7192, 1743, 1636, 1900, 9317, 10651, 1741, 13904, 3096, 2352, 2824, 4091, 2715, 6080, 6082, 2732, 3801, 3908, 4545, 7121, 10284, 13791, 10631, 4921, 6751, 9429, 9743, 11577, 17331, 6073, 9858, 10711, 11118, 6525, 10267, 9034, 11252, 11268, 8033, 8868, 10159, 10214, 9027, 9785, 9033, 9076, 9299, 14501, 14508, 14562, 21733, 10282, 9909, 11178, 11738, 10024, 12667, 11262, 11343, 11978, 11983, 11992, 11826, 11061, 10227, 10428, 11077, 11131, 11137, 11280, 11281, 11518, 11551, 11807, 11812, 11947, 12039, 14158, 14729, 14943, 15641, 16273, 16349, 18560, 19269, 19286, 21547, 10343, 14852, 14901, 15352, 15387, 10612, 10638, 10986, 10994, 20181, 11002, 11127, 11128, 11183, 12166, 11342, 11494, 11955, 11673, 11707, 11711, 12190, 18839, 13802, 14595, 12227, 15912, 14007, 13093, 13096, 12981, 13102, 13160, 13194, 13196, 13227, 13242, 13267, 13278, 13281, 13298, 14168, 15161, 23143, 14058, 14766, 13748, 13839, 15603, 14241, 14179, 14239, 14246, 14240, 14255, 14488, 14487, 14245, 14785, 15160, 14703, 14995, 16571, 15172, 15179, 15424, 15713, 15732, 16141, 16284, 16334, 16382, 17387, 17498, 17499, 18498, 16960, 19689, 17815, 19394, 19464, 19650, 19955, 19476, 19477, 23203, 6129, 7236, 7414]

vs:


irb(main):024:0> NodeTag.joins(:node).where(tid: 10).where('node.status = 1 AND node.type = "note"').collect(&:nid)
=> [146, 253, 254, 268, 403, 511, 724, 732, 743, 913, 1482, 1489, 1620, 1626, 1627, 1632, 1715, 1849, 1968, 1994, 2126, 2138, 2144, 2476, 2589, 2930, 3115, 3325, 4649, 4952, 5038, 5220, 5250, 5978, 6934, 7050, 7189, 7294, 7314, 7491, 7577, 7593, 7995, 8189, 8907, 8913, 8914, 8950, 9019, 9032, 9042, 9086, 9417, 9434, 9742, 9888, 9977, 10541, 11019, 11100, 11223, 11574, 11582, 11827, 12201, 12240, 12491, 12619, 12708, 13095, 13424, 13945, 14022, 14095, 14183, 14185, 14219, 14515, 14572, 14587, 14597, 14600, 14611, 14620, 14813, 14907, 14909, 14983, 15545, 15568, 16591, 16653, 16746, 16877, 18316, 19153, 19272, 19462, 19558, 19578, 19620, 19762, 20331, 23549, 24101, 24102, 1795, 6635, 347, 369, 439, 444, 792, 861, 1665, 1668, 1962, 2135, 2143, 2152, 2245, 2277, 2783, 2784, 3563, 3635, 3670, 4482, 4516, 4755, 4760, 4923, 4925, 6059, 7641, 10181, 10489, 11101, 11724, 13243, 13880, 13948, 17322, 64, 166, 202, 344, 1666, 1816, 1818, 1819, 2919, 3354, 3736, 3821, 4087, 8020, 8947, 9301, 11199, 11260, 11261, 11755, 12161, 1544, 1739, 1742, 1892, 2006, 5494, 9353, 10705, 828, 1515, 1786, 1877, 1926, 1949, 2121, 2625, 2666, 2677, 2846, 2892, 2961, 4092, 4907, 5394, 5415, 5664, 7132, 7367, 7368, 7717, 7964, 8400, 10243, 6175, 9507, 4636, 6293, 3014, 6624, 9806, 10289, 10554, 11278, 11391, 12104, 12622, 12894, 13143, 9935, 10036, 10196, 10450, 11283, 11719, 11769, 12237, 10246, 10605, 2462, 9497, 1889, 2131, 2443, 3026, 4127, 4252, 4673, 5538, 5893, 6608, 8034, 8902, 8959, 9644, 9707, 10045, 10162, 10335, 10336, 10337, 10373, 10540, 10570, 11107, 11110, 11112, 11124, 11143, 11175, 11298, 11336, 12053, 12203, 12590, 16984, 19515, 19580, 23822, 2163, 3634, 7620, 10166, 11056, 11319, 11589, 1541, 1652, 1676, 1677, 1746, 2154, 2237, 2275, 2311, 2623, 2785, 3454, 3652, 3822, 4014, 4691, 4720, 4950, 5161, 7785, 8866, 8926, 8928, 8937, 8958, 8986, 9759, 9915, 10101, 10230, 10244, 10302, 10311, 10374, 10523, 10602, 11021, 11078, 11103, 11253, 11726, 11988, 12686, 12752, 12757, 13400, 13845, 14116, 14660, 14713, 14756, 1716, 2660, 7191, 7192, 1743, 1636, 1900, 9317, 10651, 1741, 13904, 3096, 2352, 2824, 4091, 2715, 6080, 6082, 2732, 3801, 3908, 4545, 7121, 10284, 13791, 10631, 4921, 6751, 9429, 9743, 11577, 17331, 6073, 9858, 10711, 11118, 6525, 10267, 9034, 11252, 11268, 8033, 8868, 10159, 10214, 9027, 9785, 9033, 9076, 9299, 14501, 14508, 14562, 21733, 10282, 9909, 11178, 11738, 10024, 12667, 11262, 11343, 11978, 11983, 11992, 11826, 11061, 10227, 10428, 11077, 11131, 11137, 11280, 11281, 11518, 11551, 11807, 11812, 11947, 12039, 14158, 14729, 14943, 15641, 16273, 16349, 18560, 19269, 19286, 21547, 10343, 14852, 14901, 15352, 15387, 10612, 10638, 10986, 10994, 20181, 11002, 11127, 11128, 11183, 12166, 11342, 11494, 11955, 11673, 11707, 11711, 12190, 18839, 13802, 14595, 12227, 15912, 14007, 13093, 13096, 12981, 13102, 13160, 13194, 13196, 13227, 13242, 13267, 13278, 13281, 13298, 14168, 15161, 23143, 14058, 14766, 13748, 13839, 15603, 14241, 14179, 14239, 14246, 14240, 14255, 14488, 14487, 14245, 14785, 15160, 14703, 14995, 16571, 15172, 15179, 15424, 15713, 15732, 16141, 16284, 16334, 16382, 17387, 17498, 17499, 18498, 16960, 19689, 17815, 19394, 19464, 19650, 19955, 19476, 19477, 23203]

Aha. Peut être ça:

Tag.where(name: 'balloon-mapping').length => 4
Tag.where(name: 'balloon-mapping').collect(&:tid) => [10, 3205, 3591, 4032]

Oui, c'est l'écart :

irb(main):045:0> NodeTag.joins(:node).where(tid: [10, 3205, 3591, 4032]).where('node.status = 1 AND node.type = "note"').count
=> 499
irb(main):046:0> Node.where(status: 1, type: 'note').includes(:tag).references(:term_data).where('term_data.name = ?', 'balloon-mapping').count
=> 499

irb(main):050:0> Tag.where(name: 'balloon-mapping').collect(&:count)
=> [574, 1, 1, 1]

Cependant, notamment pas pour les bugs method ou project dans #7334

irb(main):047:0> Tag.where(name: 'method').collect(&:tid)
=> [14474]
irb(main):048:0> Tag.where(name: 'project').collect(&:tid)
=> [14751]

OK, j'ai corrigé les balises en double avec :

irb(main):053:0> NodeTag.where(tid: [3205, 3591, 4032]).each do |nt|
irb(main):054:1* nt.tid = 10
irb(main):055:1> nt.save
irb(main):056:1> end

Cependant, je parie qu'il y en a plus dans la base de données. Nous voudrons peut-être faire un projet plus important pour les consolider.

Mise à jour : oui, il y a 28 autres instances :

irb(main):063:0> Tag.count
=> 18532
irb(main):065:0> Tag.all.collect(&:name).uniq.count
=> 18504


irb(main):069:0> (Tag.all - Tag.all.group(:name)).collect(&:name)
=> ["fold-up", "gulf-coast", "kite-mapping", "gulf-coast", "brooklyn", "new-york-city", "balloon-mapping", "spectrometer", "farmhack", "white-balance", "fresh-kills", "balloon-mapping", "balloon-mapping", "kite-mapping", "newsletter", "newsletter", "passenger-pigeon", "jamaica-bay", "mobile-spectrometer", "infragram-sandbox", "mailing-lists", "diy-kite", "water-sensing", "carbon-arc", "diy-kite", "diy-kite", "workplace", "emergencies"]

Ma recommandation est maintenant :

Nous l'avons beaucoup réduit, et il comporte deux parties.

  1. Balises "fantômes" - noms de balises en double, donc fondamentalement, certains n'étaient pas comptés (résolus, bien qu'il existe environ 15 autres instances pour quelques autres balises)
  2. question:_____ balises de format /tag/____ , mais si elles n'ont pas leur propre balise de base, ne sont pas comptées dans les fiches thématiques. Exemple : 8 posts ont question:balloon-mapping mais pas balloon-mapping , ils font donc passer notre décompte de 8.

Mon point de vue sur (2) est que nous devrions l'écrire et en être conscient, mais pas le résoudre (je ne peux pas penser à une solution propre de toute façon).

Et, même après toutes ces recherches, j'ai toujours un écart de 1 pour balloon-mapping . Mais je pense que nous sommes si proches que nous devrions essentiellement être d'accord avec cela, car c'est l'un des plus gros tags et il est peu probable que ce problème affecte les autres. Intéressé d'entendre le point de vue des autres également !

Cette page vous a été utile?
0 / 5 - 0 notes