Follow up - Fixed issue #1838 - Follow up issue #1752: Unable to migrate old object manager attribute fields.
This commit is contained in:
parent
a088321498
commit
2eaae8e5c4
4 changed files with 127 additions and 2 deletions
|
@ -127,7 +127,8 @@ class ObjectManagerAttributesController < ApplicationController
|
||||||
permitted[:data_option][:null] = true
|
permitted[:data_option][:null] = true
|
||||||
end
|
end
|
||||||
|
|
||||||
if !permitted[:data_option][:options].is_a?(Hash) && !permitted[:data_option][:options].is_a?(Array)
|
if !permitted[:data_option][:options].is_a?(Hash) &&
|
||||||
|
!permitted[:data_option][:options].is_a?(Array)
|
||||||
permitted[:data_option][:options] = {}
|
permitted[:data_option][:options] = {}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,8 @@ class CheckForObjectAttributes < ActiveRecord::Migration[5.1]
|
||||||
end
|
end
|
||||||
|
|
||||||
def fix_options(attribute)
|
def fix_options(attribute)
|
||||||
return if attribute[:data_option][:options].is_a?(Hash) || attribute[:data_option][:options].is_a?(Array)
|
return if attribute[:data_option][:options].is_a?(Hash)
|
||||||
|
return if attribute[:data_option][:options].is_a?(Array)
|
||||||
attribute[:data_option][:options] = {}
|
attribute[:data_option][:options] = {}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,18 @@ RSpec.describe CheckForObjectAttributes, type: :db_migration do
|
||||||
attribute.reload.data_option
|
attribute.reload.data_option
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'does not change tree_select attribute' do
|
||||||
|
system_init_done
|
||||||
|
|
||||||
|
attribute = create(:object_manager_attribute_tree_select)
|
||||||
|
|
||||||
|
expect do
|
||||||
|
migrate
|
||||||
|
end.not_to change {
|
||||||
|
attribute.reload.data_option
|
||||||
|
}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context '[:data_option]' do
|
context '[:data_option]' do
|
||||||
|
|
|
@ -72,4 +72,115 @@ FactoryBot.define do
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
factory :object_manager_attribute_tree_select, parent: :object_manager_attribute do
|
||||||
|
data_type 'tree_select'
|
||||||
|
data_option do
|
||||||
|
{
|
||||||
|
'options' => [
|
||||||
|
{
|
||||||
|
'name' => 'Incident',
|
||||||
|
'value' => 'Incident',
|
||||||
|
'children' => [
|
||||||
|
{
|
||||||
|
'name' => 'Hardware',
|
||||||
|
'value' => 'Incident::Hardware',
|
||||||
|
'children' => [
|
||||||
|
{
|
||||||
|
'name' => 'Monitor',
|
||||||
|
'value' => 'Incident::Hardware::Monitor'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name' => 'Mouse',
|
||||||
|
'value' => 'Incident::Hardware::Mouse'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name' => 'Keyboard',
|
||||||
|
'value' => 'Incident::Hardware::Keyboard'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name' => 'Softwareproblem',
|
||||||
|
'value' => 'Incident::Softwareproblem',
|
||||||
|
'children' => [
|
||||||
|
{
|
||||||
|
'name' => 'CRM',
|
||||||
|
'value' => 'Incident::Softwareproblem::CRM'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name' => 'EDI',
|
||||||
|
'value' => 'Incident::Softwareproblem::EDI'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name' => 'SAP',
|
||||||
|
'value' => 'Incident::Softwareproblem::SAP',
|
||||||
|
'children' => [
|
||||||
|
{
|
||||||
|
'name' => 'Authentication',
|
||||||
|
'value' => 'Incident::Softwareproblem::SAP::Authentication'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name' => 'Not reachable',
|
||||||
|
'value' => 'Incident::Softwareproblem::SAP::Not reachable'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name' => 'MS Office',
|
||||||
|
'value' => 'Incident::Softwareproblem::MS Office',
|
||||||
|
'children' => [
|
||||||
|
{
|
||||||
|
'name' => 'Excel',
|
||||||
|
'value' => 'Incident::Softwareproblem::MS Office::Excel'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name' => 'PowerPoint',
|
||||||
|
'value' => 'Incident::Softwareproblem::MS Office::PowerPoint'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name' => 'Word',
|
||||||
|
'value' => 'Incident::Softwareproblem::MS Office::Word'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name' => 'Outlook',
|
||||||
|
'value' => 'Incident::Softwareproblem::MS Office::Outlook'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name' => 'Service request',
|
||||||
|
'value' => 'Service request',
|
||||||
|
'children' => [
|
||||||
|
{
|
||||||
|
'name' => 'New software requirement',
|
||||||
|
'value' => 'Service request::New software requirement'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name' => 'New hardware',
|
||||||
|
'value' => 'Service request::New hardware'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name' => 'Consulting',
|
||||||
|
'value' => 'Service request::Consulting'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'name' => 'Change request',
|
||||||
|
'value' => 'Change request'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
'default' => '',
|
||||||
|
'null' => true,
|
||||||
|
'relation' => '',
|
||||||
|
'maxlength' => 255,
|
||||||
|
'nulloption' => true,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue