5

特定のオブジェクトのツリー ビューから [作成] ボタンを非表示にするにはどうすればよいですか? このオブジェクトにはすべてのフィールドが読み取り専用であるためです。

4

5 に答える 5

15

作業している OpenERP のバージョンによって異なります。より具体的な回答が必要な場合は、それについて言及してください。この質問をしている場合、まだ 7.0 を使用していない可能性がありますが、知っておくと役立つ場合があります。

OpenERP 7.0

OpenERP 7.0 の時点で、システムは次の可能なアクションのそれぞれに対してこれを自動的に行います:作成、編集、削除: 現在のユーザーが (アクセス権の構成に基づいて) アクセス権を持っていない場合、対応するフラグがルートに追加されます。ビュー定義のノードを削除し、UI でオプションを効果的に非表示にします。これらのフラグは、次のアクセス権にそれぞれ対応しています: createwriteunlink

user1576199 が述べたように、このフラグはビュー定義で手動で設定することもできますが、表示するオプションにアクセス権が対応していない場合にのみ必要です。この方法で、任意の組み合わせで実行できます。

<tree create="false" delete="false">
....
</tree>
or
<kanban create="false" edit="false">
....
</kanban>
etc..

OpenERP 6.1 以前

これらのボタンを非表示にするオプションはないため、特にそれを実現したい場合は、OpenERP クライアントをカスタマイズする必要があります。simahawk の回答は、おそらくカスタマイズしたい Web クライアント 6.1 のいくつかの出発点を提供してくれました。

于 2013-02-06T11:54:14.387 に答える
0

このための組み込み機能はありません。編集/削除/その他のボタンは、その背後にあるアクションにアクセスできない場合でも常に配置され、権限のチェックはありません

とにかく、JavaScript ハックを実行して、$('button.oe_form_button_edit').hide() などを実行できます。ここでは、 Web アドオンの開発を開始する方法に関するヒントをいくつか紹介します。

于 2013-02-05T14:02:09.377 に答える
0

ツリービューでこのように書くことができます

<tree string="String" create="false">

ありがとう

于 2013-02-06T06:26:54.690 に答える
0

この解決策が正しいかどうかはわかりませんが、以下のコードをコアの javascript に入れようとすると、実際に機能します。

openerp.web.ListView.include({

    start: function() {
        var self = this;
        var ret = this._super.apply(this, arguments);
        var res_model = this.dataset.model;
        if ($.inArray(res_model, MODELS_TO_HIDE) != -1) {
            self.options.addable = false; /* for create button */
            self.options.deletable= false; /* for delete button */
        };
        return ret;
    },
});

または、次のリンクを参照できます: https://github.com/kdeldycke/kevin-deldycke-blog/blob/master/content/posts/openerp-61-web-javascript-hacks-hide-buttons.md

于 2013-08-23T02:20:04.860 に答える