tkusukawa / kusu

Automatically exported from code.google.com/p/kusu
0 stars 0 forks source link

日毎工数の活動セレクトに同じ項目が複数表示される場合がある #20

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
mschibata様からご連絡いただいた内容を転記します。

使ってみたのですが、サブプロジェクトを作ると 日毎工数 
の 活動 
プルダウンリストに同じ項目が何度も表示されます。

管理画面で作業分類 (時間トラッキング) 
の項目を足したり、順序を変えたり、親、サブプロジェク��
�側設定で、その有効無効を設定し分けて、特定作業向けサ�
��プロジェクトを作ろうとしたり、はたまた親プロジェクト
からチケットを移動したり... 
と色々やってみた後で気づいたので、最初からだったのか��
�それとも途中の操作が悪さしているのかはわかりませんが�
��サブプロジェクトを消しても減りませんので何らかの法則
の下にマージされていっている感じです。 

データベースの enumerations テーブル type = TimeEntryActivity? 
のレコードに元ネタが埋まっているようで、そこをデフォ��
�トに戻したらリセットできました。

この項目は、それぞれのプロジェクトで有効、無効が選べ��
�ようになっており、有効の分は管理画面で設定したままの�
��プロジェクトに出るので何も DB 
上変化なく、無効の分がテーブルに active = 0、project_id 
が当該プロジェクトのもので追加されます。

それを再度有効にするとそのレコードは削除されず active = 
1 
がセットされるだけと言うちょっと変わった動きをしてま��
�。

この場合、プロジェクトごとの「作業分類 
(時間トラッキング)」設定画面右下にリセットのリンクがあ
り、それをクリックするとプロジェクトごとの active = 0/1 
のレコードが削除され再度管理画面で設定したものが使わ��
�るようになります。

リセットを行わず、プロジェクトを削除してしまうとその��
�ま残るので、こうなると DB 
を直接触るしか元に戻す方法がなくなります。

WorkTime 
プラグインですが、このテーブルのプロジェクトごとの 
active = 0/1 のものも区別なく 
活動プルダウンリストに出るようになってるのだと思いま��
�が、プロジェクトごとに「作業分類 
(時間トラッキング)」項目を出し分けようと色々触ると、管
理画面で設定した全項目+プロジェクトで有効無効をいじ��
�た項目が全部マージされて出てきているようです。

これが本件現象の正体です。

ですので... app\controllers\work_time_controller.rb 411 
行目あたりの...

    @activity_options += "<option value="+enm.id.to_s+">"+enm.name 

...を if enm.project_id.nil? then ~ end で囲んで project_id = NULL 
のものだけ出すようにすると、とりあえず重複はしなくな��
�ます。 

Original issue reported on code.google.com by T.Kusukawa on 10 Jul 2010 at 10:30

GoogleCodeExporter commented 9 years ago
プロジェクト毎に「活動」を出し分けられるようになった��
�の
拡張に対応できていなかったようです。

プロジェクトオブジェクトからそのプロジェクトの「活動��
�のリストを
取得できることを見つけたので、
プロジェクトオブジェクトから取得することにしました。( 
r158 )
# これまでよりプログラムがスッキリしました(感謝)

Original comment by T.Kusukawa on 10 Jul 2010 at 10:53

GoogleCodeExporter commented 9 years ago
その後問題も内容なのでクローズします。
ありがとうございました。

Original comment by T.Kusukawa on 13 Sep 2010 at 3:44