Project

General

Profile

QA #1192

Updated by 奈良 裕記 10 months ago

Redmineアドベントカレンダー2020の13日目の記事です。 
 https://adventar.org/calendars/5392 

 h1. 概要 

 Redmineの活動画面はプロジェクト活動状況の把握に有用だが、 
 この活動画面には、ステータス及び注記欄に記入のあった変更しか表示されない。 

 カスタムフィールドの内容を変更しても、活動画面に表示されないため、 
 重要な管理項目をカスタムフィールドに設定している場合、活動画面からその事を把握できない問題点がある。 

 本改造により、Redmineの活動画面に、チケットの変更状況を全て表示できる。(チケットの変更履歴画面と同様) 

 ↓活動タブの活用事例 これであなたもRedmine活動家 
 https://www.slideshare.net/HirofumiKadoya/redmine-234489253 

 h2. 画面サンプル 

 改造前後の活動画面比較 
 !{width: 80%}activity-compare.png! 

 チケット履歴画面上のカスタムフィールド変更分も表示されている。 
 !{width: 40%}issue-history.png! 

 h1. 変更内容 

 変更するのは下記3ファイルだけです。 
 DBの変更はありません。 
 下記ブランチからダウンロードし利用してください。 
 (2020/12/10時点のtrunkベース,unofficial-redmine版) 


 |_^. 変更ファイル|_^. 変更概要|_^. 変更リンク| 
 |^. app/models/journal.rb|^. 活動画面の表示条件変更|"変更リンク":https://github.com/y503unavailable/redmine/commit/980dd2ffe85fb85ba772117c774cc3a40a97c586| 
 |^. app/views/activities/_activities.html.erb|^. 活動画面の変更表示項目変更(チケットの変更履歴と同じ)|"変更リンク":https://github.com/y503unavailable/redmine/commit/196d5ba64c57069168a99f658c940f408a07f09f| 
 |^. app/controllers/activities_controller.rb|^. 利用ヘルパー追加 
 (活動画面の項目表示に既存ヘルパー内のメソッドを利用するため)|"変更リンク":https://github.com/y503unavailable/redmine/commit/7d9a7c98c5407862fc1d421f434c30f327e86e57| 

 Display changes to custom fields only on the activity screen 
 https://github.com/y503unavailable/redmine/issues/39 

 ブランチ 
 https://github.com/y503unavailable/redmine/tree/feature-39-activitylist 

 変更差分 
 https://github.com/redmine/redmine/compare/2f0f66bb29fb554f8e83019bcce7734265e6725c...196d5ba64c57069168a99f658c940f408a07f09f 

 h1. 作業経緯 

 本変更のために実行したことのメモ。 本変更のために下記実行した。、 

 活動画面の表示条件はすぐに判ったが、 
 活動画面の表示内容をeventの部分がコードから見つからない。 

 inspectで確認し、eventのIDがjournalidであることを確認 

 ロジック追えていないが、結果的に当たった。 

 チケットの変更履歴は、 journals journal_detailsにあることは知っていた。 
 journal_detailsに持っていることは知っていた。 

 https://www.slideshare.net/y503unavailable/redmine-42182169 
 P67-76参照 

 viewの_activities-変更部分 
 <pre> 
   <% if e.event_type.eql?('issue-note') %>  限定しないと、チケット番号が渡されて途中でエラー発生する場合あり(journal無) 
     <% @journal=Journal.find(e.id) %> 
       <% if @journal.details.any? %>     ここからはチケットの履歴表示をコピペ利用。helperを参照するだけで動いた。 
         <ul class="details"> 
         <% details_to_strings(@journal.visible_details).each do |string| %> 中でCFの種別対応なども実施している。 
          <li><%= string %></li> 
       <% end %> 
       </ul> 
     <% end %> 
   <% end %> 
 </pre> 


 h1. 今後の対応(案) 

 * 表示内容の変更可能化 
 本変更により活動画面の表示内容が大幅に増える。 
 運用状況によっては見にくくなるかもしれない。 
 活動画面の表示時に、今回作成したのCF変更付きの拡張表示と、従来の注記分のみ表示を、選択できると良さそう。 

 * unofficialメインへの取込 
 今回は専用ブランチで作成したが、評判良さそうなら、unofficialメインに取り込む。 

 * 本家チケットを確認して、無ければ起票。 

 !https://unofficial-redmine.org/matomo/matomo.php?idsite=1&rec=1192! 

Back