أبحث عن المساهمة في GitHub - discourse/discourse-assign: Plugin for assigning users to a topic وأود إضافة ميزة إلغاء تعيين مستخدم عند تمييز موضوع كحل. لقد قمت بإعداد خطاف ويب باستخدام webhook.site لمراقبة موضوع تجريبي تم تمييزه كحل، ولكن الاستجابة هي كائن مختلف برؤوس مختلفة عن موضوع تم إغلاقه، على سبيل المثال.
في المثال أدناه، ما هي حالة الموضوع التي يجب البحث عنها عندما يكون للموضوع حل؟
on(:topic_status_updated) do |topic, status, enabled|
if SiteSetting.unassign_on_close && (status == "closed" || status == "autoclosed") && enabled &&
Assignment.exists?(topic_id: topic.id, active: true)
assigner = ::Assigner.new(topic, Discourse.system_user)
assigner.unassign(silent: true, deactivate: true)
topic
.posts
.joins(:assignment)
.find_each do |post|
assigner = ::Assigner.new(post, Discourse.system_user)
assigner.unassign(silent: true, deactivate: true)
end
MessageBus.publish("/topic/#{topic.id}", reload_topic: true, refresh_stream: true)
end
end