إحصائيات المنشورات الجديدة في لوحة التحكم معطلة

مرحبًا جميعًا،

منذ أحد التحديثات الأخيرة قبل أسبوع أو أسبوعين، إحصائيات المنشورات الجديدة على لوحة المعلومات لا تعمل هنا. لم تعد تظهر شيئًا بعد الآن. هل هذه مشكلة فقط بالنسبة لي أم مشكلة عامة؟ لم أجد شيئًا عبر البحث هنا.

تحياتي

عذرًا، هل يمكنك التوضيح، هل تقول إن هذه الرسوم البيانية لا تعمل؟

متى كانت آخر مرة قمت فيها بتحديث نسختك، هل يمكنك تحديثها الآن؟

عذرًا على عدم الوضوح، إليك لقطة شاشة:

لقد قمت بالتحديث هذا المساء إلى 05685d430f.

إذا كنت أتذكر بشكل صحيح، فهذا منذ حوالي أسبوع أو أسبوعين، أقوم بالترقية كل خمسة أيام تقريبًا في الوقت الحالي.

ونعم، ليس هناك الكثير من حركة المرور في الوقت الحالي، ولكن لدينا منشورات جديدة. :wink: لقد نقرت أيضًا واخترت العام منذ اليوم. لا شيء هناك أيضًا.

أول ما يتبادر إلى الذهن هو “لا توجد بيانات كافية”، لكن دعني أذكر هذا لفريق تجربة المستخدم (XP) الذي يمكنه المساعدة في تصحيح الأخطاء.

إعجاب واحد (1)

شكرا لك! لقطة شاشة أخرى، حيث يمكنك أن ترى أن هناك مواضيع جديدة. لذلك يجب أن تكون هناك منشورات جديدة أيضًا. على الأقل بقدر عدد المواضيع (ولكن بالتأكيد أكثر من ذلك هنا :wink:).

إذا انتقلت إلى صفحة التقرير الكامل على \u003chttps://YOURSITE.COM/admin/reports/posts?end_date=2025-02-17\u0026start_date=2025-01-17\u003e، هل يمكنك الحصول على أي بيانات، مع تعديل التواريخ/عوامل التصفية؟ هل ترى أي أخطاء في السجلات على \u003chttps://YOURSITE.COM/logs\u003e أو في علامة تبويب “الشبكة” في “أدوات مطوري Chrome” عند تحميل هذه الصفحة أو لوحة المعلومات؟

إعجاب واحد (1)

لا، كل شيء فارغ هناك أيضًا. يمكنني أيضًا تعديل تواريخ البدء والانتهاء، ولا يتغير شيء.

لا، لا شيء. مجرد بعض إشعارات الإهمال، لا تتعلق بالإحصائيات (وفقًا للوقت).

بالفعل، هناك أخطاء. عندما أقوم بتحميل الصفحة، يكون هناك 9 أخطاء، ويزداد العدد بمرور الوقت.

هل هذا يساعد؟ هل يجب علي نسخ ولصق (نص) أي من هذه الأخطاء أو كلها؟

إعجابَين (2)

بالفعل، لقد واجهت هذا الموقف أيضًا. مجتمعي يفشل أيضًا في عرض العدد الصحيح للمشاركات.

غير صحيح أم لا شيء على الإطلاق مثل هنا؟

إعجاب واحد (1)

لقد أجريت بعض الأبحاث، ويبدو أن أخطاء domQueryService تأتي من إضافة Bitwarden Chrome، ومن غير المرجح أن تسبب مشاكل. يمكن تجاهل أخطاء mini-profiler.

خطأ fingerprint-report يأتي من https://github.com/discourse/discourse-fingerprint، وعلى الرغم من أنه مشكلة نحتاج إلى إصلاحها، إلا أنه لا يبدو أنه يمنع تقرير المشاركات من التحميل لدي محليًا.

ملف body_tag_1.js هذا الذي يبدو أن الآخرين يواجهون مشاكل معه أحيانًا على Discourse Lost ability to scroll through HA community site - community-feedback - Home Assistant Community. هل لديك أي مانعات إعلانات؟ إذا كان الأمر كذلك، فحاول تعطيلها. إذا لم يكن الأمر كذلك أو لم ينجح ذلك، فحاول تمكين الوضع الآمن Using Safe Mode to troubleshoot issues with themes and plugins ومعرفة ما إذا كان يمكنك تحميل الصفحة، إذا كان بإمكانك ذلك، فهذا يشير إلى مشكلة في المكون الإضافي أو السمة.

أخيرًا، حاول تحميل JSON للتقرير ومعرفة ما إذا كنت تحصل على أي نتائج هنا:

\u003chttps://YOURSITE.COM/admin/reports/bulk.json?reports%5Bposts%5D%5Bfacets%5D%5B%5D=prev_period\u0026reports%5Bposts%5D%5Bstart_date%5D=2025-01-18\u0026reports%5Bposts%5D%5Bend_date%5D=2025-02-18\u0026reports%5Bposts%5D%5Blimit%5D=50\u003e

4 إعجابات

لقد فعلت ذلك، وهو ما يوجد بالفعل في Opera، وهو المتصفح الذي أستخدمه على الكمبيوتر. أستخدم أيضًا Pi-hole مع قوائم حظر متعددة.

ولكن: تحدث هذه المشاكل أيضًا على جهازي الآيباد في تطبيق Discourse وفي شبكات أخرى، بما في ذلك بيانات الجوال. لذلك لا توجد مانعات إعلانات أو أي شيء من هذا القبيل.

يمكنني ذلك، ولكن ليس اليوم بعد الآن. :wink:

بالتأكيد:

{"reports":[{"type":"posts","title":"Beiträge","xaxis":"Tag","yaxis":"Anzahl neuer Beiträge","description":"Neue Beiträge, die in dieser Zeit erstellt wurden","description_link":null,"data":[],"start_date":"2025-01-18T00:00:00Z","end_date":"2025-02-18T23:59:59Z","prev_data":null,"prev_start_date":"2024-12-17T00:00:00Z","prev_end_date":"2025-01-18T00:00:00Z","prev30Days":null,"dates_filtering":true,"report_key":"reports:posts:20250118:20250218:[:prev_period]:50:4","primary_color":"rgba(113,184,254,1)","secondary_color":"rgba(113,184,254,0.1)","available_filters":[{"id":"category","type":"category","default":null}],"labels":[{"type":"date","property":"x","title":"Tag"},{"type":"number","property":"y","title":"Anzahl"}],"average":false,"percent":false,"higher_is_better":true,"modes":["chart","table"],"prev_period":0,"limit":50}]}

بما أن هذا لا يُظهر شيئًا، إذا قرأت هذا بشكل صحيح، فهل الوضع الآمن منطقي؟

إعجاب واحد (1)

حسنًا شكرًا لك، هذا مفيد ويشير إلى أن البيانات نفسها مفقودة، وليس أن هناك خطأ ما في الواجهة الأمامية :thinking:

استعلام SQL الذي يدعم هذا التقرير بسيط جدًا، إذا كان لديك وصول إلى مستكشف البيانات أو مباشرة إلى قاعدة البيانات الخاصة بك، يمكنك محاولة تشغيله وتعديله ومعرفة ما إذا كان سيعطيك أي بيانات:

SELECT 
  COUNT(*) AS "count_all", 
  date(posts.created_at) AS "date_posts_created_at" 
FROM 
  "posts" 
  INNER JOIN "topics" ON "topics"."deleted_at" IS NULL 
  AND "topics"."id" = "posts"."topic_id" 
WHERE 
  "posts"."deleted_at" IS NULL 
  AND (
    topics.archetype <> 'private_message'
  ) 
  AND (
    posts.created_at >= '2025-02-01' 
    AND posts.created_at <= '2025-02-28'
  ) 
  AND "posts"."post_type" = 1 
GROUP BY 
  date(posts.created_at) 
ORDER BY 
  date(posts.created_at)

وهنا كود التقرير نفسه:

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

إعجاب واحد (1)

يأتي الاستعلام في مستكشف البيانات ببيانات:

إعجاب واحد (1)

عذرًا يا روي، لقد ضاع هذا الأمر قليلاً. أعتقد أنه يجب أن يكون هناك خطأ ما في كود التقرير نفسه؟ discourse/app/models/concerns/reports/posts.rb at 8596aa34c46071eb42ffbb9e19ad733d1765578e · discourse/discourse · GitHub .

هل لديك وصول إلى وحدة تحكم rails في موقعك؟ إذا كان الأمر كذلك، جرب هذا وانظر ما إذا كان يعطيك أي بيانات:

Report.find("posts", start_date: 4.weeks.ago, end_date: Time.zone.now).data

سيؤدي هذا أيضًا إلى إخراج استعلامات SQL التي يتم تشغيلها، لذا قد تكون هناك أدلة أخرى هناك.

إعجاب واحد (1)

لا تقلق! لا يبدو الأمر مثاليًا في لوحة تحكم المسؤول، ولكنه ليس بنفس الأهمية مثل الأخطاء الأخرى.

نعم.

هممم، هل كنت أفعل هذا بشكل صحيح؟

root@prometheus-discourse-sidemount:/var/www/discourse# rails c
اسم المكون الإضافي هو 'discourse-docs'، ولكن دليل المكون الإضافي يسمى 'discourse-knowledge-explorer'
اسم المكون الإضافي هو 'discourse-user-notes'، ولكن دليل المكون الإضافي يسمى 'discourse-staff-notes'
[1] pry(main)> Report.find("posts", start_date: 4.weeks.ago, end_date: Time.zone.now).data
=> []
[2] pry(main)>

الإجابة فارغة. هذا يفسر الصندوق الفارغ في لوحة تحكم المسؤول. لكنك كتبت أنه يجب أن يكون هناك بيان SQL في الإجابة أيضًا؟

إعجاب واحد (1)

آه، آسف، ربما رأيتها فقط لأنني كنت أقوم بتشغيلها محليًا. جرب هذا:

MethodProfiler.output_sql_to_stderr!
Report.find("posts", start_date: 4.weeks.ago, end_date: Time.zone.now).data

ستحصل على الكثير من الضوضاء من الاستعلامات الآن، ولكن الاستعلامات القليلة الأخيرة ستكون تلك الخاصة بالتقرير:

إعجاب واحد (1)

حسناً، الكثير من الضوضاء. :wink: هل هذا ما تبحث عنه أم أنك بحاجة إلى المزيد مما سبق؟

debugsql (sql): SELECT COUNT(*) AS "count_all", date(posts.created_at) AS "date_posts_created_at" FROM "posts" INNER JOIN "topics" ON "topics"."deleted_at" IS NULL AND "topics"."id" = "posts"."topic_id" WHERE "posts"."deleted_at" IS NULL AND (topics.archetype <> 'private_message') AND NOT ((topics.category_id IN (NULL))) AND (posts.created_at >= '2025-02-03 06:00:45.160432' AND posts.created_at <= '2025-03-03 06:00:45.160586') AND "posts"."post_type" = 1 GROUP BY date(posts.created_at) ORDER BY date(posts.created_at)
debugsql (sec): 0.001
debugsql (sql): SELECT "category_custom_fields"."category_id" FROM "category_custom_fields" WHERE "category_custom_fields"."name" = 'private_topics_enabled'
debugsql (sec): 0.0
debugsql (sql): SELECT COUNT(*) FROM "posts" INNER JOIN "topics" ON "topics"."deleted_at" IS NULL AND "topics"."id" = "posts"."topic_id" WHERE "posts"."deleted_at" IS NULL AND (topics.archetype <> 'private_message') AND NOT ((topics.category_id IN (NULL))) AND "posts"."post_type" = 1
debugsql (sec): 0.0
debugsql (sql): SELECT COUNT(*) FROM "posts" INNER JOIN "topics" ON "topics"."deleted_at" IS NULL AND "topics"."id" = "posts"."topic_id" WHERE "posts"."deleted_at" IS NULL AND (topics.archetype <> 'private_message') AND NOT ((topics.category_id IN (NULL))) AND "posts"."post_type" = 1 AND (posts.created_at >= '2025-01-04 06:00:45.160432' and posts.created_at < '2025-02-03 06:00:45.160432')
debugsql (sec): 0.0
debugsql (sql): COMMIT
debugsql (sec): 0.0
=> []
إعجاب واحد (1)

نعم هذا ما أحتاجه :slight_smile: الجزء الذي يلفت انتباهي هو AND NOT ((topics.category_id IN (NULL)))؛ ليس لدي ذلك في الاستعلام الذي أظهره في لقطة الشاشة أعلاه. هذا من شأنه استبعاد جميع المواضيع التي ليس لها فئة من العد، والتي قد تكون كثيرة اعتمادًا على إعداد المنتدى الخاص بك؟

أنا لا أرى في الكود من أين يأتي ذلك. الخطوة التالية التي سأحاول القيام بها في مستكشف البيانات:

SELECT 
  COUNT(*) AS "count_all", 
  date(posts.created_at) AS "date_posts_created_at" 
FROM 
  "posts" 
  INNER JOIN "topics" ON "topics"."deleted_at" IS NULL 
  AND "topics"."id" = "posts"."topic_id" 
WHERE 
  "posts"."deleted_at" IS NULL 
  AND (
    topics.archetype <> 'private_message'
  ) 
  AND (
    posts.created_at >= '2025-02-03 06:00:45.160432' 
    AND posts.created_at <= '2025-03-03 06:00:45.160586'
  ) 
  AND "posts"."post_type" = 1 
GROUP BY 
  date(posts.created_at) 
ORDER BY 
  date(posts.created_at)

(لقد أزلت عبارة AND NOT هنا)، ورؤية ما إذا كنت تحصل على أي نتيجة. إذا قمت بتشغيل هذا محليًا أحصل على:

 count_all | date_posts_created_at
-----------+-----------------------
         1 | 2025-02-03
         8 | 2025-02-04
         7 | 2025-02-05
         1 | 2025-02-06
         7 | 2025-02-12
         4 | 2025-02-26

بينما إذا احتفظت بعبارة category_id التي تظهرها استعلاماتك، أحصل على لا بيانات.

إعجاب واحد (1)

يعمل:\n\n

\n\n🤘\n\n[quote="Martin Brennan, post:19, topic:352599, username:martin"]\nالجزء الذي يلفت انتباهي هو AND NOT ((topics.category_id IN (NULL)))؛ ليس لدي ذلك في الاستعلام الذي أظهره في لقطة الشاشة أعلاه. هذا سيستبعد جميع المواضيع التي لا تحتوي على فئة من العد، والتي قد تكون كثيرة حسب إعدادات منتداك؟\n[/quote]\n\nجميع مشاركاتنا لها فئة.\n\nمن أين يأتي هذا الشرط الإضافي؟ :thinking:

إعجاب واحد (1)

نعم، أنا لست متأكدًا حقًا :frowning: احتمال بعيد ولكنه قد يكون إضافة/تعديل من مكون إضافي لشيء ما؟ :thinking: ما هي المكونات الإضافية التي تستخدمها؟ الاستعلام الأول أعلاه (الذي يحتوي على count_all) يأتي من هنا:

إذا كان مجرد استدعاء هذا في وحدة التحكم لا يزال يضيف عبارة category_id IN (NULL)، فهذا غريب جدًا:

Post.public_posts_count_per_day(4.weeks.ago, Time.zone.now)
إعجاب واحد (1)