2012-07-31 8 views
5

設定/カスタマイズ/ユーザーインターフェイス/ビュー...から手動で行う代わりに、モジュールを開発してopenerpのデフォルトビューを上書きする方法はありますか?カスタムモジュールによるデフォルトビューを上書きしますか?

私たちはOpenERPを使用しており、リストや検索フィルタ/グループからのフィールドの追加や非表示の多くのデフォルトビュー(プロジェクトリスト、請求書リスト、請求書検索など)をカスタマイズしています。 私はカスタマイズしたいすべてのビューのXMLを書くことができるモジュールを開発する方法はありますか?そのモジュールをインストールすると、そのビューとウィンドウアクションもすべて更新されますか?

答えて

6

View Inheritanceを使用すると、XMLファイルを使用して任意のビューをカスタマイズできます。

継承を使用すると、任意のビューに要素を追加、削除、および置き換えることができます。継承の代わりにデフォルトを置き換えるために、新しい完全なビューを定義することもできます。現在のビューをカスタマイズまたは置換し、そのモジュールをロードするXMLファイルを持つ新しいモジュールを作成するだけです。モジュールフォルダには、__init__.py,__openerp__.pyおよびXMLファイルのみを含める必要があります。

次に、EAN13フィールドを製品ビューから削除する簡単な例を示します。


__init__.py空のファイル


__openerp__.py

{ 
    "name" : "View Customization Test", 
    "version" : "1.0", 
    "category" : "Generic Modules/Inventory Control", 
    'depends' : ['product',], 
    "update_xml" : ["product.xml",], 
    "installable": True, 
    "active": True 
} 

product.xml

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
    <data> 
    <record model="ir.ui.view" id="view_product_form_custom"> 
     <field name="name">product.form.inherit2</field> 
     <field name="model">product.product</field> 
     <field name="inherit_id" ref="product.product_normal_form_view" /> 
     <field name="arch" type="xml"> 
     <field name="ean13" position="replace" /> 
     </field> 
    </record> 
    </data> 
</openerp> 
+0

リンクありがとうございました、v7の場合はhttps://doc.odoo.com/7.0/contribute/05_developing_modules/です –

0

もちろんあります。カスタムモジュールを作成してインストールすることができます。 official docsの基本をご覧ください。 Technical Mementoも手元にあるべきものです。

これにより、開発環境での開発とテストが容易になり、その後、本番環境でコピーしてインストールすることができます。

+0

ドキュメントのTxは非常に便利です。この文書が存在するかどうかは分かりませんでした。 – sluc23

0

確かにそれは(それを行うには良いアイデアです。) まず、単にあなたのアドオンの下

  • アドオンをフォルダを作成view and view inheritance

    • の基礎を読むことも可能ですa __init__.py [python module descriptor]
    • __openerp__.py [OpenERP Module Descriptor]
    • xmlファイルを作成し、必要なビューを既存のビューのXML識別子で囲み、view.xmlを__openerp__.pyに登録します。 新しいモジュールでデータベースを更新してください。
  • 関連する問題