BURs: don't try to move wikis/artists twice.
* Remove unnecessary rename_aliased_pages option. This option was always enabled. * Don't try to rename the artist and wiki page inside AliasAndImplicationImporter when an alias is approved. This is already handled by TagAlias#process!.
This commit is contained in:
@@ -1,11 +1,10 @@
|
|||||||
class AliasAndImplicationImporter
|
class AliasAndImplicationImporter
|
||||||
class Error < RuntimeError; end
|
class Error < RuntimeError; end
|
||||||
attr_accessor :text, :commands, :forum_id, :rename_aliased_pages, :skip_secondary_validations
|
attr_accessor :text, :commands, :forum_id, :skip_secondary_validations
|
||||||
|
|
||||||
def initialize(text, forum_id, rename_aliased_pages = "0", skip_secondary_validations = true)
|
def initialize(text, forum_id, skip_secondary_validations = true)
|
||||||
@forum_id = forum_id
|
@forum_id = forum_id
|
||||||
@text = text
|
@text = text
|
||||||
@rename_aliased_pages = rename_aliased_pages
|
|
||||||
@skip_secondary_validations = skip_secondary_validations
|
@skip_secondary_validations = skip_secondary_validations
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -19,10 +18,6 @@ class AliasAndImplicationImporter
|
|||||||
validate(tokens)
|
validate(tokens)
|
||||||
end
|
end
|
||||||
|
|
||||||
def rename_aliased_pages?
|
|
||||||
@rename_aliased_pages == "1"
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.tokenize(text)
|
def self.tokenize(text)
|
||||||
text.split(/\r\n|\r|\n/).reject(&:blank?).map do |line|
|
text.split(/\r\n|\r|\n/).reject(&:blank?).map do |line|
|
||||||
line = line.gsub(/[[:space:]]+/, " ").strip
|
line = line.gsub(/[[:space:]]+/, " ").strip
|
||||||
@@ -105,7 +100,6 @@ class AliasAndImplicationImporter
|
|||||||
unless tag_alias.valid?
|
unless tag_alias.valid?
|
||||||
raise Error, "Error: #{tag_alias.errors.full_messages.join("; ")} (create alias #{tag_alias.antecedent_name} -> #{tag_alias.consequent_name})"
|
raise Error, "Error: #{tag_alias.errors.full_messages.join("; ")} (create alias #{tag_alias.antecedent_name} -> #{tag_alias.consequent_name})"
|
||||||
end
|
end
|
||||||
tag_alias.rename_wiki_and_artist if rename_aliased_pages?
|
|
||||||
tag_alias.approve!(approver: approver)
|
tag_alias.approve!(approver: approver)
|
||||||
|
|
||||||
when :create_implication
|
when :create_implication
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ class BulkUpdateRequest < ApplicationRecord
|
|||||||
def approve!(approver)
|
def approve!(approver)
|
||||||
transaction do
|
transaction do
|
||||||
CurrentUser.scoped(approver) do
|
CurrentUser.scoped(approver) do
|
||||||
AliasAndImplicationImporter.new(script, forum_topic_id, "1", true).process!
|
AliasAndImplicationImporter.new(script, forum_topic_id, true).process!
|
||||||
update!(status: "approved", approver: approver, skip_secondary_validations: true)
|
update!(status: "approved", approver: approver, skip_secondary_validations: true)
|
||||||
forum_updater.update("The #{bulk_update_request_link} (forum ##{forum_post.id}) has been approved by @#{approver.name}.")
|
forum_updater.update("The #{bulk_update_request_link} (forum ##{forum_post.id}) has been approved by @#{approver.name}.")
|
||||||
end
|
end
|
||||||
@@ -110,7 +110,7 @@ class BulkUpdateRequest < ApplicationRecord
|
|||||||
|
|
||||||
module ValidationMethods
|
module ValidationMethods
|
||||||
def validate_script
|
def validate_script
|
||||||
AliasAndImplicationImporter.new(script, forum_topic_id, "1", skip_secondary_validations).validate!
|
AliasAndImplicationImporter.new(script, forum_topic_id, skip_secondary_validations).validate!
|
||||||
rescue AliasAndImplicationImporter::Error => e
|
rescue AliasAndImplicationImporter::Error => e
|
||||||
errors[:base] << e.message
|
errors[:base] << e.message
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -92,8 +92,9 @@ class AliasAndImplicationImporterTest < ActiveSupport::TestCase
|
|||||||
tag2 = create(:tag, name: "bbb")
|
tag2 = create(:tag, name: "bbb")
|
||||||
wiki = create(:wiki_page, title: "aaa")
|
wiki = create(:wiki_page, title: "aaa")
|
||||||
artist = create(:artist, name: "aaa")
|
artist = create(:artist, name: "aaa")
|
||||||
@importer = AliasAndImplicationImporter.new("create alias aaa -> bbb", "", "1")
|
@importer = AliasAndImplicationImporter.new("create alias aaa -> bbb", "")
|
||||||
@importer.process!
|
@importer.process!
|
||||||
|
perform_enqueued_jobs
|
||||||
assert_equal("bbb", artist.reload.name)
|
assert_equal("bbb", artist.reload.name)
|
||||||
assert_equal("bbb", wiki.reload.title)
|
assert_equal("bbb", wiki.reload.title)
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user