Plots2: Hapus "-" sebelum hitungan posting di Kartu Topik saat mengurutkan berdasarkan "# Orang"

Dibuat pada 28 Mei 2020  ·  25Komentar  ·  Sumber: publiclab/plots2

Tolong jelaskan masalahnya

Tampaknya ada tanda "-" kecil sebelum jumlah kiriman di Kartu Topik saat opsi penyortiran "# Orang" diklik, membuatnya tampak seperti ada jumlah kiriman negatif. Lihat tangkapan layar:

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

Apa yang Anda harapkan untuk melihat bahwa Anda tidak?

saya berharap untuk melihat bilangan bulat positif.

Tolong tunjukkan kami di mana mencarinya

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

Apa nama pengguna PublicLab.org Anda?

Ini dapat membantu kami mendiagnosis masalah:

liz

bug

Komentar yang paling membantu

Hei @ebarry Saya pikir ini adalah masalah yang lebih serius sebenarnya :sweat_smile: Saya telah membuat perubahan untuk ini di sini https://github.com/publiclab/plots2/pull/7609 tapi saya pasti telah mengacaukannya dan menghitung hitungan yang salah saya pikir :kecewa: Perulangan di

Semua 25 komentar

Adakah yang punya tautan kode yang bisa mereka tambahkan di sini? Terima kasih sebelumnya!

Hei @ebarry Saya pikir ini adalah masalah yang lebih serius sebenarnya :sweat_smile: Saya telah membuat perubahan untuk ini di sini https://github.com/publiclab/plots2/pull/7609 tapi saya pasti telah mengacaukannya dan menghitung hitungan yang salah saya pikir :kecewa: Perulangan di

Hai @Tlazypanda, bisakah kita melihat tempat lain di mana kode jenis Tag.counter digunakan, dan mencoba untuk beralih ke itu?

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

Namun, hitungannya sangat sedikit. Saya bertanya-tanya apakah ini masalah beberapa hal yang di-spam dan kemudian sedikit memengaruhi matematika?

Lihat misalnya perbedaan antara jumlah ini:

image

image

Kita bisa mencari di mana hitungan 236 dihitung dan beralih ke itu, mungkin?

Jadi itu menggunakan variabel instance yang dihasilkan pengontrol:

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

Saya percaya ini adalah di mana ini dihitung:

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

Hai @jywarren , apa yang bisa saya lihat di tag/:id yaitu tampilan untuk tag adalah bahwa kami hanya menampilkan catatan penelitian di sana dan di kartu topik, kami mencoba menampilkan catatan+pertanyaan penelitian.
Jadi, saya pikir apa yang perlu kita lakukan adalah kita perlu mengambil catatan dengan cara yang sama seperti yang kita lakukan di tag#show dan untuk menampilkan hitungan di bagian bawah kartu topik kita hanya perlu menggunakan ekspresi matematika ini:
Jumlah catatan dengan nama tag-Jumlah catatan yang ditampilkan di Kartu Topik

kita perlu mengambil catatan dengan cara yang sama seperti yang kita lakukan di tag#show

Hai, itu benar! mencatat konsep "satu sumber kebenaran" di sini: https://github.com/publiclab/plots2/issues/6855#issuecomment -578331475

Saya percaya kita harus menggunakan perhitungan yang sama di sini: https://github.com/publiclab/plots2/pull/7476 (berdasarkan #6855).

@urvashigupta7 terima kasih banyak telah bergabung! Apakah Anda tertarik untuk melakukan perubahan ini?

Saya juga berpikir bahwa di https://github.com/publiclab/plots2/pull/7476/ , kami tidak memfilter spam. Jadi pada baris ini, kita mungkin harus menambahkan .where(status: 1) :

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

Kode itu juga bergantung pada ini, yang tidak memfilter spam:

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

Demikian juga kode ini perlu juga menyaring spam dengan filter yang sama:

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

Hmm. Sepertinya kami memfilter spam dari perhitungan @total_posts , saat menjalankan /setelah/ baris berikut:

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

Namun, filter Tag.counter dan Node.for_tagname_and_type . Mungkin itu ketidakteraturannya?

Hitungan di sini masih kurang tepat, saya pikir. Misalnya https://stable.publiclab.org/tags sekarang mencantumkan 692 posting untuk balloon-mapping tetapi berikut adalah statistik untuk tag itu (dalam stabil):

image

Saya pikir kita perlu bergantung pada perbaikan ini: https://github.com/publiclab/plots2/pull/8245

maka kita dapat memeriksa ini lagi. Membuka kembali sejenak... jari

https://github.com/publiclab/plots2/pull/8245 sekarang selesai! Dan memiliki unit test, sangat bagus. Oke, sekarang ini mungkin berhasil ...

Oke, katanya 573 posts » -- hmm

Catatan penelitian 469
Pertanyaan 37
Wiki halaman 77
Orang 346

Maksudku, catatan plus wiki = 546...? dan ditambah pertanyaan adalah 583?

Sekarang, menguji tag tests pada stable, saya curiga bahwa mungkin ada beberapa caching yang terjadi. Menambahkan tag itu ke catatan baru, https://stable.publiclab.org/notes/aidanswope/05-21-2019/angel-s-point-balloon-map-updated , tidak mengakibatkan tab catatan beralih dari 7 hingga 8, meskipun tag.count mengembalikan 8 seperti halnya hasil dari tag.run_count

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

Oke, jadi telusuri jumlah tab:

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

Dibandingkan dengan jumlah kartu topik:

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

😭

Ketiganya adalah perbedaannya: [6129, 7236, 7414] --

[#,

,

]

Sangat aneh! karena 2 alasan: 3 catatan tidak sama dengan 10 catatan yang hilang (saya pikir kita belum melihat pertanyaan), DAN, ketiganya tampaknya normal kecuali yang satu pada Februari 2013 dan 2 pada Mei 2013:

(perbarui: lihat di bawah untuk duplikat tagname)

Juga menarik:

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

Ini setuju dengan:

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

vs. 37 seperti yang ditunjukkan pada tab, yang dihitung dengan:

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

Ah! Bagian terakhir itu menunjukkan bahwa posting yang diberi tag question:balloon-mapping termasuk dalam hitungan itu meskipun mereka tidak memiliki tag balloon-mapping !!!

8 posting berikut tampaknya memiliki question:balloon-mapping tetapi tidak balloon-mapping :

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

OK, jadi itu membawa kita ke dalam 2 node. Sekarang mari kita bandingkan secara manual:

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. Mungkin ini:

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

Ya, itulah perbedaannya:

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]

Namun, terutama bukan untuk bug method atau project di #7334

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

Oke, saya memperbaiki tag duplikat dengan:

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

namun saya yakin ada lebih banyak di DB. Kami mungkin ingin melakukan proyek yang lebih besar untuk mengkonsolidasikan ini.

Pembaruan: ya, ada 28 contoh lain:

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"]

Rekomendasi saya sekarang adalah:

Kami telah mempersempit ini banyak, dan memiliki dua bagian.

  1. tag "hantu" - duplikat tagname jadi pada dasarnya beberapa tidak dihitung (diselesaikan, meskipun ~ 15 contoh lain ada untuk beberapa tag lainnya)
  2. Tag format question:_____ , yang dihitung di bawah tab pertanyaan pada halaman /tag/____ , tetapi jika tidak memiliki tag dasar sendiri, tidak dihitung dalam kartu topik. Contoh: 8 posting memiliki question:balloon-mapping tetapi tidak balloon-mapping , jadi mereka membuang hitungan kami dengan 8.

Pendapat saya (2) adalah bahwa kita harus menuliskannya dan menyadarinya, tetapi tidak menyelesaikannya (lagi pula saya tidak bisa memikirkan solusi yang bersih).

Dan, bahkan setelah semua penggalian itu, saya masih memiliki perbedaan 1 untuk balloon-mapping . Tapi saya pikir kami sangat dekat sehingga pada dasarnya kami harus setuju dengan itu, karena ini adalah salah satu tag terbesar dan masalah itu tidak mungkin memengaruhi orang lain. Tertarik untuk mendengar pendapat orang lain tentang itu juga!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

grvsachdeva picture grvsachdeva  ·  3Komentar

bronwen9 picture bronwen9  ·  3Komentar

keshavsethi picture keshavsethi  ·  3Komentar

jywarren picture jywarren  ·  3Komentar

RuthNjeri picture RuthNjeri  ·  3Komentar