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)