addresses #2674: aliases+updates should migrate saved searches
This commit is contained in:
@@ -17,6 +17,13 @@ module Moderator
|
||||
tags = (post.tag_array - normalized_antecedent + normalized_consequent).join(" ")
|
||||
post.update_attributes(:tag_string => tags)
|
||||
end
|
||||
|
||||
escaped = Regexp.escape(antecedent)
|
||||
SavedSearch.where("tag_query like ?", "%#{antecedent}%").find_each do |ss|
|
||||
ss.tag_query = ss.tag_query.sub(/(?:^| )#{escaped}(?:$| )/, " #{consequent} ").strip.gsub(/ /, " ")
|
||||
ss.save
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -103,6 +103,7 @@ class TagAlias < ActiveRecord::Base
|
||||
CurrentUser.scoped(admin, "127.0.0.1") do
|
||||
update_column(:status, "processing")
|
||||
move_aliases_and_implications
|
||||
move_saved_searches
|
||||
clear_all_cache
|
||||
ensure_category_consistency
|
||||
update_posts
|
||||
@@ -166,6 +167,14 @@ class TagAlias < ActiveRecord::Base
|
||||
end
|
||||
end
|
||||
|
||||
def move_saved_searches
|
||||
escaped = Regexp.escape(antecedent_name)
|
||||
SavedSearch.where("tag_query like ?", "%#{antecedent_name}%").find_each do |ss|
|
||||
ss.tag_query = ss.tag_query.sub(/(?:^| )#{escaped}(?:$| )/, " #{consequent_name} ").strip.gsub(/ /, " ")
|
||||
ss.save
|
||||
end
|
||||
end
|
||||
|
||||
def move_aliases_and_implications
|
||||
aliases = TagAlias.where(["consequent_name = ?", antecedent_name])
|
||||
aliases.each do |ta|
|
||||
|
||||
Reference in New Issue
Block a user