2017-01-09 9 views
1

フォームビューのポップアップを使用して行の編集値から戻った後、ツリービューの計算フィールドが更新されません。 (子供が保存された後、ポップアップから戻ってきたが、親レコードが保存される前)Odoo v9計算されたツリービュー内のフィールドがポップアップ後に更新されず、レコードが保存されない

たとえば、新しい計算フィールドをSales Order Linesに追加し、計算フィールドを販売に追加しますオーダーの「オーダーライン」タブ(それ自体はセールオーダーフォーム内のツリービューです)。販売注文書を編集して(ツリー内の行を編集するのではなく、編集可能= 'bottom'を無効にする)、フォーム(ポップアップ)を使って編集します。

テストの後に表示されます計算されたフィールドメソッドがフォームビュー内で実行されている場合は、値を更新する必要があります。

行(ツリービュー)の表示には、ポップアップから戻った後に新しい値が表示されますが、まだ表示されていません(古い値が表示されます)。

これは、ポップアップ内のその値を編集した後(行の前)に行(ツリービュー)に新しい値を表示している他の既存のフィールド(たとえば価格)で機能しています親が保存されます)。

計算されたフィールドに古い値が表示されるのはなぜですか?

答えて

1

計算されたフィールドがフォームビュー(ポップアップ)にないため、計算機能が実行されていても、フォームから返された後のラインビューの値が更新されていない(親セーブ)。

計算されたフィールド(invisible = 1)をフォームビュー(ポップアップ)に追加した後、そのラインビューは正常に更新されました。

私はなぜそれがキャッシュかapiと関係があると推測しているのかわかりません。フォームビューから値が返されて行の値が更新されている可能性があります(これについては不明です)。したがって、問題のフィールドがフォームビューにない場合、返されず、行が残っています前の値。

1

上記の@api.depends('any_field_name')を追加しようとすると、問題が解決するはずです。

Odooは、このissueで説明されている計算フィールドについては、依存関係のない計算フィールドを計算しないバグがあります。

私の解決策があなたに適しているかどうか教えてください。

+0

私はさまざまな組み合わせを追加しましたが、問題は解決しませんでした。 私の場合、関数は呼び出されていましたが、フォームから戻るときには単に行ビューを更新していませんでした。 また、関数がフォームビューまたはラインビューの一部として実行されているかどうかを確認することも困難です。やはり私はかなりの組み合わせを試みました。これらのいずれもラインビューで更新をトリガーできませんでした。 – Palza

+0

私は計算されたフィールドのそのバグについて知りませんでした。あなたのソリューションは私にとってうまくいった。 – MouTio

関連する問題