Программируем процессы в Redmine


Всенародная любовь с системе Redmine хорошо известна. Люди любят систему за простоту, надежность, многофункциональность. Мы тоже давно внедряем ее для автоматизации различных бизнес-процессов.

Но как у любой системы у Redmine тоже есть недостатки, к примеру, в базовой системе нет возможности программировать процессы. Сегодня я расскажу как обойти это ограничение, что позволит легко и быстро организовать полноценный, быстрый и удобный документооборот.

1) Для начала нам понадобится плагин Якова Анникова Computed custom field;
2) Плагин добавляет вычисляемое поле в диалоге редактирования настраиваемых полей (вот теперь смотрите на рисунок);
3) Остается написать скрипт на Ruby и поместить его в поле “Формула”;
4) При этом доступные кастомные поля можно выбирать из диалога, а штатные переменные посмотреть в документации (кстати они же используются и в Redmine API);
5) Все. Программирование процедуры завершено.

Теперь вкусняшки:

1) При сохранении поля, Redmine правильным образом возвращает ошибки компиляции – это очень удобно.
2) А вот пример простейшего кода, который автоматически делегируется задачи, для которых пользователь забыл уставить значение в поле “Назначена” (и сообщает об этом в поле “Описание”).

if (self.assigned_to_id.blank?) # Поле “Назначено” не заполнено
if (self.status_id == 1) # Статус == “Новая”
self.assigned_to_id = 112 # ID for МБК. Отдел техподдержки
self.due_date = start_date + 2
self.description = self.description + + “\r\n — \r\n” + “Redmine: Пользователь не назначил задачу никому. Выполнено автоматическое назначение задачи на техническую поддержку”
end
end