mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 01:16:38 -06:00
FIX: automatically in/decrement topic_tags.pm_topic_count
This commit is contained in:
parent
be891e1c2e
commit
a512b181d9
@ -3,11 +3,14 @@ class TopicTag < ActiveRecord::Base
|
||||
belongs_to :tag
|
||||
|
||||
after_create do
|
||||
if topic && topic.archetype != Archetype.private_message
|
||||
if topic
|
||||
if topic.archetype == Archetype.private_message
|
||||
tag.increment!(:pm_topic_count)
|
||||
else
|
||||
tag.increment!(:topic_count)
|
||||
|
||||
if topic.category_id
|
||||
if stat = CategoryTagStat.where(tag_id: tag_id, category_id: topic.category_id).first
|
||||
if stat = CategoryTagStat.find_by(tag_id: tag_id, category_id: topic.category_id)
|
||||
stat.increment!(:topic_count)
|
||||
else
|
||||
CategoryTagStat.create(tag_id: tag_id, category_id: topic.category_id, topic_count: 1)
|
||||
@ -15,16 +18,21 @@ class TopicTag < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
after_destroy do
|
||||
if topic && topic.archetype != Archetype.private_message
|
||||
if topic.category_id && stat = CategoryTagStat.where(tag_id: tag_id, category: topic.category_id).first
|
||||
if topic
|
||||
if topic.archetype == Archetype.private_message
|
||||
tag.decrement!(:pm_topic_count)
|
||||
else
|
||||
if topic.category_id && stat = CategoryTagStat.find_by(tag_id: tag_id, category: topic.category_id)
|
||||
stat.topic_count == 1 ? stat.destroy : stat.decrement!(:topic_count)
|
||||
end
|
||||
|
||||
tag.decrement!(:topic_count)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# == Schema Information
|
||||
|
@ -181,9 +181,7 @@ module DiscourseTagging
|
||||
end
|
||||
|
||||
def self.hidden_tag_names(guardian = nil)
|
||||
return [] if guardian&.is_staff?
|
||||
|
||||
hidden_tags_query.pluck(:name)
|
||||
guardian&.is_staff? ? [] : hidden_tags_query.pluck(:name)
|
||||
end
|
||||
|
||||
def self.hidden_tags_query
|
||||
|
Loading…
Reference in New Issue
Block a user