Zammad Ticket-Status hinzufügen

In diesem Artikel beschreibe ich kurz, wie man einen neuen Ticket-Status in Zammad hinzufügen kann. Dazu brauchen wir zuerst wieder eine Rails Shell, welche sich mit dem unten stehenden Befehl öffnen lässt:

zammad run rails c

Im Anschluss verwenden wir den folgenden Befehl, um den Status in der Datenbank anzulegen. Dabei müssen wir aber die Parameter wie den Namen auf die entsprechenden Daten. Der Name sollte an der Stelle gerne auf Englisch sein.

Ticket::State.create_or_update(
     name: 'in progress',
     state_type: Ticket::StateType.find_by(name: 'open' ),
     ignore_escalation: false,
     created_by_id: 1,
     updated_by_id: 1,
   )

Um jetzt den Status in der Weboberfläche verfügbar zu machen, müssen wir den folgenden Befehl eingeben:

attribute = ObjectManager::Attribute.get(  
     object: 'Ticket',  
     name: 'state_id',  
   )  
attribute.data_option[:filter] = Ticket::State.by_category(:viewable).pluck(:id)  
attribute.screens[:create_middle]['ticket.agent'][:filter] = Ticket::State.by_category(:viewable_agent_new).pluck(:id)  
attribute.screens[:create_middle]['ticket.customer'][:filter] = Ticket::State.by_category(:viewable_customer_new).pluck(:id)  
attribute.screens[:edit]['ticket.agent'][:filter] = Ticket::State.by_category(:viewable_agent_edit).pluck(:id)  
attribute.screens[:edit]['ticket.customer'][:filter] = Ticket::State.by_category(:viewable_customer_edit).pluck(:id)  
attribute.save!

Jetzt sollte die Option verfügbar sein. Damit der Status aber z.B. auch auf Deutsch vorhanden ist, müssen wir noch eine Übersetzung hinzufügen. Dazu verwenden wir den unten stehenden Befehl:

Translation.create_if_not_exists(:locale => 'de-de', :source => "in progress", :target => "in Arbeit" , created_by_id: 1, updated_by_id: 1)