Skip to main content

Zammad Ticket-Status hinzufügen

Einleitung

In diesem Artikel beschreibe ich kurz, wie wir in Zammad einen neuen Status hinzufügen können. Dies können wir verwenden, falls uns die vordefinierten Status-Optionen nicht ausreichen. Diese Änderung können wir aber nur in der "Rails Shell" erledigen. Es gibt hier aktuell noch keine Möglichkeit, einen Status über die Web-Oberfläche hinzuzufügen. 

Durchführung


Neuen Status anlegen

Im ersten Schritt müssen wir natürlich die "Rails Shell" öffnen. Dazu geben wir den folgenden Befehl ein:

zammad run rails c

Jetzt können wir den unten stehenden Befehl verwenden, um den Ticket-Status in der Datenbank anzulegen. Dabei ändern wir Parameter wie z.B. den Namen, auf den wir gerne hätten (vorzugsweise auf Englisch). Den Status ändern wir auch auf die Option, die wir benötigen.

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,
   )
Status in der Web-Oberfläche sichtbar machen

Um jetzt den Status in der Web-Oberfläche sichtbar zu machen, geben wir den folgenden Befehl ein:

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!  

Wenn wir jetzt die Web-Oberfläche neu öffnen oder laden, sollten die neuen Status-Optionen verfügbar sein. 

Übersetzung hinzufügen

Wenn wir jetzt, wie Zammad vorschlägt, dem Ticket-Status einen englischen Namen gegeben haben, können wir eine Übersetzung hinzufügen, damit in der Web-Oberfläche der Status auch in Deutsch angezeigt werden kann. Dazu verwenden wir den folgenden Befehl und verändern nur die "Namen-Strings"

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