Plots2: قم بإزالة "-" قبل عدد المشاركات في بطاقات الموضوع عند الفرز حسب "عدد الأشخاص"

تم إنشاؤها على ٢٨ مايو ٢٠٢٠  ·  25تعليقات  ·  مصدر: publiclab/plots2

يرجى وصف المشكلة

يبدو أن هناك "-" صغيرًا قبل عدد المنشورات على بطاقات الموضوع عند النقر على خيار الفرز "# الأشخاص" ، مما يجعل الأمر يبدو كما لو كان هناك عدد سلبي من المشاركات. انظر لقطة الشاشة:

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

ما الذي كنت تتوقعه وما لم تفعله؟

كنت أتوقع رؤية أعداد صحيحة إيجابية.

من فضلك تبين لنا أين ننظر

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

ما هو اسم مستخدم PublicLab.org الخاص بك؟

يمكن أن يساعدنا ذلك في تشخيص المشكلة:

ليز

bug

التعليق الأكثر فائدة

مرحبًا ebarry ، أعتقد أن هذه مشكلة أكثر خطورة في الواقع: sweat_smile: لقد أجريت تغييرات لهذا هنا https://github.com/publiclab/plots2/pull/7609 لكن لابد أنني أفسدت الأمر وحسّبت العدد الخاطئ. فكر: محبط: التكرار في jywarren @ قد يحتاج آسف إلى بعض المساعدة لإصلاح هذا: sweat_smile:

ال 25 كومينتر

هل لدى أي شخص روابط كود في متناول اليد يمكنه إضافتها هنا؟ شكرا مقدما!

مرحبًا ebarry ، أعتقد أن هذه مشكلة أكثر خطورة في الواقع: sweat_smile: لقد أجريت تغييرات لهذا هنا https://github.com/publiclab/plots2/pull/7609 لكن لابد أنني أفسدت الأمر وحسّبت العدد الخاطئ. فكر: محبط: التكرار في jywarren @ قد يحتاج آسف إلى بعض المساعدة لإصلاح هذا: sweat_smile:

مرحبًا Tlazypanda ، هل يمكننا إلقاء نظرة على أماكن أخرى حيث يتم استخدام رمز من النوع Tag.counter ، ومحاولة التبديل إلى ذلك؟

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

ومع ذلك ، فإن التهم متوقف قليلا جدا. أتساءل عما إذا كانت هذه مشكلة تتعلق ببعض الأشياء التي يتم إرسالها بشكل عشوائي ومن ثم تؤثر على الرياضيات قليلاً؟

انظر على سبيل المثال الفرق بين هذه الأعداد:

image

image

يمكننا البحث عن المكان الذي يتم فيه حساب العدد 236 والتحول إلى ذلك ، ربما؟

لذلك يستخدم متغير مثيل تم إنشاؤه بواسطة وحدة التحكم:

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

أعتقد أن هذا هو المكان الذي يتم فيه حساب هذا:

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

مرحبًا jywarren ، ما يمكنني رؤيته في tag /: id أي صفحة العرض الخاصة بالعلامة هو أننا نعرض فقط ملاحظات البحث هناك وفي بطاقات الموضوعات ، نحاول عرض ملاحظات البحث + الأسئلة.
لذلك ، أعتقد أن ما يتعين علينا القيام به هو أننا نحتاج إلى إحضار الملاحظات بنفس الطريقة التي نقوم بها في العلامة # show ولعرض العدد في الجزء السفلي من بطاقة الموضوع ، سنحتاج فقط إلى استخدام هذا التعبير الرياضي:
عدد الملاحظات مع tagname-Count للملاحظات المعروضة في بطاقة الموضوع

نحتاج إلى إحضار الملاحظات بنفس الطريقة التي نستخدمها في العلامة # show

مرحبًا ، هذا صحيح تمامًا! مع الإشارة إلى مفهوم "مصدر واحد للحقيقة" هنا: https://github.com/publiclab/plots2/issues/6855#issuecomment -578331475

أعتقد أننا يجب أن نستخدم نفس الحسابات هنا: https://github.com/publiclab/plots2/pull/7476 (بناءً على # 6855).

@ urvashigupta7 شكرا جزيلا لك على

أعتقد أيضًا أنه في https://github.com/publiclab/plots2/pull/7476/ ، لا نقوم بتصفية البريد العشوائي. لذا في هذه السطور ، من المحتمل أن نضيف .where(status: 1) :

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

يعتمد هذا الرمز أيضًا على هذا ، والذي لا يقوم بتصفية البريد العشوائي:

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

وبالمثل ، يحتاج هذا الرمز أيضًا إلى تصفية البريد العشوائي باستخدام نفس الفلتر:

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

همم. يبدو أننا نقوم بتصفية البريد العشوائي من الحساب @total_posts ، لأنه يعمل / بعد / هذه الأسطر:

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

ومع ذلك ، لا يوجد الفلتر Tag.counter و Node.for_tagname_and_type . ربما هذا هو المخالفة؟

أعتقد أن العد هنا لا يزال غير صحيح. على سبيل المثال ، يسرد https://stable.publiclab.org/tags الآن 692 منشورًا لـ balloon-mapping ولكن إليك إحصائيات هذه العلامة (ثابتة):

image

أعتقد أننا بحاجة إلى الاعتماد على هذا الإصلاح: https://github.com/publiclab/plots2/pull/8245

ثم يمكننا التحقق من هذا مرة أخرى. إعادة الفتح للحظة ... الأصابع 🤞

https://github.com/publiclab/plots2/pull/8245 انتهى الآن! ولديها اختبارات الوحدة ، لطيفة جدًا. حسنًا ، قد يعمل هذا الآن ...

حسنًا ، تقول 573 posts » - حسنًا

ملاحظات البحث 469
الأسئلة 37
صفحات ويكي 77
الناس 346

أعني ، الملاحظات بالإضافة إلى الويكي = 546 ...؟ و بالإضافة إلى الأسئلة هو 583؟

الآن ، بعد اختبار العلامة tests على مستقر ، أشك في احتمال وجود بعض التخزين المؤقت. إضافة هذه العلامة إلى ملاحظة جديدة ، https://stable.publiclab.org/notes/aidanswope/05-21-2019/angel-s-point-balloon-map-updated ، لم ينتج عنها علامة تبويب الملاحظات القادمة من من 7 إلى 8 ، على الرغم من أن tag.count تُرجع 8 كما تفعل نتيجة tag.run_count

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

مع الإشارة إلى الرابط https://github.com/publiclab/plots2/issues/8244

حسنًا ، تتبع عدد علامات التبويب:

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

مقابل عدد بطاقة الموضوع:

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

😭

هؤلاء الثلاثة هم الفرق: [6129, 7236, 7414] -

[#و

و

]

غريب جدا! لسببين: 3 ملاحظات مختلفة عن 10 ملاحظات مفقودة (أعتقد أننا لم ننظر إلى الأسئلة بعد) ، ويبدو أن هذه الثلاثة طبيعية باستثناء تلك التي كانت في فبراير 2013 و 2 كانت في مايو 2013:

(تحديث: انظر أدناه للحصول على أسماء مكررة)

مثير للاهتمام أيضًا:

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

هذا يتفق مع:

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

مقابل 37 كما هو موضح في علامة التبويب ، والتي يتم حسابها باستخدام:

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

آها! يوضح هذا القسم الأخير أن المشاركات التي تم وضع علامة عليها question:balloon-mapping متضمنة في هذا العدد حتى لو لم يكن لديهم علامة balloon-mapping !!!

يبدو أن المشاركات الثمانية التالية تحتوي على question:balloon-mapping ولكن ليس balloon-mapping :

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

حسنًا ، هذا يقودنا إلى ما بين عقدتين. الآن دعنا نقارن فقط يدويًا:

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]

ضد:


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]

اها. ربما هذا:

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

نعم ، هذا هو التناقض:

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]

ومع ذلك ، لا سيما بالنسبة إلى البق method أو project في # 7334

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

حسنًا ، أصلحت العلامات المكررة باستخدام:

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

ومع ذلك أراهن أن هناك المزيد في قاعدة البيانات. قد نرغب في القيام بمشروع أكبر لتوحيد هذه.

تحديث: نعم ، هناك 28 حالة أخرى:

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

توصيتي الآن هي:

لقد قلصنا هذا كثيرًا ، وهو يتكون من جزأين.

  1. علامات "الأشباح" - أسماء tagnames مكررة لذلك لم يتم حساب بعضها (تم حلها ، على الرغم من وجود حوالي 15 حالة أخرى لبضعة علامات أخرى)
  2. علامات تنسيق question:_____ ، والتي يتم احتسابها ضمن علامة تبويب الأسئلة في صفحات /tag/____ ، ولكن إذا لم يكن لديهم علامة أساسية خاصة بهم ، فلا يتم احتسابهم في بطاقات الموضوعات. مثال: 8 منشورات بها question:balloon-mapping ولكن ليس balloon-mapping ، لذا فإنها تزيد من عددنا بمقدار 8.

رأيي (2) هو أننا يجب أن نكتبها وأن نكون على دراية بها ، لكن لا نحلها (لا يمكنني التفكير في حل نظيف على أي حال).

وحتى بعد كل هذا البحث ، لا يزال لدي تباين قدره 1 مقابل balloon-mapping . لكنني أعتقد أننا قريبون جدًا لدرجة أننا يجب أن نكون موافقين بشكل أساسي على ذلك ، لأنه أحد أكبر العلامات ومن غير المرجح أن تؤثر هذه المشكلة على الآخرين. مهتم بسماع رأي الآخرين في ذلك أيضًا!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات