mcpField
O
odoo-xml-views-builder

odoo-xml-views-builder

github.com/sickn33開発48.7k67 回インストール今日更新
リポジトリ

odoo-xml-views-builder について

Odoo開発者向けに、カンバン、フォーム、リスト、検索、カレンダー、グラフのXML定義を生成・レビューするスキルです。Odoo 14~17に対応し、動的な表示条件のバージョン差も扱います。

主な機能

  1. 01複数種類のOdoo XMLビュー生成
  2. 02XMLのレビューと一般的な誤りの修正
  3. 03表示条件、グループ、ドメイン、コンテキストへの対応
  4. 04Odoo 14~17のバージョン差への対応
  5. 05フィールド、タブ、スマートボタンの配置

活用シーン

  1. 01カスタムモデル用のフォームやリストビュー作成
  2. 02既存ビューへのフィールドやスマートボタンの追加
  3. 03色や進捗バーを使うカンバンビューの作成
  4. 04検索ビューのフィルターやグループ化の設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill odoo-xml-views-builder

インストール後、Claude Code で/odoo-xml-views-builderを入力して読み込まれたか確認します。

詳細

Odoo XML ビュー ビルダー

概要

このスキルは、カンバン、フォーム、リスト、検索、カレンダー、グラフビュー用の Odoo XML ビュー定義を生成し、レビューします。可視性修飾子、groups、domain、context、ウィジェットの使用方法を Odoo 14~17 にわたって理解しており、attrs(v14~16)からインライン式(v17 以降)への移行にも対応しています。

このスキルを使う場面

  • カスタムモデル用の新しいフォームビューまたはリストビューを作成するとき。
  • 既存のビューにフィールド、タブ、スマートボタンを追加するとき。
  • 色分けやプログレスバーを使ったカンバンビューを作成するとき。
  • フィルターやグループ化オプションを備えた検索ビューを作成するとき。

仕組み

  1. 有効化:@odoo-xml-views-builder に言及し、作成したいビューを説明します。
  2. 生成:そのまま貼り付けて使える完全な XML ビュー定義を取得します。
  3. レビュー:既存の XML を貼り付けると、よくある間違いの修正案を取得できます。

例

これらの例は Odoo 17 を対象としており、カスタムモデル、フィールド、メソッドが必要です。v14~16 では、動的修飾子を attrs ドメインに変換してください。ビューの可視性はアクセス制御ではありません。ACL、レコードルール、メソッドの認可は個別に適用してください。

例 1:タブ付きフォームビュー
<record id="view_hospital_patient_form" model="ir.ui.view">
    <field name="name">hospital.patient.form</field>
    <field name="model">hospital.patient</field>
    <field name="arch" type="xml">
        <form string="Patient">
            <header>
                <button name="action_confirm" string="Confirm"
                    type="object" class="btn-primary"
                    invisible="state != 'draft'"/>
                <field name="state" widget="statusbar"
                    statusbar_visible="draft,confirmed,done"/>
            </header>
            <sheet>
                <div class="oe_title">
                    <h1><field name="name" placeholder="Patient Name"/></h1>
                </div>
                <notebook>
                    <page string="General Info">
                        <group>
                            <field name="birth_date"/>
                            <field name="doctor_id"/>
                        </group>
                    </page>
                </notebook>
            </sheet>
            <div class="oe_chatter">
                <field name="message_follower_ids"/>
                <field name="activity_ids"/>
                <field name="message_ids"/>
            </div>
        </form>
    </field>
</record>
例 2:カンバンビュー
<record id="view_hospital_patient_kanban" model="ir.ui.view">
    <field name="name">hospital.patient.kanban</field>
    <field name="model">hospital.patient</field>
    <field name="arch" type="xml">
        <kanban default_group_by="state" class="o_kanban_small_column">
            <field name="name"/>
            <field name="state"/>
            <field name="doctor_id"/>
            <templates>
                <t t-name="kanban-box">
                    <div class="oe_kanban_content">
                        <strong><field name="name"/></strong>
                        <div>Doctor: <field name="doctor_id"/></div>
                    </div>
                </t>
            </templates>
        </kanban>
    </field>
</record>

ベストプラクティス

  • ✅ 推奨:表示/非表示の制御には、attrs の代わりにインラインの invisible="condition"(Odoo 17 以降)を使います。
  • ✅ 推奨:Odoo 14~16 を対象とする場合に限り、attrs="{'invisible': [...]}" を使います。v17 ではサポートされなくなりました。
  • ✅ 推奨:ir.ui.view レコードの name フィールドを設定し、使用可能な string 属性を、対応するアーキテクチャ要素に指定します。
  • ✅ 推奨:Odoo 17 では oe_chatter ブロックを使い、モデルが必要なメール用ミックスインを継承していることを確認します。対象バージョンに合わせて構文を検証してください。
  • ❌ 非推奨:Odoo 17 で attrs を使わないでください。サポートされておらず、ビューの読み込みを妨げる可能性があります。
  • ❌ 非推奨:ビュー XML にビジネスロジックを記述しないでください。Python モデルメソッドに記述してください。
  • ❌ 非推奨:モデル上の domain フィールドで動的に指定できる場合、ビューでハードコードした domain 文字列を使わないでください。

リファレンス:Odoo 17 のビューアーキテクチャ。

制限事項

  • OWL JavaScript ウィジェットやクライアントサイドのコンポーネント開発は対象外です。
  • 検索パネルビュー(<searchpanel>)は網羅していません。これらにはフロントエンドの知識が必要です。
  • Web サイトの QWeb ビューは対象外です。そちらには @odoo-qweb-templates を使ってください。
  • コホートビューとマップビュー(Enterprise 専用)は、このスキルの対象外です。

コメント