2013-09-10 6 views
1

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

До сих пор у нас была система отслеживания звонков, написанная с нуля. Я бы хотел подделать Redmine, так как он приближается к всем требованиям пользователя. Я думаю, что если я укажу в правильном направлении, я смогу подключить Redmine к некоторым уже написанным javascript и уже существующим веб-сервисам, чтобы вытащить необходимые данные, чтобы отобразить их на билет Redmine во время создания билета. Я знаю, что Redmine очень настраиваемый, но я не знаю, с чего начать. Я уже проверил существующие плагины, чтобы это сделать, и я не нашел их. enter image description here

Любая помощь была бы принята с благодарностью.

+0

Если я правильно поняли. Вы хотите вставить какой-то код в новое поле 'Parcel ID' в форме выпуска, и оно должно установить некоторое значение для выбора Assignee. Некоторые вопросы, чтобы уточнить детали: - Какие отношения между ParcelID и Assignee (Пользователь в Redmine)? Один-к-одному или более сложный? - если Assignee установлен, следует вставить ParcelID переопределить это значение? - (наоборот) Если ParcelID установлен, тогда он должен настроить Assignee. Можно ли изменить Assignee после этого? – gotva

ответ

0

Надеюсь, я понимаю, чего вы хотите.

  1. Вы можете добавить custom_field или написать миграцию, чтобы добавить новый столбец в таблицу issues и форму выпуска патча (вы можете использовать Redmine крюки http://www.redmine.org/projects/redmine/wiki/Hooks_List). Я предпочитаю второй способ, потому что он не зависит от настроек Redmine.

  2. Вы должны добавить в плагин маршрут и способ в issues_controller. Это действие получит запрос AJAX с ParcelID из представления (формы выпуска) и прокси-сервер на внешний сервер. Ответ должен быть электронной почтой пользователя (я думаю, что только эта информация является общей для пользователей в Redmine и External server). Действие должно найти соответствующего пользователя в Redmine и вернуть user_id в представление.

  3. Patch issue form: добавить новый вход Parcel ID и добавить код JS. JS-код должен отправить AJAX после того, как ParcelID потеряет фокус и настройку Assignee, если запрос возвращает user_id.


некоторые примечания:

  • Я не думаю, что вам удастся связаться с внешним сервером напрямую (без контроллера), так как сервер может возвращать собственные user_id или USER_EMAIL, но вид не управлять настройками Assignee, используя эти атрибуты.
  • Я думаю, что надо заботиться о производительности, так как JS код начнет по крайней мере два запроса (View < -> Redmine, Redmine < -> Внешний сервер)

надеюсь, это поможет вам

Смежные вопросы