diff --git a/lib/import/otrs/dynamic_field_factory.rb b/lib/import/otrs/dynamic_field_factory.rb index 1937dbfdd..4d730ce2a 100644 --- a/lib/import/otrs/dynamic_field_factory.rb +++ b/lib/import/otrs/dynamic_field_factory.rb @@ -8,9 +8,10 @@ module Import extend self def skip?(record, *_args) - return true if !importable?(record) return true if skip_field?(record['Name']) - false + return false if importable?(record) + @skip_fields.push(record['Name']) + true end def backend_class(record, *_args) @@ -45,7 +46,8 @@ module Import end def skip_fields - %w(ProcessManagementProcessID ProcessManagementActivityID ZammadMigratorChanged ZammadMigratorChangedOld) + return @skip_fields if @skip_fields + @skip_fields = %w(ProcessManagementProcessID ProcessManagementActivityID ZammadMigratorChanged ZammadMigratorChangedOld) end end end diff --git a/spec/fixtures/import/otrs/dynamic_field/unsupported/master_slave.json b/spec/fixtures/import/otrs/dynamic_field/unsupported/master_slave.json new file mode 100644 index 000000000..0d02ccef0 --- /dev/null +++ b/spec/fixtures/import/otrs/dynamic_field/unsupported/master_slave.json @@ -0,0 +1,16 @@ +{ + "ID": "8", + "ChangeTime": "2014-09-12 09:31:58", + "InternalField": "0", + "ValidID": "1", + "CreateTime": "2014-06-19 12:11:23", + "Label": "Master Slave", + "FieldOrder": "8", + "Config": { + "DefaultValue": "", + "Link": "" + }, + "FieldType": "MasterSlave", + "Name": "MasterSlave", + "ObjectType": "Ticket" +} \ No newline at end of file diff --git a/spec/import/otrs/dynamic_field_factory_spec.rb b/spec/import/otrs/dynamic_field_factory_spec.rb index e10686298..824b6f3f4 100644 --- a/spec/import/otrs/dynamic_field_factory_spec.rb +++ b/spec/import/otrs/dynamic_field_factory_spec.rb @@ -12,6 +12,11 @@ RSpec.describe Import::OTRS::DynamicFieldFactory do expect(described_class).to respond_to('skip_field?') end + it 'skips fields that have unsupported types' do + described_class.import([load_dynamic_field_json('unsupported/master_slave')]) + expect(described_class.skip_field?('MasterSlave')).to be true + end + it 'imports OTRS DynamicFields' do expect(Import::OTRS::DynamicField::Text).to receive(:new) start_import_test