🛠️

Redmine:開始日時・終了日時で時間管理する

2023/06/19に公開

Redmineで作業時間の管理をしようと思いましたが、何時間って入れるのが面倒くさい、という問題にぶつかりました。

やりたかったこと

こういう使い方がしたい!って最初に思ったのは以下のような流れです。

  1. チケットの作業開始時に、「時間を記録」ボタンでレコードを起票し、作業開始時刻を記録。
  2. 作業終了時(もしくは中断時)に再度そのレコードを開き、作業終了時刻を記録。
  3. 終了−開始で時間を計算して更新する。
  4. 中断したあと再開する場合は、再度「時間を記録」でレコードが起票される。
  5. なんだかんだ、最後に作業種別ごとの作業時間合計を確認できたりする。

実際の問題点

実際やろうとするといくつか問題がありました。

  • 作業時間を0で記録することは「設定」で許可できるけども、作業時間を0で記録するとチケットに「作業時間」タブが現れないので、作業終了時にそこに打ち込めない。0.01時間とかダミーで打つ必要がある。
  • 時間の計算が面倒くさい。
  • そもそも初期の0時間(0.01時間)を打つのも面倒くさい。
  • 開始・終了時刻はカスタムフィールドでいいんだけども、やはり時刻を打つのが面倒くさい。

要は面倒くさいのです。

プラグインを作って解決

このためプラグインをいくつか作りました。1個にまとめろという気もしますが…

実際の動作画面です。「時間を記録」を押したあとの表示。

「作業時間」の一覧表示。

プラグイン

3つに分かれています。
エラー処理もないので注意してください。

  1. 作業時間合計が0でも「作業時間」タブを表示するようにするプラグインZeroTimeTab
  2. 作業時間の記録画面の初期表示時に、時間に0を自動設定する(「開始日時」カスタムフィールドがあれば、そこに現在時刻を自動設定する)プラグインInitialZeroHour
  3. 作業時間の保存時に、カスタムフィールド「開始日時」「終了日時」から「時間」を自動計算するプラグインCalcTimeFromStartEnd

https://github.com/takenori-kabeya/ZeroTimeTab
https://github.com/takenori-kabeya/InitialZeroHour
https://github.com/takenori-kabeya/CalcTimeFromStartEnd

何かのお役に立てば。
(Redmineは5.0.xです)

Discussion