スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

バージョンガントチャートPlugin作成(作業記録) その1

各人の作業負荷、進捗をプロジェクトをまたいで、なんとなく把握できるようなものを作りたい。
ロードマップの進捗バーがガントチャート風に表示される予定。
チケットの必須入力項目はできるだけ少なくて済むようにしたい。

今回はRedmine -もっと手軽にプロジェクト管理!を参考に登録されているプロジェクト一覧を表示させるとこまで。

プラグインの雛形作成


前回展開したRedmineディレクトリに移動して
ruby script/generate redmine_plugin version_gantt_chart
(version_gantt_chartがプラグイン名)

これで"vendor/plugins/version_gantt_chart"ディレクトリにプラグインの雛形が追加された
(このディレクトリ配下のファイルを対象にMercurialでリポジトリ作成)

init.rbのdescriptionにプラグインの説明を記述

コントローラとビューの雛形作成


プラグインはMVCパターンでつくるらしい。
モデルは今回みたいに登録された情報を表示するだけなら不要ということなので、
コントローラとビューだけ作成(一つのコマンドで両方つくられた)
ruby script/generate redmine_plugin_controller version_gantt_chart version_gantt_chart index

1つ目のversion_gantt_chart はプラグインの指定
2つ目のversion_gantt_chart はコントローラ名称(プラグイン名と同じにした)
3つ目のindexはアクション名

indexは最初に表示されるときに呼ばれるってことかな?
"index"に特別な意味があるのか適当な名前でもいいのかは不明。

アプリケーションメニューへの登録


init.rbのversion設定の次にメニュー設定を追加
require 'redmine'

Redmine::Plugin.register :redmine_version_gantt_chart do
name 'Redmine Version Gantt Chart plugin'
author 'tenma'
description '作業者ごとバージョンごとに進捗状況をガントチャート風に表示するプラグインです'
version '0.0.1'
menu :application_menu, :version_gantt_chart, {:controller => 'version_gantt_chart', :action => 'index'}, :caption => 'バージョンガントチャート', :last => true
end


メニューは4種類があるらしい。
トップメニュー
アカウントメニュー
アプリケーションメニュー
プロジェクトメニュー
今回はプロジェクトをまたがった情報を表示したいのでアプリケーションメニューにした。

:actionでindexを指定してるので、やっぱり名称はなんでもいいのかも。

ruby script/server -e production
でサーバを起動してメニュー表示&クリックで画面が表示されるか確認

プロジェクト情報の取得


vendor/plugins/redmine_version_gantt_chart/app/controllers/version_gantt_chart_controller.rb
のアクション(メソッド?)Indexを編集してプロジェクト情報を取得する

class VersionGanttChartController < ApplicationController
def index
@project_list = Project.find(:all)
end
end


プロジェクトのテーブルに対応していると思われるProjectクラスから全レコードを取得。
@project_listメンバーに代入しておく。
Railsの勉強もしないと分かんないな…。

プロジェクト名称一覧の表示


vendor/plugins/redmine_version_gantt_chart/app/views/version_gantt_chart/index.html.erb
を編集してプロジェクト名称を表示させる

<ul class="version_gantt_chart">
<% @project_list.each do |project| -%>
<li>
<%= "#{project.name}" %>
</li>
<% end -%>
</ul>


サーバを再起動したらプロジェクト名称の一覧を表示できた。
RubyもRailsもHTMLもなんとなくしか分からないから、ちょっと勉強しないとだめかも。

次はユーザの担当するプロジェクト、チケット情報を階層的に表示してみる予定。
スポンサーサイト

コメント

Secret

プロフィール

tenma

Author:tenma


AI好きのプログラマ
基本伊豆ダイバー(100本達成)
ゲーム実況好きのニコ厨(プレミアム会員)


follow _tenma at http://twitter.com

最新記事
最新コメント
最新トラックバック
カテゴリ
検索フォーム
リンク
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。