FollowUp - Redmine/Chiliproject Wiedervorlage für Tickets

Wir verwenden ChiliProject als Ticketsystem und hatten bisher das Problem, dass Tickets nicht an einem bestimmten Tag automatisch hochpriorisiert bzw. einer bestimmten Person zugewiesen werden.

Dieses Problem haben wir mit unserem FollowUp-Plugin gelöst.

Das Herzstück bildet ein benutzerdefiniertes Feld, das in ChiliProject/Redmine mit dem Typ “Datum” angelegt werden muss. Danach muss dieses Feld als Ziel für das Plugin in der Pluginkonfiguration ausgewählt werden.

Mit Hilfe der dynamischen ActiveRecord-Finder können wir uns eine Liste aller von uns definierten Felder mit dem Wert des aktuellen Datum liefern lassen, die mit einem Ticket verknüpft sind.

  custom_values =
    CustomValue.find_all_by_custom_field_id_and_value_and_customized_type(
      settings["custom_field"], Date.today.to_s, "Issue")

Iteriert man über diese Liste, so kann man für jedes benutzerdefinierte Feld dessen Abhängigkeiten manipulieren. So kann man z. B. Journaleinträge erstellen, die Priorität verändern, etc..

custom_values.each do |custom_value|
  issue = custom_value.customized
  journal = issue.init_journal user, message
  ....
  issue.save
end

Verpackt in einen rake task und mit Hilfe eines cronjobs lässt sich das Ganze periodisch ausführen. Man erhält so ein System, das Tickets automatisch anhand eines Feldwertes einer bestimmten Aktion unterzieht.

namespace :follow_up do
  desc "Processing of today's follow-ups"
  task :process => :environment do
    ::FollowUp.process
  end
end

Dank der Einfachheit, mit welcher Manipulationen durchgeführt werden können, steckt noch viel Potenzial für weitere Plug-ins in unserer Lösung.