レポート作成時のみ変更可能な項目を作成したい

15 views
Skip to first unread message

yaske

unread,
May 6, 2008, 3:47:28 AM5/6/08
to kagemai-users
はじめまして、弥助といいます。

新規レポートの作成時に入力を必須とし
その後は変更不可能としリプライフォームに表示しない
という動きをする項目を作成したいのですが
対応していないのでしょうか?

フィールドの編集にて
「レポートの属性として扱う」のチェックを入れ
「ゲストによる変更を許可する」のチェックを外し
「デフォルト値」をnilにした場合
そういった動作になりそうな気がしますが
現在は警告が表示され設定が出来ません。

例えばシンプルBTSの「概要」項目は
ゲスト権限時には初期値からの変更を不可能にしておいたほうが良い気がします。
不慣れな人間がリプライの概要と勘違いして変更してしまうのが目に見えていますし
リプライフォームもすっきりしそうです。

どうか対応できないでしょうか?
よろしくお願いします。

FUKUOKA Tomoyuki

unread,
May 7, 2008, 11:59:50 AM5/7/08
to kagema...@googlegroups.com
福岡です。

08/05/06 に yaske<s.y...@gmail.com> さんは書きました:

> 新規レポートの作成時に入力を必須とし
> その後は変更不可能としリプライフォームに表示しない
> という動きをする項目を作成したいのですが
> 対応していないのでしょうか?

ちょっと検討したのですが、汎用的でかつすぐには無理そうです。

> フィールドの編集にて
> 「レポートの属性として扱う」のチェックを入れ
> 「ゲストによる変更を許可する」のチェックを外し
> 「デフォルト値」をnilにした場合
> そういった動作になりそうな気がしますが
> 現在は警告が表示され設定が出来ません。

この設定は新規投稿時にもゲストにはフィールドが見えなくなるため、
今回のニーズとはちょっと違いますね。
紛らわしいなと私も感じましたが。


> 例えばシンプルBTSの「概要」項目は
> ゲスト権限時には初期値からの変更を不可能にしておいたほうが良い気がします。
> 不慣れな人間がリプライの概要と勘違いして変更してしまうのが目に見えていますし
> リプライフォームもすっきりしそうです。

そういった設定ができると嬉しいケースは確かにあると思います。

とりあえず、汎用的にはすぐには無理そうですが、すぐに欲しいのであれば、
まったくスマートではありませんが、以下のパッチを試してみてください。
汎用的に出来るようにするのは時間があるときに考えてみます。
# オプションを1つ増やすのが簡単そうではありますね。

resource/ja/template/_default/message_form.rhtml に対するパッチで、
概要フィールド(フィールドIDが 'title') に対するものです。
'title' のところを変えて行を増やせば、別のフィールドにもいちおう対応できます。

--- message_form.rhtml
+++ message_form.rhtml
@@ -32,6 +32,7 @@
<% next if etype.report_attr && etype['hide_from_guest'] &&
Mode::GUEST.current? %>
<% next if etype.report_attr && !etype.allow_guest &&
Mode::GUEST.current? %>
<% next if etype.report_attr && !etype.allow_user && Mode::USER.current? %>
+ <% next if etype.id == 'title' && Mode::GUEST.current? %>
<tr>
<th <%= errors.tag_class(etype.id) %>>
<%= etype.name %><%= etype.required? ? '<small>*</small>' : '' %>

--
FUKUOKA Tomoyuki

yaske

unread,
May 16, 2008, 3:08:53 AM5/16/08
to kagemai-users
弥助です。
返信ありがとうございます。

> --- message_form.rhtml
> +++ message_form.rhtml
> @@ -32,6 +32,7 @@
> <% next if etype.report_attr && etype['hide_from_guest'] &&
> Mode::GUEST.current? %>
> <% next if etype.report_attr && !etype.allow_guest &&
> Mode::GUEST.current? %>
> <% next if etype.report_attr && !etype.allow_user && Mode::USER.current? %>
> + <% next if etype.id == 'title' && Mode::GUEST.current? %>
> <tr>
> <th <%= errors.tag_class(etype.id) %>>
> <%= etype.name %><%= etype.required? ? '<small>*</small>' : '' %>
パッチを試してみました。

確かに返信時のフォームは消すことが出来たのですが
いざ投稿しようとすると

以下の項目でエラーが発生しました。入力値を修正してください。
以下の必須項目は必ず入力してください。
概要

となってしまい、動作しません。
(デフォルト値nilの場合)
nextではなくinput type=hiddenなタグを出力すれば良さそうですが
ちょっとよくわかりません。
汎用的な対応を待とうと思います。

ありがとうございました。
Reply all
Reply to author
Forward
0 new messages