Roman
(Roman Rizzi)
6 يوليو 2020، 8:19م
198
أنت محق. يحدث خطأ فرز قائمة المراجعة لأن هناك عناصر قابلة للمراجعة من Akismet في قاعدة البيانات بعد إزالة الإضافة. أرى حلين محتملين هنا:
توفير مهمة rake لحذف هذه الصفوف من قاعدة البيانات قبل أن يقرر المستخدم إزالة الإضافة بشكل دائم.
تطبيق نطاق افتراضي على فئة Reviewable يستبعد هذه الصفوف إذا كانت الإضافة معطلة.
ما رأيك؟
4 إعجابات
Roman:
التصحيح متاح الآن على إصدارات tests-passed و stable.
ومع ذلك، لا يزال هناك مشكلة أخرى حيث لا تظهر صور المنشورات المرفوضة في قائمة الانتظار ضمن قائمة المراجعة. يقوم النظام بإزالتها تلقائيًا نظرًا لعدم الحاجة إلى الاحتفاظ بها. نخطط لاستبدالها بنص يوضح ذلك.
شيء آخر، يبدو أن الصور غير مرئية في معاينة المحرر إذا قمت بتحرير موضوع أو منشور في قائمة الانتظار.
إعجابَين (2)
Roman
(Roman Rizzi)
6 يوليو 2020، 9:35م
200
هل يحدث ذلك عندما يكون المنشور في انتظار المراجعة؟ أم بعد رفضه؟ كما ذكرت سابقًا، يقوم النظام بحذف تلقائيًا تحميلات المنشورات المرفوضة الموضوعة في قائمة الانتظار.
3 إعجابات
نعم، يحدث ذلك عندما تكون في انتظار المراجعة @Roman ، فالصور غير مرئية بالنسبة لي في معاينة المحرر.
إعجابَين (2)
eviltrout
(Robin Ward)
7 يوليو 2020، 1:32م
202
أعتقد أن إلغاء تثبيت الإضافة أمر نادر، ومن المرجح أن يؤدي أمر النطاق الافتراضي إلى إدخال أخطاء.
أعتقد أنه من المعقول أن نضيف مهمة rake، ثم نضعها في ملف README ضمن قسم “إلغاء التثبيت” مع تعليمات لتنفيذها لحذف السجلات القديمة. دعنا نفعل ذلك!
4 إعجابات
لقد جربت تعطيل ‘إشعار حول المنشورات المعلقة بعد’ عن طريق ضبطه على 0 وعلى 2000000000. لا يزال لدي الكثير من رسائل الإشعار المتكررة التي تقول ‘يجب مراجعة عناصر x’.
إعجاب واحد (1)
Roman
(Roman Rizzi)
8 يوليو 2020، 1:01م
204
النظام يرسلها لأن هناك عناصر معلقة في الطابور. الإعداد الذي غيّره مخصص لتذكيرات المنشورات المعلقة، اضبط notify_about_flags_after على 0 بدلاً من ذلك.
6 إعجابات
Roman
(Roman Rizzi)
8 يوليو 2020، 9:35م
205
تتوفر هذه المهمة الآن. يمكنك حذف جميع السجلات المرتبطة بالإضافة من قاعدة البيانات عن طريق تنفيذ الأمر التالي:
bundle exec rake akismet_uninstall:delete_reviewables
تأكد من تثبيت الإضافة وقراءة قسم إزالة التثبيت في ملف README:
give spam a whoopin
7 إعجابات
شكرًا لك @Roman - يمكنني تأكيد أن تعديل notify_about_flags_after إلى 0 أوقف الإشعارات
نقدر حقًا إضافة مهمة rake لهذا! سأقوم بإعادة تثبيت Akismet وتشغيل مهمة rake لاحقًا اليوم عندما يكون حركة المرور في ذروة منخفضة، ثم سأقوم بتحديث هذا المنشور بالنتائج.
4 إعجابات
هل لديك أي آراء بخصوص هذا؟ @Roman @eviltrout
يبدو أن المستخدمين الذين تُنقل مشاركاتهم مباشرة إلى قائمة المراجعة يمكنهم تجاوز عدد كبير من حدود المعدل لإنشاء المواضيع والمشاركات/الردود.
خيارات حدود المعدل التي يبدو أنه يمكن تجاوزها:
حدود المعدل لإنشاء موضوع، حدود المعدل للمستخدم الجديد لإنشاء موضوع، الحد الأقصى للمواضيع يوميًا، حدود المعدل لإنشاء مشاركة، حدود المعدل للمستخدم الجديد لإنشاء مشاركة، الحد الأدنى للدقائق بين المشاركات الفريدة، الحد الأقصى للردود المتتالية.
وكذلك منع الارتفاع باستخدام إضافة no bump: Discourse No Bump - #26
خيارات إرسال المواضيع والمشاركات مباشرة إلى قائمة المراجعة:
‘عدد المشاركات المعتمدة’ (المستخدمون الجدد الذين يحتاجون إلى اعتماد مواضيعهم/مشاركاتهم الأولى) بالإضافة إلى خيارات الفئة الفردية لـ ‘تطلب موافقة المشرف على جميع المواضيع الجديدة’ وعلى الأرجح (لقد جربت خيار المواضيع الجديدة فقط) ‘تطلب موافقة المشرف على جميع الردود الجديدة’.
إعجاب واحد (1)
eviltrout
(Robin Ward)
9 يوليو 2020، 3:54م
208
نعم، هذا متعمد. إذا تم مراجعة منشورك واعتُبر مقبولاً، فسيتم نشره بغض النظر عن الحدود.
7 إعجابات
آه، فهمت. شكرًا على الشرح. سأشارك فقط تجاربي مع هذا لأغراض المرجعية.
بدون فرض الحدود، يُتاح للمستخدمين الجدد (الذين يحتاجون إلى موافقة على عدد من المنشورات) غمر قائمة المراجعة بحرية مع عدم وجود حدود أو حدود ضئيلة، بينما تكون الحسابات الموثوقة الأقدم محدودة بالحدود الزمنية. باستثناء الحالات التي تكون فيها خيارات الفئة لتمكين الموافقة على جميع المواضيع أو الردود مفعلة، حيث لا يكون للمستخدمين الموثوقين القدامى حدود أو تكون حدودهم ضئيلة.
سيكون الأمر يتطلب جهدًا كبيرًا، لكنه قابل للتحقيق إلى حد ما للموافقة على جميع المواضيع الجديدة، بالإضافة إلى المواضيع/المنشورات الأولية التي ينشئها المستخدمون الجدد (إذا كانوا خاضعين للحدود الزمنية)، لكنه يصبح شبه غير ممكن في حالتي عندما يتمكن المستخدمون من غمر قائمة المراجعة.
على أي حال، شكرًا جزيلاً على التوضيح أن هذا التصميم مقصود. إنه مفيد جدًا. أعتقد أنني سأراجع استراتيجيتي وأتعطل الخيارات التي ترسل المواضيع أو المنشورات مباشرة إلى قائمة المراجعة، محجوزةً لها بشكل أساسي للمحتوى المبلغ عنه. ثم ببساطة أدير المنشورات الحية الخاضعة للحدود الزمنية بعد وقوعها، مما سيعمل بشكل جيد وسيكون أسرع للمستخدمين أيضًا.
إعجاب واحد (1)
So I went ahead and reinstalled Akismet and ran the rake task. My process was:
cd /var/discourse
./launcher enter app
bundle exec rake akismet_uninstall:delete_reviewables
I received an error unfortunately, tried running it a few times:
rake aborted!
ActiveRecord::NoDatabaseError: FATAL: Peer authentication failed for user "discourse"
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/postgresql_adapter.rb:50:in `rescue in postgresql_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/postgresql_adapter.rb:33:in `postgresql_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:887:in `new_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:931:in `checkout_new_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:910:in `try_to_checkout_new_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:871:in `acquire_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:593:in `checkout'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:437:in `connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:1119:in `retrieve_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_handling.rb:221:in `retrieve_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_handling.rb:189:in `connection'
/var/www/discourse/lib/site_settings/db_provider.rb:61:in `table_exists?'
/var/www/discourse/lib/site_settings/db_provider.rb:16:in `all'
/var/www/discourse/lib/site_settings/defaults_provider.rb:29:in `db_all'
/var/www/discourse/lib/site_setting_extension.rb:287:in `block in refresh!'
/var/www/discourse/lib/site_setting_extension.rb:284:in `synchronize'
/var/www/discourse/lib/site_setting_extension.rb:284:in `refresh!'
/var/www/discourse/lib/site_setting_extension.rb:505:in `block in setup_methods'
/var/www/discourse/config/initializers/004-message_bus.rb:120:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:55:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:55:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:318:in `block in load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:291:in `load_dependency'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:318:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/engine.rb:666:in `block in load_config_initializer'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.1/lib/active_support/notifications.rb:182:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/engine.rb:665:in `load_config_initializer'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/engine.rb:625:in `block (2 levels) in <class:Engine>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/engine.rb:624:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/engine.rb:624:in `block in <class:Engine>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/initializable.rb:32:in `instance_exec'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/initializable.rb:32:in `run'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/initializable.rb:61:in `block in run_initializers'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/initializable.rb:50:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/initializable.rb:50:in `tsort_each_child'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/initializable.rb:60:in `run_initializers'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/application.rb:363:in `initialize!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/railtie.rb:190:in `public_send'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/railtie.rb:190:in `method_missing'
/var/www/discourse/config/environment.rb:7:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/kernel.rb:23:in `require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:324:in `block in require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:291:in `load_dependency'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:324:in `require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/application.rb:339:in `require_environment!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/application.rb:523:in `block in run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Caused by:
PG::ConnectionBad: FATAL: Peer authentication failed for user "discourse"
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/pg-1.2.3/lib/pg.rb:58:in `initialize'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/pg-1.2.3/lib/pg.rb:58:in `new'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/pg-1.2.3/lib/pg.rb:58:in `connect'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/postgresql_adapter.rb:46:in `postgresql_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:887:in `new_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:931:in `checkout_new_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:910:in `try_to_checkout_new_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:871:in `acquire_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:593:in `checkout'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:437:in `connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_adapters/abstract/connection_pool.rb:1119:in `retrieve_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_handling.rb:221:in `retrieve_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activerecord-6.0.3.1/lib/active_record/connection_handling.rb:189:in `connection'
/var/www/discourse/lib/site_settings/db_provider.rb:61:in `table_exists?'
/var/www/discourse/lib/site_settings/db_provider.rb:16:in `all'
/var/www/discourse/lib/site_settings/defaults_provider.rb:29:in `db_all'
/var/www/discourse/lib/site_setting_extension.rb:287:in `block in refresh!'
/var/www/discourse/lib/site_setting_extension.rb:284:in `synchronize'
/var/www/discourse/lib/site_setting_extension.rb:284:in `refresh!'
/var/www/discourse/lib/site_setting_extension.rb:505:in `block in setup_methods'
/var/www/discourse/config/initializers/004-message_bus.rb:120:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:55:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:55:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:318:in `block in load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:291:in `load_dependency'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:318:in `load'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/engine.rb:666:in `block in load_config_initializer'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.1/lib/active_support/notifications.rb:182:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/engine.rb:665:in `load_config_initializer'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/engine.rb:625:in `block (2 levels) in <class:Engine>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/engine.rb:624:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/engine.rb:624:in `block in <class:Engine>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/initializable.rb:32:in `instance_exec'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/initializable.rb:32:in `run'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/initializable.rb:61:in `block in run_initializers'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/initializable.rb:50:in `each'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/initializable.rb:50:in `tsort_each_child'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/initializable.rb:60:in `run_initializers'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/application.rb:363:in `initialize!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/railtie.rb:190:in `public_send'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/railtie.rb:190:in `method_missing'
/var/www/discourse/config/environment.rb:7:in `<main>'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/zeitwerk-2.3.0/lib/zeitwerk/kernel.rb:23:in `require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:324:in `block in require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:291:in `load_dependency'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/activesupport-6.0.3.1/lib/active_support/dependencies.rb:324:in `require'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/application.rb:339:in `require_environment!'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/railties-6.0.3.1/lib/rails/application.rb:523:in `block in run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => akismet_uninstall:delete_reviewables => environment
(See full trace by running task with --trace)
إعجاب واحد (1)
Roman
(Roman Rizzi)
10 يوليو 2020، 6:59م
211
هل يمكنك تجربة التبديل إلى مستخدم discourse بتشغيل su discourse قبل تنفيذ المهمة؟
4 إعجابات
شكرًا لك يا @Roman ! نقدر ذلك كثيرًا
لقد جربت مرة أخرى باستخدام su discourse قبل تشغيل مهمة rake، وقد نجح الأمر تمامًا.
يعمل أيضًا ترتيب “تاريخ الإنشاء (عكسي)” بشكل جيد الآن.
3 إعجابات
لقد قمت مؤخرًا بتعيين إعداد الموقع ‘الدعوة فقط’، والآن ظهر عنصر في قائمة المراجعة تم إنشاؤه بواسطة النظام لحساب مستخدم، وتمت الإشارة إليه على أنه ‘يحتاج إلى موافقة’.
الغريب في الأمر أن هذا حساب موجود منذ 4 سنوات ويحتوي على منشورات متعددة ومستوى ثقة 2، لكنه لم يكن نشطًا مؤخرًا (كان آخر منشور قبل عامين)، ومع ذلك قام بتسجيل الدخول اليوم، وعندها تم رفع علم المراجعة.
لم أستخدم خيار ‘موافقة المستخدم’ بعد، ولا يزال العنصر في قائمة المراجعة، لكن يبدو أن الحساب مفعل وقادر على استخدام المنتدى (كما ينبغي).
يبدو أن قائمة المراجعة تحدد الحسابات التي تم إعادة تنشيطها مؤخرًا على أنها حسابات جديدة وتقوم بوضع علامة عليها للمراجعة عند تعيين إعداد ‘الدعوة فقط’؟
تحرير: حدث هذا أيضًا الآن لحساب حديث جدًا، تم إنشاؤه قبل أيام فقط من تمكين هذا الإعداد.
إعجاب واحد (1)
eviltrout
(Robin Ward)
13 يوليو 2020، 4:29م
214
أعتقد أنني رأيت هذا من قبل عند التبديل إلى الوضع “بدعوة فقط”. في بعض الحالات، يعتقد Discourse أنك بحاجة إلى الموافقة على المستخدم لأنه حصل على الوصول إلى الموقع عبر التسجيل العادي. عند تغيير هذا المفتاح، لا يتم تعيين علامة “تمت الموافقة” في سجله.
3 إعجابات
لقد قمت بالتحقيق في الأمر بشكل أعمق، والمكان الوحيد الذي تشترك فيه هذه الحسابات (أربعة في المجموع) هو أنها جميعًا سجّلت الدخول باستخدام أحد مسارات تسجيل الدخول عبر البريد الإلكتروني (عبر forgot_password أو مباشرة عبر email_login) بعد تعيين invite_only.
إعجابَين (2)
cpradio
(cpradio)
26 أغسطس 2020، 2:20ص
217
markersocial:
في الوقت الحالي، الخيارات المتاحة هي:
اعتماد المنشور | رفض المنشور | حذف المستخدم | تعديل
أعتقد أن إضافة خيارات الصمت والإيقاف المؤقت لهذه الأنواع من المنشورات المعلقة قد يكون مفيدًا للغاية. على سبيل المثال: رفض المنشور مع صمت المستخدم أو إيقافه مؤقتًا. هذا سيعطي المشرفين خيارًا بين صمت المستخدم أو إيقافه مؤقتًا أو محوه من السجل مباشرةً من قائمة المراجعة.
هل تم التفكير في إضافة خيار الإيقاف المؤقت للمواضيع/المنشورات المراجعة التي تم تحديدها بواسطة Akismet؟ تم اقتراح ذلك على نسختنا، ببساطة لأننا نستخدم مصادقة SSO، لذا فإن حذف الأعضاء نادرًا ما يفيد، حيث يمكن للأعضا إعادة تسجيل الدخول إلى حسابهم على المزود الرئيسي والعودة فورًا إلى المنتديات للمتابعة. أما الإيقاف المؤقت فيجعل الأمر أكثر صعوبة عليهم، حيث يتعين عليهم إنشاء حساب جديد على المزود باستخدام عنوان بريد إلكتروني جديد.
أعلم أن هذا طلب غريب بعض الشيء، لكنه سؤال يطرحه مشرفونا بشكل متكرر. اليوم، يقومون يدويًا بالبحث في النظام لإيقاف المستخدم مؤقتًا، مما يخلق جهدًا إضافيًا عليهم، لكنه يستحق الجهد لأن المستخدم في النهاية غير راغب في التخلي عن عنوان بريد إلكتروني آخر.
6 إعجابات
أعتقد أنه يجب أن يكون زر قائمة منسدلة، بدلاً من إضافة عدد كبير من الأزرار الإضافية.
4 إعجابات