いまさらdotproject?

閲覧数: 86(0)

かつて、そこそこ使えるオープンソースのプロジェクト管理ツールとして、日本語化に挑んだ先人もいましたが、本家も含め、最近ではほとんどその声を聞かない「dotproject」ですが、ベースが古いとは言え、なかなか使えるツールだと思ってました。少なくとも、EXCELやMS PROJECTなどのスタンドアロンでしか使えないツールに比べれば、ちゃんとサーバー上で稼働する、意外と本格的なツールでした。(過去形なのが残念ですが)

ブラジル辺りでは、第三者がアップデートを行っているようですが、いかんせん言語がポルトガル語、元は多言語をサポートする優秀な仕組みを持っていたのですが、部外者による最新版は改悪されたせいか、多言語対応しておりません。(気のせいかもしれませんがw)

本家をベースとして、web2projectへ昇華したとも言われていますが、なんか見た目が好みじゃないw

前置きが長くなりましたが、そんな愛しいdotprojectを今一度復活させるべく、テスト環境に導入。日本語化に挑みます。ここでバージョンをおさらいしておくと、本家から出ている正式バージョンは、dotproject 2.1.8です。今回導入するのは、unofficial version 2.2.1aというバージョンです。もちろん本家のサポートはありませんが、2.1.8の日本語化知見はネット上で散見されます。一番良質だと思われるサイトは、ここ 非常に理路整然と日本語化のステップを説明されています。一部ソースファイルの指定が間違っているところがありますが、そのぐらいはご愛敬、そこを乗り越えるぐらいの経験がないと、この後の日本語化はおぼつきませんw

さて、dotproject 2.1.8と2.2.1aでは何が違うのかというと、見た目はもちろんですが、モジュールが標準より増えています。外部の作者によるとPMBOK準拠!とのことですが、主な追加モジュールは、人的資源を管理するresource_mとプログラム管理を行うmacroprojects、そしてお金の管理を行うfinanceモジュールです。今回は、resource_mとmacroprojectsのコード修正と日本語化を行います。なぜコード修正か?実はこの追加モジュール、環境依存するのかインストールしただけでは思い通りに動いてくれませんでした。

ますは、本体のインストールから、対応するDBはMariaDBでもMySQLでも大丈夫ですが、ここではMySQLで話を進めます。今回導入したテスト環境は、AWS検証用なので、CentOSにわざわざMySQLをインストールしています。

/etc/my.cnfの確認から。日本語対応ということで、最低でもUTF8の指定が必要です。ただし、utf8mb4を指定すると、コンバートでエラーが出るのでご注意下さい。ここは大人しくUTF8指定で行きますw

character-set-server = utf8
collation-server = utf8_unicode_ci
skip-character-set-client-handshake
init-connect = SET NAMES utf8

これ以外のインストール設定や日本語化については、前述のリンクをご参照下さい。非常に丁寧に説明されているので、間違えることはほぼないでしょう。(jpgraph_gantt.phpと書くところを間違えている点を除く)

ここからが本題で、resource_mとmacroprojectsモジュールの変更点を列挙します。まずは、resource_mから。modules/resource_m/resource_m.class.phpの469行目付近に以下のコードがあります。これはトータル日数から1日あたりの平均を出すためのコードですが、このままでは半端な日数の時、小数点の位置が間違ってしまい合計がメチャクチャな数値となり、使い物になりません。

                if($assign)
                        $assign = round($assign/$i,1); // Average
                else

以下のように修正します。

                if($assign)
                        $assign = round($assign/$i/10,1)*10; // Average
                else

これでワークロードや日数が半端になっても、正しい合計値が表示されるようになります。次はやってもやらなくてもいい修正だと思いますが、整数の1以下になった場合、切り捨てる設定です。同じくresource_m.class.phpの470行目付近を修正します。

        } 
        return $assign;
}

以下のように修正します。

        } if ($assign < 1) {
                return null;
        } else {
        return $assign;
        }
}

resource_mモジュールのコード修正は以上です。あとはお好みで日本語翻訳ファイルをシステム設定から追加・修正します。

次に取組むのが、macroprojectsモジュールです。これは複数のプロジェクトを束ねてプログラムとして管理するための機能です。インストールしたままだとガントチャートのグループ化が出来ません。分割表示は出来ますが、それだとプロジェクトモジュールと同じなので、ちゃんと機能するようにします。その前に、macroprojectのセットアップファイルをちょこっと修正する必要があります。modules/macroprojects/setup.phpの139行目付近に以下の記述がありますが、{$dbprefix}が忘れられていて、本体のセットアップ時に、プリフィックスを指定していると、ここでエラーとなりシステム値(sysval)オプションが設定されません。

                  INSERT INTO `sysvals` (`sysval_id`, `sysval_key_id`, `sysval_title`, `sysval_value`) VALUES

sysvalsの前に$dbprefixを追加します。

                  INSERT INTO `{$dbprefix}sysvals` (`sysval_id`, `sysval_key_id`, `sysval_title`, `sysval_value`) VALUES

次はガントチャートのグループ化です。PHPの実行エラーを見ると、project_actual_end_dateというカラムがテーブル上に存在しないことが問題のようです。{$dbprefix}_projectsテーブルに該当するカラムを追加します。
たぶん、こんなコマンドでOKじゃないでしょうか。

ALTER TABLE {$dbprefix}_projects ADD project_actual_end_date date;

必要なカラムが出来れば、あとはそのカラムを指定するように変更するだけ。元のコードにコメントでちゃんと記述してあるので、コメント行を入れ替えるだけです。ちょっと長くなったので、今日はここまで。

カテゴリーIT閑話, 公開タグ
いまさらdotproject、続き
blank

前回(これ)は古いオープンソースのプロジェクトマネジメントツール導入の話でした。当時PHPは5.3で  続きを読む

プロジェクト管理-人編
blank

dotProjectの拡張モジュールである「Human Resources」を使って工数を管理する事  続きを読む

管理画面を制限する
blank

このサイトではネット上のさまざまな攻撃からの防御のため、Wordfenceプラグインの無料版を使用し  続きを読む

閲覧数まとめ
blank

閃きついでに総合計と週合計をフラグで制御する方式に変更してみた。これまではベタに関数をまるまるコピー  続きを読む

dotProject
blank

オープンソースのプロジェクト管理ツールである「dotProject」便利なツールで使い込んでいますが  続きを読む

ElasticPress 3.5.6
blank

マイナーバージョンアップにも関わらず、検索スコアリングのパラメータが微調整された結果、期待する検索結  続きを読む

スポンサーリンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください