This commit is contained in:
albert
2013-03-09 01:56:59 -05:00
parent 6a2f69f2fc
commit 1da9e24bd0
3 changed files with 14 additions and 1 deletions

View File

@@ -87,6 +87,7 @@ class Tag < ActiveRecord::Base
def update_category_cache_for_all(force = false)
if category_changed? || force
update_category_cache
update_category_post_counts if category_changed?
Danbooru.config.other_server_hosts.each do |host|
delay(:queue => host).update_category_cache
@@ -94,6 +95,12 @@ class Tag < ActiveRecord::Base
end
end
def update_category_post_counts
old_field = "tag_count_#{Danbooru.config.reverse_tag_category_mapping[category_was]}".downcase
new_field = "tag_count_#{category_name}".downcase
Post.raw_tag_match(name).update_all("#{old_field} = #{old_field} - 1, #{new_field} = #{new_field} + 1")
end
def update_category_cache
Cache.put("tc:#{Cache.sanitize(name)}", category, 1.hour)
end

View File

@@ -80,7 +80,7 @@ class CommentTest < ActiveSupport::TestCase
comment_vote = c1.vote!("up")
assert_equal([], comment_vote.errors.full_messages)
comment_vote = c1.vote!("up")
assert_equal(["User has already voted for this comment"], comment_vote.errors.full_messages)
assert_equal(["You have already voted for this comment"], comment_vote.errors.full_messages)
assert_equal(1, CommentVote.count)
assert_equal(1, CommentVote.last.score)

View File

@@ -373,6 +373,12 @@ class PostTest < ActiveSupport::TestCase
should "update the category cache of the tag" do
assert_equal(Tag.categories.copyright, Cache.get("tc:abc"))
end
should "update the tag counts of the posts" do
assert_equal(0, @post.tag_count_artist)
assert_equal(1, @post.tag_count_copyright)
assert_equal(0, @post.tag_count_general)
end
end
context "tagged with a metatag" do