Browse Source

Fixes #4246 - Type attribute is being ignored on Zendesk import.

Dominik Klein 2 years ago
parent
commit
7902e75e28

+ 5 - 1
lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/base.rb

@@ -39,7 +39,7 @@ class Sequencer
                   editable:      !attribute.removable,
                   editable:      !attribute.removable,
                   active:        attribute.active,
                   active:        attribute.active,
                   screens:       screens(attribute),
                   screens:       screens(attribute),
-                  position:      attribute.position,
+                  position:      position(attribute),
                   created_by_id: 1,
                   created_by_id: 1,
                   updated_by_id: 1,
                   updated_by_id: 1,
                 }
                 }
@@ -73,6 +73,10 @@ class Sequencer
                 }
                 }
               end
               end
 
 
+              def position(attribute)
+                attribute.position
+              end
+
               def data_type(attribute)
               def data_type(attribute)
                 attribute.type
                 attribute.type
               end
               end

+ 1 - 1
lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/checkbox.rb

@@ -19,7 +19,7 @@ class Sequencer
 
 
               private
               private
 
 
-              def data_type(_attribute)
+              def data_type(...)
                 'boolean'
                 'boolean'
               end
               end
             end
             end

+ 1 - 1
lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/integer.rb

@@ -17,7 +17,7 @@ class Sequencer
 
 
               private
               private
 
 
-              def data_type(_attribute)
+              def data_type(...)
                 'integer'
                 'integer'
               end
               end
             end
             end

+ 1 - 1
lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/multiselect.rb

@@ -7,7 +7,7 @@ class Sequencer
         module ObjectAttribute
         module ObjectAttribute
           module AttributeType
           module AttributeType
             class Multiselect < Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Select
             class Multiselect < Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Select
-              def data_type(_attribute)
+              def data_type(...)
                 'multiselect'
                 'multiselect'
               end
               end
             end
             end

+ 1 - 1
lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/regexp.rb

@@ -18,7 +18,7 @@ class Sequencer
 
 
               private
               private
 
 
-              def data_type(_attribute)
+              def data_type(...)
                 'input'
                 'input'
               end
               end
             end
             end

+ 2 - 6
lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/select.rb

@@ -17,16 +17,12 @@ class Sequencer
 
 
               private
               private
 
 
-              def data_type(_attribute)
+              def data_type(...)
                 'select'
                 'select'
               end
               end
 
 
               def options(object_attribte)
               def options(object_attribte)
-                result = {}
-                object_attribte.custom_field_options.each do |entry|
-                  result[ entry['value'] ] = entry['name']
-                end
-                result
+                object_attribte.custom_field_options.to_h { |entry| [entry['value'], entry['name']] }
               end
               end
             end
             end
           end
           end

+ 1 - 1
lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/text.rb

@@ -17,7 +17,7 @@ class Sequencer
 
 
               private
               private
 
 
-              def data_type(_attribute)
+              def data_type(...)
                 'input'
                 'input'
               end
               end
             end
             end

+ 1 - 1
lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/textarea.rb

@@ -17,7 +17,7 @@ class Sequencer
 
 
               private
               private
 
 
-              def data_type(_attribute)
+              def data_type(...)
                 'textarea'
                 'textarea'
               end
               end
             end
             end

+ 30 - 0
lib/sequencer/unit/import/zendesk/object_attribute/attribute_type/tickettype.rb

@@ -0,0 +1,30 @@
+# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
+
+class Sequencer
+  class Unit
+    module Import
+      module Zendesk
+        module ObjectAttribute
+          module AttributeType
+            class Tickettype < Sequencer::Unit::Import::Zendesk::ObjectAttribute::AttributeType::Select
+              private
+
+              def position(...)
+                attribute = ObjectManager::Attribute.get(
+                  object: 'Ticket',
+                  name:   'type',
+                )
+
+                attribute.position
+              end
+
+              def options(object_attribte)
+                object_attribte.system_field_options.to_h { |entry| [entry['value'], entry['name']] }
+              end
+            end
+          end
+        end
+      end
+    end
+  end
+end

+ 1 - 0
lib/sequencer/unit/import/zendesk/ticket/mapping.rb

@@ -30,6 +30,7 @@ class Sequencer
                   created_at:               resource.created_at,
                   created_at:               resource.created_at,
                   updated_by_id:            user_id,
                   updated_by_id:            user_id,
                   created_by_id:            user_id,
                   created_by_id:            user_id,
+                  type:                     resource.type,
                   create_article_sender_id: article_sender_id,
                   create_article_sender_id: article_sender_id,
                   create_article_type_id:   article_type_id,
                   create_article_type_id:   article_type_id,
                 }
                 }

Some files were not shown because too many files changed in this diff