Redmine Custom Workflows 插件使用教程
1. 项目介绍
Redmine Custom Workflows 是一个强大的插件,允许用户通过定义自己的规则来自定义 Redmine 的工作流。该插件适用于熟悉 Ruby 语言的用户,能够通过 Ruby 脚本实现复杂的业务逻辑。例如,用户可以根据特定条件自动修改问题属性、创建新问题、显示自定义错误信息等。
主要功能
- 自定义工作流:通过 Ruby 脚本定义工作流规则。
- 条件触发:根据特定条件自动修改问题属性。
- 错误处理:自定义错误信息并显示给用户。
- 支持多种对象:支持 Issue、Group、User、Project 等多种可观察对象。
2. 项目快速启动
安装步骤
从 ZIP 文件安装
- 下载最新版本的插件。
- 解压到 Redmine 的
plugins
目录下。 - 执行数据迁移并重启应用:
cd redmine
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:plugins:migrate NAME=redmine_custom_workflows
systemctl restart apache2
从 Git 仓库安装
- 克隆仓库到 Redmine 的
plugins
目录下:
cd redmine/plugins
git clone https://github.com/anteo/redmine_custom_workflows.git
- 执行数据迁移并重启应用:
cd redmine
bundle install
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:plugins:migrate NAME=redmine_custom_workflows
systemctl restart apache2
配置步骤
-
定义自定义工作流:
- 进入 Redmine 的“管理”部分,选择“自定义工作流”。
- 创建新的工作流,输入名称和描述。
- 在“保存前”和“保存后”脚本区域编写 Ruby 脚本。
-
启用工作流:
- 在项目设置中,进入“自定义工作流”选项卡,启用所需的工作流。
3. 应用案例和最佳实践
案例1:状态与完成率的关联
需求:当问题状态为“已完成”时,自动将完成率设置为 100%。
实现:
if status_id_changed?
if status_id == 3
self.done_ratio = 100
end
end
案例2:创建子任务
需求:当问题状态变为“进行中”时,自动创建一个子任务。
实现:
@need_create = status_id_changed? && new_record?
if @need_create
issue = Issue.new(
author: User.current,
project: project,
tracker: tracker,
assigned_to: author,
parent_issue_id: id,
subject: 'Subtask',
description: 'Description'
)
issue.save
end
4. 典型生态项目
Redmine Issue Autoflow
介绍:Redmine Issue Autoflow 是一个自动化工作流插件,可以帮助用户自动处理问题状态的转换和通知。
Redmine OAuth
介绍:Redmine OAuth 插件允许用户通过 OAuth 进行身份验证,支持多种 OAuth 提供商。
通过这些插件的组合使用,可以进一步提升 Redmine 的工作效率和自动化水平。