كيفية استخدام apply_custom_query من topic_query.rb في مواضيع صفحة المراجعة في الإضافة

مرحبًا،

لدي إضافة (plugin) تستخدم دالة TopicQuery.add_custom_filter.

تطبق الإضافة فلتر المخصص الخاص بي كما هو متوقع، ولكن فقط على العرض الافتراضي للمواضيع المعروضة في الصفحة الرئيسية.

لاحظت أن السبب في ذلك هو أنه في ملف topic_query.rb، داخل دالة default_results، هناك استدعاء لتطبيق فلاتر المخصصة الخاصة بي عبر:

    result = apply_ordering(result, options)

هذا أمر رائع، لكنه ليس بالضبط ما أردته. كنت أرغب في تطبيق هذا الفلتر على أي شيء يظهر تحت صفحة /review. لست متأكدًا من كيفية القيام بذلك.

هل هناك شخص على دراية بهذا الجزء من الكود؟

يمكن رؤية طريقة التصفية التي أستخدمها حاليًا هنا:
https://github.com/hms-networks/discourse-location-filters/blob/test/app/controllers/filter_controller.rb

وملف discourse.rb الذي أتحدث عنه هو هذا:

أعتقد أنني ارتكبت خطأً عندما بدأت في اتباع مسار استعلام الموضوع هذا، لأن يبدو أن reviewables لا تستخدم حتى دوال استعلام الموضوع هذه، لذا لا يمكنني تطبيق فلتر مخصص بهذه الطريقة.

أيضًا، لا يزال لدي بعض الارتباك بشأن معلمات apply_custom_filters. هل تشير النتائج إلى كائن هاش في Ruby للمواضيع؟ وهل topic_query مجرد مثيل للفئة؟

في المستقبل، لست متأكدًا مما إذا كانت هذه هي الطريقة الصحيحة للقيام بذلك، لكنني سأحاول معرفة كيفية تجاوز دالة reviewables_controller#index لحذف المواضيع من قائمة reviewables بناءً على المستخدم الحالي.

نود جدًا سماع نصائحك واقتراحاتك هنا :slight_smile: