サブプロジェクトの作成について

731 views
Skip to first unread message

くるくる

unread,
Feb 13, 2008, 2:34:21 AM2/13/08
to Redmine Users (japanese)
皆様こんにちは。
本日こちらのグループに参加させていただきました。

Windows環境でも使いやすいことから、こちらのredMineのインストールをしてみました。
バージョンは、 Redmine 0.6.3 になります。
データベースには、SQL Server Expressを利用しています。

SQL Server用のActiveRecordの追加、設定がちょっと面倒だったのですが、なんとかアカウント作成やプロジェクトの作成など、一通
りの操作ができるようになりました。

ただ、「プロジェクト」の設定画面で、「親プロジェクト」を選択するフィールドが出てきません。
redMineはサブプロジェクトの作成が可能ということで、そこに魅力を感じたのですが、バージョンの問題で表示されないのか、それとも、SQL
Serverを使っているからなのか、なんとも見当がつかずに困っております。

もし、皆様の環境(含む: Redmine 0.6.3)では、問題なくサブプロジェクトの設定ができるということでしたら、教えていただけませんで
しょうか。

あるいは、なにかファイルへの設定、事前の準備が必要なのでしょうか。
どうかお知恵を拝借いただければ幸いです。

fmkt

unread,
Feb 13, 2008, 3:13:07 AM2/13/08
to Redmine Users (japanese)
こんにちは。

ソースを読む限り、 「親プロジェクト」を選択するフィールド が出現する条件は
1. redmine の 管理者であること(プロジェクトの管理者ではない)
2. プロジェクトが2つ以上あること
だと、思います。

<% if User.current.admin? and !@root_projects.empty? %>
<p><%= f.select :parent_id, (@root_projects.collect {|p| [p.name,
p.id]}), { :include_blank => true } %></p>
<% end %>

おそらく別の問題なきもしますが、どうでしょうか?

では。

fmkt

unread,
Feb 13, 2008, 11:56:18 PM2/13/08
to Redmine Users (japanese)
こんにちわ。

以下の様にして確認したところ普通に2個目のプロジェクトから
親プロジェクトの選択はでてきました。
svn co svn://rubyforge.org/var/svn/redmine/tags/0.6.3 redmine
cd redmine
mv config/database.yml.example config/database.yml
vi config/database.yml
mysql -u root -e "create database redmine_pkg"
rake db:migrate
rake redmine:load_default_data
ruby script/server


> 今までの流れですが、とりあえず、管理画面から、いくつかプロジェクトを作成しました。
> 作成したプロジェクトは、すべてparent_id = 0 になっています。

> parent_id = 0 なプロジェクトは、root_projectsとして認識されるのかな、
> と思っていたのですが、これは間違いでしょうか。

parent_id を 0 にして確認したところ親プロジェクトの選択が出来ませんでした。

>> pp Project.find(:first)
#<Project id: 1, name: "aaa", description: "test", homepage: "",
is_public: false, parent_id: nil, projects_count: 0, created_on:
"2008-02-14 13:06:19", updated_on: "2008-02-14 13:07:32", identifier:
"test1", status: 1>
=> nil
>> pp Project.find(:first).update_attribute :parent_id , 0
(irb):5: warning: parenthesize argument(s) for future version
true
=> nil
>> pp Project.find(:first)
#<Project id: 1, name: "aaa", description: "test", homepage: "",
is_public: false, parent_id: 0, projects_count: 0, created_on:
"2008-02-14 13:06:19", updated_on: "2008-02-14 13:21:15", identifier:
"test1", status: 1>
=> nil

SQL Serverの仕様をしらないのでなんともいえないのですがNULL許可とかないのでしょうか?

とりあえず以下のようなパッチでなんとかなると思います。
# railsはid が 0 となるものを作らないので
# もし、プロジェクトを作った段階で必ずparent_id が 0 となるなら
# parent_id IS NULL OR の部分は要らないでしょう。


Index: app/controllers/projects_controller.rb
===================================================================
--- app/controllers/projects_controller.rb (リビジョン 1144)
+++ app/controllers/projects_controller.rb (作業コピー)
@@ -93,7 +93,7 @@

def settings
@root_projects = Project.find(:all,
- :conditions => ["parent_id IS NULL
AND status = #{Project::STATUS_ACTIVE} AND id <> ?", @project.id],
+ :conditions => ["parent_id IS NULL
OR parent_id = 0 AND status = #{Project::STATUS_ACTIVE} AND id <> ?",
@project.id],
:order => 'name')
@custom_fields = IssueCustomField.find(:all)
@issue_category ||= IssueCategory.new


On 2月13日, 午後4:34, "くるくる" <akiko_p...@hotmail.co.jp> wrote:

くるくる

unread,
Feb 14, 2008, 12:22:10 AM2/14/08
to Redmine Users (japanese)
皆様こんにちは。
また、fmktさま、コメントありがとうございます!

なかなかうまく返信できず、もうしわけありませんでした....。

該当するソースを参照して、Print文などを使ってチェックしたところ、!@root_projects.empty? が trueになってくれな
いようです。
データベースのprojectsテーブルには、試しに作ったプロジェクトのすべてで、parent_id = 0となっています。

テーブルから無理やり親子関係を設定すれば、あるプロジェクトを子プロジェクトに移動できるには、できたのですが...

でも、うまく動くかとおもいきや、カレンダやガントチャートの表示で不具合やエラーが発生してしまいました。
SQL ServerのDate型やBoolean型がうまく対応していなかったり、生成されるSQLがサポートされていないものになってしまうのが問
題のようです。

基本に戻って、MySQLをデータソースに指定したところ、想定通りの動作が出来ました。
また、表示スタイルも、Classicに切り替えたりできました。

できれば、データの2次利用も行いたいので、SQL Serverで使いたいのですが、うまく動かないとなると悩ましいところです。

SQL Serverでの稼働実績は、どんなものなのでしょうね。

くるくる

unread,
Feb 14, 2008, 12:26:42 AM2/14/08
to Redmine Users (japanese)
fmktさま、ありがとうございます!

ただいま拝見しました。
明日以降になってしまうと思いますが、パッチを当てて動作確認してみます!
> > どうかお知恵を拝借いただければ幸いです。- 引用テキストを表示しない -
>
> - 引用テキストを表示 -

くるくる

unread,
Feb 14, 2008, 9:29:38 PM2/14/08
to Redmine Users (japanese)
こんにちは。
SQL Serverでいくつか不具合?があったので、プロジェクト選択の件も含めて、現状をご報告します。

(1)親プロジェクトの選択

ご指摘いただいた箇所を、以下の通りにしてみました。

  :conditions => ["(parent_id IS NULL OR parent_id = 0) AND status =
#{Project::STATUS_ACTIVE} AND id <> ?", @project.id],
  :order => 'name')

これだと、なんとかプルダウンで親プロジェクトを設定できるようになりました。
ありがとうございました。

なお、projectsテーブルのparent_idの定義は、NULLを許可で、デフォルト値の設定も特にありませんでした。
なぜ0が入っちゃうのか、分らないのですが、ドライバとかアダプタ周りでしょうか...。
(まだRuby触ったばかりなので、これから頑張ってみますが..)


(2)インストール時一般
また、SQL Serverでの動作にあたっては、そのままの sqlserver_adapter.rb ではエラーになってしまいました。
以下を追加しています。
----------------
def quoted_true
"1"
end

def quoted_false
"0"
end
-----------------

(3)設定での、スタイルの選択

テーマを、Classic/Alternateで切り替えるプルダウンは出てきますが、redMain付属のrails(redMine/
vendor/rails) を使うと、変更が反映されます。
一方、redMine/vendor/rails をリネームしておき、ruby\lib\ruby\gems\1.8\gems
\rails-2.0.2 を使うようにする(?)と、テーマの変更が反映されませんでした。
そもそも使い方を間違っているのかもしれませんが....。

(4)カレンダーとガントチャート

いくつか期限付きのチケット(タスク)を登録してみましたが、カレンダに表示されませんでした。
カレンダについては、データがあっても無くてもエラーにはならないのですが、タスクが表示されません。
カレンダを描画している部分は、redMine\app\views\common\_calendar.rhtml だというのはわかりましたが、こ
こで、<% calendar.events_on(day).each do |i| %>
の部分にタスクのデータが入ってきていないようでした。
現在、確認できたのはここまでです....。


ガントチャートを表示しようとすると、エラーが発生してしまいます。
データが無い場合はエラーは出ないのですが、データがあると、こんなエラーが...。

-----------------------------
Showing app/views/projects/gantt.rhtml where line #167 raised:

comparison of Time with Date failed

Extracted source (around line #167):

164: top = headers_height + 10
165: @events.each do |i|
166: if i.is_a? Issue
167: i_start_date = (i.start_date >= @date_from ? i.start_date :
@date_from )
168: i_end_date = (i.due_date <= @date_to ? i.due_date : @date_to )
169:
170: i_done_date = i.start_date + ((i.due_date - i.start_date
+1)*i.done_ratio/100).floor

-----------------------------

ガントチャートは断念したとしても、カレンダーまでは、なんとかできたら良いな...と思っています。
無理そうなら、MySQLにします....。
Message has been deleted
Message has been deleted

くるくる

unread,
Feb 15, 2008, 12:26:18 AM2/15/08
to Redmine Users (japanese)
皆様:
サーバエラーのため、私の投稿が重複してしまい、大変申し訳ありませんでした。
御迷惑おかけしましたこと、お詫び申し上げます。

くるくる

unread,
Feb 20, 2008, 7:26:35 PM2/20/08
to Redmine Users (japanese)
みなさまこんにちは。
「サブプロジェクトの作成について」の件で投稿させていただいた、くるくるです。

fmktさまのご指摘の通り、コードを修正してサブプロジェクトは作成できるようになりましたが、その他の機能の利用で、不具合が出てしまいました。
バグではなく、SQL ServerでサポートされるSQL、データ型にうまく対応できていないのがそもそもの原因のようです。

無理にSQL Serverに合わせるようにコードを修正するのは私のスキルでは難しいこと、どのDBを使ってもロジックはrubyのコード側に集約さ
れていることから、素直に実績のあるMySQLを使うことにしてみました。
登録/アプリ用にはMySQLを使い、SQL Serverからは、リンクサーバの機能を使ってMySQLのデータを参照させれば、たぶん問題ないと思
います。

改めて、fmktさま、どうもありがとうございました。
また、皆様、今後ともよろしくお願いいたします。
Reply all
Reply to author
Forward
0 new messages