このコミットが含まれているのは:
@@ -41,8 +41,8 @@ class TagVersionsController < ApplicationController
|
||||
rows.map do |row|
|
||||
current_names = names_for_locale(row.names, language_code)
|
||||
previous_names = names_for_locale(row.attributes['prev_names'], language_code)
|
||||
cur_aliases = current_names.reject { _1['primary_flg'] }.map { _1['name'] }
|
||||
prev_aliases = previous_names.reject { _1['primary_flg'] }.map { _1['name'] }
|
||||
cur_aliases = current_names.fetch('aliases', []).map { _1.fetch('name') }
|
||||
prev_aliases = previous_names.fetch('aliases', []).map { _1.fetch('name') }
|
||||
|
||||
cur_parent_tag_ids = split_parent_tag_ids(row.parent_tag_ids)
|
||||
prev_parent_tag_ids = split_parent_tag_ids(row.attributes['prev_parent_tag_ids'])
|
||||
@@ -66,8 +66,7 @@ class TagVersionsController < ApplicationController
|
||||
version_no: row.version_no,
|
||||
event_type: row.event_type,
|
||||
names: row.names,
|
||||
name: { current: current_names.find { _1['primary_flg'] }&.fetch('name'),
|
||||
prev: previous_names.find { _1['primary_flg'] }&.fetch('name') },
|
||||
name: { current: current_names['name'], prev: previous_names['name'] },
|
||||
category: { current: row.category, prev: row.attributes['prev_category'] },
|
||||
deprecated_at: { current: row.deprecated_at&.iso8601,
|
||||
prev: row.attributes['prev_deprecated_at']&.iso8601 },
|
||||
@@ -98,10 +97,10 @@ class TagVersionsController < ApplicationController
|
||||
def split_values(values) = values.to_s.split(/\s+/).reject(&:blank?)
|
||||
|
||||
def names_for_locale names, language_code
|
||||
values = names.is_a?(String) ? JSON.parse(names) : Array(names)
|
||||
values.select { _1['language_code'] == language_code }
|
||||
values = names.is_a?(String) ? JSON.parse(names) : names
|
||||
values&.fetch(language_code, {}) || {}
|
||||
rescue JSON::ParserError
|
||||
[]
|
||||
{}
|
||||
end
|
||||
|
||||
def split_parent_tag_ids(values) = split_values(values).map(&:to_i)
|
||||
|
||||
@@ -764,7 +764,7 @@ class TagsController < ApplicationController
|
||||
|
||||
unless target_tag_name
|
||||
if current_tag_name
|
||||
current_tag_name.update!(name:)
|
||||
current_tag_name.update!(name:, auto_generated: false)
|
||||
else
|
||||
current_tag_name = TagName.create!(
|
||||
tag:,
|
||||
@@ -790,8 +790,9 @@ class TagsController < ApplicationController
|
||||
current_tag_name.wiki_page&.update!(tag_name_id: promoted_tag_name.id)
|
||||
current_tag_name.association(:wiki_page).reset
|
||||
|
||||
current_tag_name.update!(canonical_id: promoted_tag_name.id, primary_flg: false)
|
||||
promoted_tag_name.update!(tag:, canonical_id: nil, primary_flg: true)
|
||||
current_tag_name.update!(canonical_id: promoted_tag_name.id,
|
||||
primary_flg: false, auto_generated: false)
|
||||
promoted_tag_name.update!(tag:, canonical_id: nil, primary_flg: true, auto_generated: false)
|
||||
|
||||
TagName.where(tag:,
|
||||
language_code: current_tag_name.language_code,
|
||||
@@ -832,6 +833,10 @@ class TagsController < ApplicationController
|
||||
|
||||
alias_names.each do |alias_name|
|
||||
alias_tag_name = TagName.find_by(language_code: locale.language_code, name: alias_name)
|
||||
if alias_tag_name&.primary? && alias_tag_name.tag_id && alias_tag_name.tag_id != tag.id
|
||||
alias_tag_name.errors.add(:name, 'その名前は既に使はれてゐます.')
|
||||
raise ActiveRecord::RecordInvalid, alias_tag_name
|
||||
end
|
||||
affected_tags << alias_tag_name&.tag
|
||||
end
|
||||
|
||||
@@ -851,7 +856,8 @@ class TagsController < ApplicationController
|
||||
language_code: locale.language_code,
|
||||
name: alias_name)
|
||||
alias_tag_name.script_code = locale.script_code
|
||||
alias_tag_name.update!(tag:, primary_flg: false, canonical_id: primary_tag_name.id)
|
||||
alias_tag_name.update!(tag:, primary_flg: false, auto_generated: false,
|
||||
canonical_id: primary_tag_name.id)
|
||||
end
|
||||
|
||||
affected_tags.compact.uniq.each do |affected_tag|
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする