LoginSignup
15
17

More than 5 years have passed since last update.

Redmine Checklists pluginで未チェックの検証を雑に行う

Last updated at Posted at 2015-09-05

Redmine Checklists pluginという、チケットにチェックリストを付与できる大変便利なRedmineのプラグインがあるのですが、チェックに強制力を持たせられないのが困りものです。
(タスクが残ってるのにレビュー依頼とか出されても困る...)

とりあえず上記を解決するにはlib/redmine_checklists/patches/issues_patch.rbをいじればよいです。
※Railsのルートから見ると、plugins/redmine_checklists/lib/redmine_checklists/patches/issues_patch.rb

issue_patch.rb
require_dependency 'issue'

module RedmineChecklists
  module Patches

    module IssuePatch
      def self.included(base) # :nodoc:
          # ~~~ 省略 ~~~

          # ここから
          validate :complete_tasks

          def complete_tasks
            # 未チェックの項目が一つでもあると設定できないようにしたいステータスのIDを指定
            # この例だと、全部チェックしないとステータスを"解決"(status_id:3)に更新できないようにしている
            return unless status_id == 3
            return if checklists.all? {|checklist| checklist.is_done}
            errors.add(:base, 'チェックリストに未チェックの項目が存在します。タスクを全て完了させてください。')
          end
          # ここまでを追加

        end
      end

    end

  end
end

こうしておくと、タスクを完了させないと怒られるようになります。

プラグインの設定画面でステータスを設定できるようにして、さらにプルリクも送ったらカッコイイと思うんだけど、そんな気力はなかった。

15
17
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
17