08/04/14 に ささき<sasa_...@yahoo.co.jp> さんは書きました:
> 影舞0.8.6を利用しています。
> あるバグ票に別々の人がリプライを記入して同時に更新をした場合ですが、
> 後の書き込みが有効となり、前の書き込みが消えてしまう現象が発生しています。
> 排他制御ができていないと思われます。
影舞の動作環境とデータの保存形式を教えてもらえるでしょうか。
--
FUKUOKA Tomoyuki
08/04/15 に ささき<sasa_...@yahoo.co.jp> さんは書きました:
>
> ご回答ありがとうございます。
(snip)
> > データの保存形式はPostgreSQLです。
Linux マシンにとりあえずはいっていた 0.8.7 でいろいろ
試しましたが今のところ再現しませんねえ・・・
たとえば、問題の起こったレポートの ID が 10 だったとして、
psql で Postgres につないで
> select count(*) from messages where report_id = 10;
と実行してみてもらえるでしょうか。(10は問題の起こったIDに変えて。)
それで表示された値と、影舞上でレポートを見たときの履歴の数は
同じになっているでしょうか?
--
FUKUOKA Tomoyuki
08/04/16 に ささき<sasa_...@yahoo.co.jp> さんは書きました:
> test990=# select count(*) from messages where report_id = 1;
> count
> -------
> 3
> (1 row)
>
> となりました。
>
> 影舞上の履歴も3で一致しています。
>
> 個々の履歴の内容も問題ないのですが、テキストフィールドの内容が正しく反映できていません。
DB上ではデータは正しく入っているみたいですね。
履歴にも表示はされていると。
> 履歴としては3件あり、
> 2件目にはtest001
> 3件目にはtest002
> と表示されている。
>
> ただ、実際のバグ票を見ると、test002しか反映されていない。
ここで言っているバグ票というのは、何を指しているのでしょう?
レポートを表示したときの「最新状況」でしょうか
--
FUKUOKA Tomoyuki
おそらく、内容フィールドをレポート属性にして最新状況に表示させている
のだと思いますが、最新状況はその名前のとおり最新のリプライの内容を
表示します。
つまり、リプライごとにテキストフィールドの内容を追記して表示する
ものではありません。(それ以前に書かれたものは履歴で見れるので。)
というわけで、私が勘違いをしていなければ、
08/04/17 に ささき<sasa_...@yahoo.co.jp> さんは書きました:
> 本来でしたら、テキストフィールドには
> -------------------------------------------------------
> test001
> test002
> -------------------------------------------------------
> と入っているはずですが、
> -------------------------------------------------------
> test002
> -------------------------------------------------------
> しか入っていませんでした。
> (履歴にはtest001は表示されているのですが、テキストフィールドから欠落しています)
こうなるのは意図したとおりの動作です。
複数の端末から同時書き込みなどではなく、1つの端末から
2度書き込んだ場合も同じ振る舞いをすると思いますが
どうでしょうか。
--
FUKUOKA Tomoyuki
08/04/18 に ささき<sasa_...@yahoo.co.jp> さんは書きました:
> 履歴を確認すると、
> No1
> ---------
> 内容
> ---------
>
> No2
> ---------
> >内容
> test001
> ---------
>
> No3
> ---------
> >内容
> test002
> ---------
>
> (4)端末AからNo1のバグ票のリプライを選択し、テキストフィールドの内容を確認する。
> ---------
> >>内容
> >
> >test002
> ---------
> ↑test001が欠落している。
>
> このように(2)の操作で記入した「test001」が消えています。
影舞のリプライフォームでは、テキストフィールドに「最後」のリプライ
の内容に引用符をつけて表示しています。それまでのリプライのすべてを
引用するわけではありません。つまり、最後のリプライの内容が
---------
>内容
test002
---------
である場合、リプライフォームには(それ以前の投稿が何であれ)、
---------
> >内容
> test002
---------
と表示されることになります。
たとえば、履歴が
No1
-------
ABC
--------
No2
-------
DEF
-------
となっていれば、リプライフォームを表示したときには、
最後のリプライである No2 の内容を引用して、テキスト
フィールドは
-------
>DEF
-------
となります。最後のリプライの前に
何が書き込まれていたかは関係ありません。
> 同一端末でリプライを繰り返した場合のテキストフィールドには、
> 前回以前の内容は全て反映されています。
最後のリプライを引用する仕様のため、引用を消して書き込まなければ、
自然にそれまでのすべての内容が書き込まれることになります。
おそらくその動作が誤解の元になっているのだと思うのですが、
たとえば、履歴が
No1
---------
内容
---------
No2
---------
>内容
test001
---------
となっているとき、リプライフォームを表示すると
---------
>>内容
>test001
---------
となると思いますが、この内容をすべてテキストフィールドから削除して
"ABC" と入力して投稿してみてください。その場合、履歴は、
No1
---------
内容
---------
No2
---------
>内容
test001
---------
No3
---------
ABC
---------
となり、ここでリプライフォームを表示すると
---------
>ABC
---------
となると思います。
--
FUKUOKA Tomoyuki
08/04/21 に ささき<sasa_...@yahoo.co.jp> さんは書きました:
> 何度も申し訳ありませんが、再度確認させてください。
> ・同一のバグ票を複数のユーザーにて同時にリプライできないようにすることは可能でしょうか。
> 例えば、あるバグ票をユーザーAでリプライ中には、他ユーザーではリプライできない。
> (ただいま編集中である表示を出す等)
そのような動作であれば、影舞ではできません。
他の多くの Web ベースのバグ管理システムでもおそらく出来ないと思います。
(技術的には実装できるでしょうが、あまり意味がないので。)
> こちらで懸念している事は、同一のバグ票を複数ユーザーが同時にリプライできてしまうため、
> 同時にリプライされた場合には、先にリプライした内容が消えてしまう(履歴上は残るが)ことです。
記録を履歴に残すのが基本的な使い方だと考えてください。
履歴という呼び方が悪いのかもしれませんが、履歴がいわば
各レポートの本文で、バグレポートを見る=履歴を読む
という使い方を想定しています。
重要なのは履歴なので、懸念されていることが
実用上の問題になることは、普通はないと思います。
リプライのフォームでのテキストフィールドの振る舞いがどうしても
気になるのであれば、「管理」→「フィールドのカスタマイズ」で、
内容フィールドの「リプライ時に前回の内容を引用する」をオフに
設定するとすっきりするかもしれません。
--
FUKUOKA Tomoyuki
08/04/22 に ささき<sasa_...@yahoo.co.jp> さんは書きました:
> 度々で申し訳ありませんが、履歴について確認させてください。
>
> テキストフィールドの内容(ID:body)については、履歴には必ず表示されていると思われます。
> 通常はフィールドのカスタマイズにて「履歴のヘッダに表示する」をオンにすると履歴に反映されますが、
> 内容に関しては、このフラグに関わらず常に表示されていますが、この動作は仕様でしょうか。
仕様です。body を非表示にすることは基本的にできません。
どうしても非表示にしたければ、resource/ja/template/_default/view_report.rhtml を
編集するという手もあるにはあります。
--
FUKUOKA Tomoyuki
08/04/23 に ささき<sasa_...@yahoo.co.jp> さんは書きました:
> 履歴を確認する画面(最新状況、履歴、メール通知先の変更)
> で履歴を確認することができますが、例えば、投稿後のメッセージ送信完了画面
> (メッセージの投稿を受け付けました。投稿されたメッセージの内容は以下の通りです。)
> にて最新の履歴番号を設定変更等で表示することはできないでしょうか。
>
> 履歴が1~5まである場合に、リプライをすればメッセージ送信完了画面にて、履歴=6と表示するようなことです。
設定などではできませんが、resource/ja/template/_default/add_message.rhtml の
適当な(表示させたい)場所に
履歴=<%= report.size %>
などと書くといけるかもしれません。
--
FUKUOKA Tomoyuki