Mantis um eigene Status erweitern

Mantis ist ein beliebtes und verbreitetes Bugtracking-System. Während es „out-of-the-box“ schon ziemlich mächtig ist und viele Funktionen bietet, lässt es sich mit einigen Tricks und Kniffen nochmal ordentlich aufbohren. Eine Einschränkung, die man auf diese Weise umgehen kann, ist der Ticket-Status. Während Mantis von Haus aus Status wie „neu„, „anerkannt“ oder „erledigt“ bietet, möchte man dies mitunter doch um eigene Status wie „bereit zum Testen“ erweitern.
Leider gibt es dafür nicht nur eine zentrale Stelle, an der alles konfiguriert werden könnte, drum biete ich hier eine Schritt für Schritt-Anleitung anhand eines fiktiven Beispiels.

Wir möchten also nun eine neue Reihenfolge der Status eines Tickets einbauen. Diese sei „neu„, „Rückmeldung„, „zugewiesen„, „in Arbeit„, „bereit zum Testen„, „erledigt“ und „geschlossen„.
Hierzu ergänzen wir zunächst die Datei „config_inc.php“ um folgende Zeile:

$g_status_enum_string = '10:new,20:feedback,50:assigned,60:inprogress, 70:tobetested,80:resolved,90:closed';

Als nächsten ergänzen wir die Datei „custom_strings_inc.php„. Ist diese noch nicht vorhanden, legen wir sie an. Dort schreiben wir dann folgendes rein:

$s_status_enum_string = '10:neu,20:Rückmeldung,50:zugewiesen,60:in Arbeit,70:Bereit zum Testen,80:erledigt,90:geschlossen';

/* Der Status "inprogress" wurde in der Datei "config_inc.php" eingeführt! */
$s_inprogress_bug_button = "In Arbeit";
$s_inprogress_bug_title = "Setze Status auf In Arbeit";
$s_email_notification_title_for_status_bug_inprogress = "Dieses Ticket ist in Arbeit.";

/* Der Status "tobetested" wurde in der Datei "config_inc.php" eingeführt! */
$s_tobetested_bug_button = "Zu Testen";
$s_tobetested_bug_title = "Setze Status auf Zu Testen";
$s_email_notification_title_for_status_bug_tobetested = "Dieses Ticket ist bereit zum Testen.";

$s_my_view_title_tobetested = "Zu Testen";

Bietet man eine mehrsprachige Installation an, muss man in dieser Datei auch nach aktueller Sprache unterscheiden. Das sieht dann in etwa so aus:

if (lang_get_current() == 'german') {
    $s_tobetested_bug_button = "Zu Testen";
}
else {
    $s_tobetested_bug_button = "to be tested";
}

Zuletzt müssen wir im Verwaltungsmenü von Mantis noch eine Einstellung unter „Konfiguration verwalten“ vornehmen. Hier ist der Eintrag „set_status_threshold“ zu bearbeiten, und zwar müssen die Werte „30“ und „40“ entfernt werden. Warum? Ganz einfach, diese Einträge stehen für „acknowledged“ und „confirmed„, beide haben wir aus dem System entfernt.
An dieser Stelle wären wir nun fertig. Doch was bringt es, einen neuen Status „zum Testen bereit“ einzuführen, wenn ich nicht auf einen Blick sehen kann, welche Tickets zum Testen sind? Sorgen wir also noch dafür, dass alle Tickets mit dem Status „zum Testen bereit“ im Dashboard (oder „Übersicht„) auftauchen.
Dazu müssen wir wieder ins Verwaltungsmenü unter „Konfiguration verwalten„. Hier tragen wir einen neuen Wert ein. Dieser hat den Namen „my_view_boxes“ und den Typ „complex„. Natürlich soll er für alle Projekte und für alle Nutzer gleich sein. Folgenden Wert tragen wir dazu ein:

array (
    'assigned' => '1',
    'tobetested' => '2',
    'unassigned' => '3',
    'reported' => '4',
    'resolved' => '5',
    'recent_mod' => '6',
    'monitored' => '7',
)

Die Zahl in diesem Array gibt die Position des Abschnitts im Dashboard an. Ich habe „zum Testen bereit“ soweit nach oben geschoben, dass die entsprechende Box garantiert gesehen wird. Eigentlich könnten wir an dieser Stelle fertig sein, doch leider ist Mantis hier ziemlich unkonsequent. Zwar kann man recht bequem neue Status einführen, und auf der „Übersicht„-Seite die Reihenfolge der System-Status ändern, doch welche Status angezeigt werden können ist hart kodiert. Wollen wir unseren „zum Testen bereit„-Status anzeigen, müssen wir also leider auch noch den Code von Mantis anfassen. Das ist aber gar nicht schwer.
Folgende Anpassungen müssen in der Datei „my_view_inc.php“ gemacht werden. Scrollt man hier etwas nach unten findet man schnell das Array „$c_filter„, das mit allerlei Werten gefüttert wird. Wir suchen uns nun einfach den Eintrag von „$c_filter['resolved']„, und kopieren ihn schamlos, und geben die Kopie als unsere eigene aus, in dem wir sie statt dessen „$c_filter['tobetested']“ nennen. Und weil es so schön war, machen wir das gleich noch mit „$url_link_parameters['resolved']„!
Nun haben wir unser Ziel fast erreicht. Innerhalb der von uns neu geschaffenen Zuweisung zu „$c_filter['tobetested']“ findet sich folgende Zuweisung:

FILTER_PROPERTY_STATUS_ID => Array(
    '0' => $t_bug_resolved_status_threshold,
),

Daraus machen wir nun:

FILTER_PROPERTY_STATUS_ID => Array(
    '0' => 70, // Diese ID haben wir dem Status "tobetested" ganz am Anfang gegeben!
),

In „$url_link_parameters['tobetested']“ machen wir aus der Variable „$t_bug_resolved_status_threshold“ ebenfalls zweimal die „70“. Man könnte natürlich auch eine Variable „$t_bug_tobetested_status_threshold“ in die „config_inc.php“ schreiben, aber so kurz vorm Ziel drücken wir einfach mal beide Augen zu.
Und das war es auch schon. Unser Mantis Bugtracker wurde um zwei Status ergänzt und wir haben die „Übersicht“-Seite erweitert, um einen der neuen Status anzuzeigen. So schwer war es doch gar nicht!

Ich gebe zu, der Satz „um eigene Status erweitern“ hört sich etwas holprig an. Mein Favorit für den Plural von Status wäre „Stati“. Doch der Duden lehrt: Der Plural von „der Status“ heißt „die Status“. Und da man täglich ein bisschen was lernen sollte, war dies meine eigene Lektion für heute.

6 comments for “Mantis um eigene Status erweitern

  1. 4. März 2013 at 18:19

    Hallo,
    für welche Version von Mantis ist dieses Tutorial?

    • Marcus
      5. März 2013 at 14:52

      Hallo, das ganze läuft mit Version 1.2.8. Gruß

  2. Stefan Mayrhofer
    8. Dezember 2014 at 16:13

    Hallo,
    wer kann uns support für Mantis geben?
    Wir haben keinen Programmierer, der für uns Einstellungen machen kann.
    Wir bräuchten Unterstützung, auch wenn es mal haken sollte.
    Über eine kurze Info würde ich mich freuen.
    Viele Grüße
    Stefan Mayrhofer

  3. Jan
    16. März 2016 at 11:31

    Vielen Dank – hat uns sehr geholfen .)

  4. Thomas
    10. November 2016 at 11:49

    Tolle Anleitung. Vielen Dank!
    Weißt Du auch, wie man die Farben der Status anpassen kann?

  5. Marcus Schwarz
    11. November 2016 at 9:44

    Hallo Thomas, da kann ich leider nicht weiterhelfen. Mittlerweile nutze ich Mantis selbst nicht mehr aktiv, da mein neuer Arbeitgeber mit einem anderen Tool arbeitet. Gruß

Comments are closed.