2008年12月31日

Redmine 0.8.0, 0.7.4 リリース

Redmine 0.7.4 and 0.8.0 released

個人的にうれしい機能はこんなところか。
- e-Mailによるチケットの登録
- プロジェクト横断検索
- 階層型Wikiページ
- Redmineユーザとリポジトリユーザのマッピング

プロジェクト横断Wikiが先送りされたのが若干痛いか。
タグはつくんだろうか。

時間を見てアップグレードしてみよう。

2008年12月16日

Redmine のショートカット

日常的に使うようになるとマウス操作が面倒になるが、実はRedmineの一部メニューにはショートカットが用意されている。

操作ショートカット
Shift+Alt+7新しいチケット
Shift+Alt+Ewiki編集 or wiki編集エリアにフォーカス移動
Shift+Alt+Rwiki編集時 プレビュー
Shift+Alt+F検索フィールドにフォーカス移動


Firefoxの場合は上記操作でOK。
IEの場合、フォーカスが移動するだけなので、その後Enterを押す必要があるのでイマイチ。

後、時々Ctrl+Rでページの再読み込みしないように注意。

2008年12月12日

Redmine テーマ(スタイル)をカスタマイズする

Redmineは独自CSSを用意する事で、テーマ(スタイル)をカスタマイズする事ができる。仕事でまじめにRedmineを使うと気になるところがいくつかあったので、組み込んでみた。

手順は以下のとおり。
  1. redmine-0.7.3/public/themes以下にフォルダを作成(このフォルダがテーマ名になる)
  2. さらにその下にstylesheetsフォルダを作成する
  3. 2で作成したフォルダに application.css を作成し、カスタムスタイルを定義する。
  4. Redmineを再起動
  5. 管理 > 設定 > 全般 > テーマで、追加テーマを選択


フォルダ構造は以下のようになる。

redmine-0.7.3/public/themes
/alternate
/classic
/my_theme ←ここ以下を追加
/stylesheets
application.css


application.cssは、こんな風にしてみた。

/* デフォルトスタイルシートをインポート */
@import url(../../../stylesheets/application.css);

/* 日付フィールドを幅広に。数字フィールドは右寄せ。*/
#issue_start_date { width: 80px; }
#issue_due_date { width: 80px; }
#issue_estimated_hours { text-align: right; }
#issue_done_ratio { text-align: right; }
#time_entry_hours { text-align: right; }

/*
* 本文をインデントしてh1~h3を目立たせる
* (全体をインデントして、見出しをマイナスインデント)
* h2, h3に章番号を表示(Firefox用、IE未対応)
*/

fieldset.preview {
margin-left: -20px;
padding-left: 20px;
padding-right: -40px;
}

div.wiki {
margin-left: 20px;
margin-right: 20px;
}

div.wiki h1, div.wiki h2, div.wiki h3 {
margin-left: -20px;
}

div.wiki h1 {
margin-right: -20px;
}

div.wiki h2 {
counter-increment: chapter;
counter-reset: section;
}

div.wiki h2:before {
content: counter(chapter) ". ";
}

div.wiki h3 {
counter-increment: section;
}

div.wiki h3:before {
content: counter(chapter) "." counter(section) ". ";
}

div.wiki h4 {
border-bottom-width: 0px;
text-decoration: underline;
}


/*
* 警告と情報の強調表示
* *(warn) xxxxx
* *(info) xxxxx
*/
ul.warn>li {
border: 1px solid silver;
margin: 5px 0px 5px -20px;
padding: 2px 0px 3px 30px;
background-image: url(../../../images/warning.png);
background-repeat: no-repeat;
background-position: 5px 50%;
list-style-type: none;
}

ul.info>li {
border: 1px solid silver;
margin: 5px 0px 5px -20px;
padding: 2px 0px 3px 30px;
background-image: url(../../../images/help.png);
background-repeat: no-repeat;
background-position: 5px 50%;
list-style-type: none;
}

/* テキストエリアのフォントを小さく */
textarea.wiki-edit {
font-size: 12px;
}

2008年12月5日

Redmine Wiki用ブックマークレット(IE TAB対応)

机の上よりましでしょう:redMineのWiki用ブックマークレット が便利なので使っていたが、FirefoxのIE TABでIEレンダリングしている時は誤ったURLが表示される。ちょっと修正してみた。

変更前:

javascript:void(a=prompt(%27%27,%27"%27+document.title+%27":%27+location.href));


変更後:

javascript:void(a=prompt(%27%27,%27"%27+document.title+%27":%27+location.href.replace(%27chrome://ietab/content/reloaded.html?url=%27, %27%27)));


ブックマークレットとして登録するには、URLを上記コードに指定したお気に入り(IE) or ブックマーク(Firefox)に追加する。

2008年12月3日

Redmine トップメニューをカスタマイズする

トップにチケット一覧を表示するメニューがほしかったので追加した。
これ本番ですか? Redmineリンク追加 を参考にした。

redmine-0.7.3/lib/redmine.rb の 96行目あたりから始まる MenuManager.map :top_menu do |menu| を修正する。(一番下の行を追加)

Redmine::MenuManager.map :top_menu do |menu|
menu.push :home, :home_path, :html => { :class => 'home' }
menu.push :my_page, { :controller => 'my', :action => 'page' }, :html => { :class => 'mypage' }, :if => Proc.new { User.current.logged? }
# チケット
menu.push :issues, { :controller => 'issues', :action => 'index', :query_id => '2' }, :caption => :label_issue_plural


カスタムクエリを追加する場合は以下のように :query_id => x を追加すればいい。
  menu.push :issues, { :controller => 'issues', :action => 'index', :query_id => '2' }, :caption => :label_issue_plural


活動を追加するには以下を追加する
  menu.push :activity, { :controller => 'projects', :action => 'activity' }


ホームを任意のプロジェクトのメインwikiに変更するには redmine-0.7.3/routes.rb を修正する。9行目あたり、map.home ...を以下のように変更する。:id はプロジェクトID。
  #map.home '', :controller => 'welcome'
map.home 'wiki/:id/:page/:action', :controller => 'wiki', :id => 'tetu', :page => nil


特定のwiki名にするなら:pageを変更すればいいと思う。

2008年11月30日

RedmineのApache-Proxy構成でFaviconを表示させる

Redmine をApache-Proxy経由で表示させると Favicon が表示されない。
Faviconを表示させるために若干ソースに手を加えた。
もっといい方法がある気がするけど。。。

redmine-0.7.3/app/views/layouts/base.rhtml の8行目あたりに以下を追加。

<link rel="shortcut icon" href="/redmine/favicon.ico" type="image/vnd.microsoft.icon">
<link rel="icon" href="/redmine/favicon.ico" type="image/vnd.microsoft.icon">

href内の /redmine 部分はApache-Proxyのパスに合わせて修正。
Faviconは、redmine-0.7.3\public 以下にある。

2008年11月18日

Faviconをフリーで作るサイト

Favicon Generator でFaviconを作ってみた、簡単に作れて便利。
視認性がぜんぜん違うのに企業内ではやらない理由は簡単に作れないからだろうか。

ためしにこのブログのFaviconを変更しようとしてみる。
が、BloggerではFavicon(ico)をアップロードできない!
gifやpngに変換するか? うーん。

2008年11月3日

Redmineのトラッカーやチケットの設定をする

トラッカーやチケットには、様々なパラメータを設定する事ができる。デフォルト値でも十分使える気はするが、後で分析できるように考えながら設定してみる。懲りすぎると逆に混乱するので注意が必要。。。

プロジェクト

この単位でトラッカー、メンバー、ソースコード管理システムのリポジトリ、Wiki、アナウンス、文書などを登録、公開する。ソフトウェア開発の場合は、管理対象のソフトウェア毎に作成するのが普通。

今回は、主にIS仕事のタスク管理に使うので以下プロジェクトを作成した。
  • 既存システム
  • 目標管理(AD構築など数ヶ月かけて行う作業)
  • その他何でも入れるプロジェクトを1つ
1プロジェクトで全て管理する事も考えたが、数年使い続ける事を考えると、何らかの単位で分けたほうがいい。後々公開する事も考慮。


トラッカー

トラッカーは、チケットの入れ物で、チケット発行時にどのトラッカーに含めるかを選択する。(ただし、後から異なるトラッカーに移動する事もできる) トラッカー毎にワークフローを定義できるのがポイント。プロジェクトの概要ページでは、トラッカー毎に未完了、合計チケット数を表示する。

若干細かすぎのような気もするが、以下のように作った。
  • 課題 : 既存の仕組みで問題があり、改善の必要がある(マイナスを無くす方向)
  • 要望 : 既存の仕組みに機能拡張したい(プラスする方向)
  • サポート : 利用者からの問い合わせはとりあえずここ。後で課題や要望に変化する可能性がある。
  • タスク : マスター登録などシステム変更を伴わない作業。
  • 障害 : システム停止等、障害発生件数は抑えておきたいので分けておく。
  • アイデア : やるかやらないか分からないアイデアを登録。課題や要望の件数に含めないようにするために作成。

バージョン

プロジェクトのロードマップを示すためにバージョンを登録する事ができる。プロジェクト毎に登録するし、各チケットには、ターゲットバージョンを指定する。ロードマップタブでは、関連チケットの一覧と、進捗率を表示する事ができて結構便利。
今回、バージョンやマイルストーンがあるわけではなかったため、以下のように作成した。
  • 月毎のバージョン(200811等)
  • 期毎のバージョン(2008B等)


チケットのステータス

チケットの進捗を示す。終了ステータスを複数種類登録できるのは、便利。(完了したのか、重複登録で却下されたのか等終了のさせ方も複数あるため) また、トラッカー・ロール毎にどのステータスから何のステータスに変更できるかといったワークフローを定義する事ができる。デフォルトでは若干不足しているので以下のようにした。
  • 新規
  • 割当済み
  • 着手 : 未着手と着手の状態を分けたかったため作成。
  • 待ち : 外部の人の作業待ち状態を明らかにしたかったため作成。
  • 終了
  • 却下
解決やフィードバックは必要ない気がするがどうか。。。 まあ、どのステータスで作業が止まりがちになるかを分析するために使うのだろうから、プロジェクトのやり方によっては必要なのだろうが。


カテゴリ

複数のモジュールやサブシステムに分割できる場合は、それをカテゴリとして登録する。故にプロジェクト毎に設定するもの。


優先度

あまり意味がないと思うパラメータのひとつ。優先順位は、問題の大きさ、影響範囲、期限、作業の大変さ、依存関係で変わってくるし、相対的なものだと思うから。誰かうまい使い方を知っている人がいたら教えてください。
とりあえず、高中低にして、常に中。


活動

チケット更新時に作業時間とともにその概要を記録する事ができる。活動は、そこで指定する区分。
あれ、でも誰がどの活動にどれだけ使ったか一覧表示する画面がないような・・・。
とりあえず、以下のように作成。
  • 計画
  • 調査
  • 設計
  • 実行(実装、作業、どれがいいんだろう。。。)
  • まとめ
  • 会議

2008年10月28日

Redmineをインストールする

仕事の都合上Notesが使えなくなったので、Redmineを使ってタスク管理やノウハウ蓄積をしていく。
Tracも考えたけど、何となく後発のRedmineにしてみる。
3年後、生き残って入れくれればいいけど・・・。


インストールメモ&はまった点

環境はWindows XP。ruby経験0でも何とかなるもんだ。