先週の残課題だった、グラフ表示をHighchartsへ変更する対応をしてみました。
Highchartsは見栄えの良いグラフを、簡単に表示させる事ができるのでお気に入りです。
http://www.highcharts.com/demo
デモで色々なグラフをみる事が出来るので興味のある方はどうぞ。
グラフのプロパティなどの設定値はオンラインですぐに確認できるデモ?もあるので日本語で解説されなくとも試行錯誤しながら、表示させたい設定を探せると思います。
redmine_evmのチャート表示部分をHighchartsのFunctionへ差し替えるくらいの簡単な対応でチャート表示可能でした。
https://github.com/momibun926/redmine_evm/tree/change_graph
こんな感じで表示されます。
下段の凡例をクリックすると、グラフ線の表示と非表示が切り替える事が出来ます。
右上のボタンでグラフを画像でダウンロードできます。
Hoverで値が表示されます。特に難しい設定もなく、こんな見栄えのグラフができるなんて最高です。
期間の長いプロジェクトでは、1~2週間だけ見たい場合もあると思います。
そんな時には、グラフの拡大したい期間を選択するとズームすることもできます。
拡大されて表示されます。戻したいときは右上の「Reset Zoom」ボタンを押すと元の表示戻ります。
Highchartsは見栄えの良いグラフを、簡単に表示させる事ができるのでお気に入りです。
http://www.highcharts.com/demo
デモで色々なグラフをみる事が出来るので興味のある方はどうぞ。
グラフのプロパティなどの設定値はオンラインですぐに確認できるデモ?もあるので日本語で解説されなくとも試行錯誤しながら、表示させたい設定を探せると思います。
redmine_evmのチャート表示部分をHighchartsのFunctionへ差し替えるくらいの簡単な対応でチャート表示可能でした。
https://github.com/momibun926/redmine_evm/tree/change_graph
こんな感じで表示されます。
下段の凡例をクリックすると、グラフ線の表示と非表示が切り替える事が出来ます。
右上のボタンでグラフを画像でダウンロードできます。
Hoverで値が表示されます。特に難しい設定もなく、こんな見栄えのグラフができるなんて最高です。
期間の長いプロジェクトでは、1~2週間だけ見たい場合もあると思います。
そんな時には、グラフの拡大したい期間を選択するとズームすることもできます。
拡大されて表示されます。戻したいときは右上の「Reset Zoom」ボタンを押すと元の表示戻ります。
あまりにも本家からかけ離れてきたので、新しいリポジトリに移動します。
返信削除新しいリポジトリはこちら
返信削除https://github.com/momibun926/redmine_evm_custom
管理人様
返信削除どうもはじめまして。そろそろRedmineをプロジェクト管理ツールとしてちゃんと使ってみようと思い、つい先日からRedmine環境の構築を始めたばかりの者です。
それに合わせてEVMでの管理もやってみたいなと思いプラグインを探していたところ、こちらのサイトに辿り着きました。
早速インストールしてみましたが、本家のものと比較して一画面上から拾える情報量の多さとグラフの見易さが断然にイイですね。
まだ全然使い倒せていないですが、今後是非使っていきたいなと思いました。
ただ一点、気の付いたことがありましたので、失礼かとは思いましたが書き込ませていただくことにしました。
動作確認をするためにアクセスログを確認している中で、404エラーが発生していることに気付きました。
jqueryのjsファイルのファイル名が間違っている箇所があるようです。
該当ファイルは以下だと思われます。
redmine_evm/app/views/baselines/show.html.erb
上記ファイルの6行目、正しくは'jquery.1.9.1.min.js'と思われますので、ご確認いただければと思います。
このエラーがどのように影響があるのかはわかっていませんが、やはり精神衛生上良くないので。。。
このような非常に素晴らしいカスタム版を公開して頂き、本当にありがとうございます。
いくつかチケットを試しに登録してみる中で何度かInternl errorが発生し、ベースラインを登録し直さないと直らないケース等にも出くわしていますが、今後も更なる安定性向上、そして機能アップがされていくことを期待して止みません。
今後も積極的に使っていきたいと考えていますので、何卒よろしくお願いします。
Goshima様
返信削除コメント頂き有り難うございます。
jqueryのパスが誤っている件のご指摘ありがとうございます。
近いうちに直しておきます。
私、rubyやWeb系の知識がほとんどなく、カスタマイズするのに非常に苦労しております。故に対応も非常に遅くなっていますが、ご容赦ください。
※デバッグ環境も構築出来ず、productionのままソース直してredmine再起動して動作チェックの繰り返し(笑)
もう一点、ベースラインを設定し直さないといけないケースがある事象については、私も経験したことがあります。本家にissueを書き込んだのですが、違う話題になってしまい原因は特定できておりません。進展がありましたら修正しておきます。
本家が日毎のEVM値計測に対応したり、小さなバグを修正していますので、取り込んで修正し直そうかとおもっています。
しばらくお待ちください。
取り込み直しをするにあたって一番悩んでいるのがEVM値をどう見せるべきか?という点です。
各値は使う人によって見るべきポイントが違うので、今までどおり表示していくのですが、サイドバーに表示するかメインにするべきなのか?
参考までに、レイアウトについてご意見頂ければと思います。
Nakagama様
返信削除早速の修正、ありがとうございました。
エラーになる件ですが、ちょこちょこと試している中では今のところ原因の特定ができていません。
ただ、Redmine試用中ということでテストプロジェクトにちょっとずつチケットを追加しつつ試している中では、結構頻発しています。
何となくプロジェクト最終日(一番期限の遅いチケットの期限日当日)に新たなチケットを追加してEVMを表示するとエラーになるケースに出くわしたりしますが、これも再現性があるやらないやらで・・・。
このエラーが取れないと、実プロジェクトへの適用は難しいかなぁという気がしているのですが。(メンバーが混乱すると思うので。)
確かに本家のissueに書き込んでいらっしゃいますね。原因特定できると嬉しいのですが。
レイアウトについては、私的にはこれ以上の要望はあまりないですかね。
個人的に敢えて挙げるとすると、(短期プロジェクトのケースだけなのかも知れませんが)横軸に時刻が出てくるのが違和感があるのと、グラフが曲線であること、くらいですかね。
日単位・週単位で計測・分析することが多い現状だと、横軸の目盛りは最低スパンが「日」だと見易いかな、というのがあります。
それをベースに「折れ線グラフ」になると「日(週)毎の集計」という感じで管理し易く、加えて報告もし易いかな。。。と。
あと、サイドバーは個人的にはありかと思います。
ただ、サイドバーを隠せるプラグイン等を導入していることが前提かも知れません。
でも、今の状態も結構見易いですよ。
Goshima様
返信削除返信有り難うございます。
グラフの横軸の件ですが、全く気付きませんでした。有り難うございす。
Highchartsの仕様を探って、日毎の表示になる様に調整してみます。
もしかすると、グラフ表示用データの横軸はUNIX時間?で渡していることが原因かもしれません。原因がわかったら、修正しておきます。
カスタマイズ中は長い期間のプロジェクトでテストしていたもので、横軸はちゃんと日毎に表示されていると思い込んでいました。
エラーの件ですが、現段階では正直どこがおかしいのか全く分かりません。
ただ、ベースラインが確定してその後チケットを登録するとエラーになるパターンがあるというのは、同じ認識です。
表示の件ですが、サイドバーに表示するかのオプションを選択できるようにしたいと思います。ご意見ありがとうございました。
また、グラフの件も折れ線に変更しておきます。
もともと、個人的に利用するためにカスタマイズを始めましたが、本家よりもリッチになってきたので、カスタム版として公開しました。
せっかく公開したのだから、いろいろ意見を伺いたいなと思って質問をしました。返答頂き有り難うざいます!
励みになります。
Nakagama様
返信削除お返事ありがとうございます。
私の意見は少数派かも知れませんので、要望そのまま採用されるとちょっと心苦しいものもあるのですが、素直に嬉しいです。
既に本家を使う気がないほど感情移入もしてしまっているので、今はカスタム版ではありますが、より沢山の方々に使われるメジャーなプラグインに成長することを願っています。
会社にEVMな人が何名かいるので、環境構築が落ち着いたところでちょっと使ってみてもらえるように働き掛けてみようと思っています。
EVMツールって、実はExcelなものしかなかったりするし、管理が面倒だったりで、なかなか浸透しないようなんです。
かく言う私もまだ実践経験がないので、ちゃんと使いこなせるようにならねば、と思っています。
Nakagama様
返信削除EVM表示時にInternal errorが発生する件についての続報です。
プログラムロジック上のエラー箇所は追えていませんが、データベース内のデータ的にエラーになる原因がわかったかも知れません(現時点では「推測」の域ですが・・・)。
【エラーになる再現手順】
①. ベースラインを登録する ⇒EVM表示:OK
②. 新たなチケットを登録する ⇒EVM表示:OK
③. ②のチケットの実績時間を登録する ⇒EVM表示:エラー
ログ出力レベルを"DEBUG"に変更してEVMタブをクリックしてエラーを発生させた後、production.logファイルを参照して実行されたSQLを見てみましたが、②のチケットのIDを用いて以下のテーブルを参照していました。
・baseline_issues
・time_entries
・journals
・issues
上記①のタイミングで"baseline_issues"テーブルにその時点で"issues"テーブルに登録されているエントリーを登録しているようですが、②で新たに登録したチケットに関する情報は"baseline_issues"テーブル内に存在しない状態になります。
恐らくですが、EVM表示の際、②で新たに登録したチケットの情報も含め"baseline_issues"テーブルから情報を引っ張ろうとしてエラーになる(nil参照している?)のではないかとの結論に至りました。
ここで試しに、"baseline_issues"テーブルに②で新たに登録したチケットに関するレコードを手でINSERTすると、無事EVMが表示されることを確認しました。
(ということは、ベースラインを登録した時点で「実績がまだ登録されていない(=終了になっていない)チケット」においてその後実績を登録して終了とした分の実績時間は、例えCurrentのベースラインが未来日であってもEV、AC等に反映されないのかな・・・?)
先にも記したようにプログラムロジック上で実際にそうなっているのか確認していない(できていない)のであくまでも推測の状態ですが、実際にデータを手挿入するとエラーが出なくなるので、直接的な原因はこの辺りだと思われます。
Nakagama様の方で、この辺りで何かお気付きになることはございませんでしょうか?
グラフの方は着々と修正されていらっしゃいますね。issueに挙がっている対応が完了するのが楽しみです。
Goshima様
返信削除連絡有難うございます。
なるほど、なんとなく状況は理解しました。本家できちんと対応してほしい内容ですね。直し方?がわかったら本家へ要望出します!
もともと、ベースラインを設定した後のチケット登録は計画変更されたという認識で、再度ベースラインの設定しなおしするというのが、根本的な仕様だと推測できます。
返信削除が、しかし、ベースラインを設定しないとEVMの表示ができないので、早い段階でベースラインをせっていすると思われます。
となると、ベースラインを設定後、チケットはどんどん追加される事が想定されますが、現在の仕様ではかなり精緻化されたチケットの登録が必要となってしまいますよね。あまり現実的ではないですね。。。
ソースを調査して対応を検討します。と同時に本家へリクエストもしたいですね。
ご連絡有り難うございます。
根本的な仕様をあくまでも採用すべきかどうかは、有識者のご意見も伺ってみたいところですね。各プロジェクトマネージャーによってもやり方・考え方がわかれるかも。
返信削除ソース調査と本家へのリクエストの検討、ありがとうございます。
該当issueが止まったままになってしまっていたので、進展があると嬉しいです。
Goshima様
返信削除1点お願いがあるのですが、よろしいでしょうか?
先日ご連絡いただいた、チケット登録、実績入力後のエラーの件ですが、よろしければログをコメント欄へもしくはGitHUBのissueへ貼っていただけませんでしょうか?
こちらでの状況の再現と改善に向けた対応で是非参考にさせてください。
よろしくお願いいたします。
Nakagama様
返信削除ログの件ですが、少々お時間ください。
Redmineを入れたPCは会社、会社は外部掲示板への書き込みを禁止しているので直接投稿できず、自宅からorスマホからしかできないのです。
ログは膨大な量でしたので、どうやってアップしよう・・・。
場合によっては直送もアリですかね?
Goshima様
返信削除logの件、了解です。
ご報告いただいたエラーの再現が出来ませんでした。登録するチケットの開始日、期日もエラーの発生する条件にかかわっているのかもしれません。詳細はlogを見て状況を解析してみたいとおもいます。
送付先は、hajime.nakagma@gmail.com
へ。
お手数ですが、よろしくお願いいたします。