モデルのデータをどのように表示・操作させるかを定義するUI構成であり、XMLで管理される画面レイアウトです。
開発者に伝えるときは、**「ビュータイプ」「アクションとの関連」「XML ID」「継承の仕組み」**といった用語が確実に通じるキーワードになります。
✅ 基本構造:Odooの「ビュー」とは
| 要素 | 内容 |
|---|
| View | モデルのデータをユーザーに提示する画面レイアウト定義。 |
| XML定義 | ViewはすべてXMLで構成されており、継承・上書きが可能。 |
| 対象 | モデル(例:sale.order)に紐づくフォーム、リストなど。 |
🧩 主なビュータイプ(View Types)
| View Type | UIの用途 | XMLタグ | 一般名称 |
|---|
| Form View | 詳細画面・編集画面 | <form> | フォームビュー |
| Tree View | 一覧・リスト表示(テーブル形式) | <tree> | リストビュー、ツリービュー |
| Kanban View | ステータスボード(カンバン) | <kanban> | カンバンビュー |
| Search View | フィルタ&検索項目 | <search> | 検索ビュー |
| Calendar View | カレンダー形式の一覧 | <calendar> | カレンダービュー |
| Gantt View | 工程表、スケジューリングなど | <gantt> | ガントチャートビュー |
| Pivot View | クロス集計表 | <pivot> | ピボットビュー |
| Graph View | グラフ表示 | <graph> | グラフビュー |
| Activity View | 次アクション(予定管理) | <activity> | アクティビティビュー |
| Map View | 地図表示 | <map> | マップビュー |
| Dashboard View | KPI表示、リンク集(例:Studio) | <dashboard> | ダッシュボードビュー |
🛠️ 開発者に伝えるときの用語・フレーズ
| 意図 | 使うべきフレーズ例 |
|---|
| この画面の表示を変えたい | 「このモデルのform viewをカスタムしたい」 |
| リストの列順を変更したい | 「tree viewの順番を調整したい」 |
| ステータスボタンを増やしたい | 「form viewのstatusbarを拡張したい」 |
| 自動フィルタを追加したい | 「search viewにドメインフィルタを追加」 |
| 複数のビューがあるときに切り替えたい | 「view_modesにkanbanやpivotを追加」 |
| 独自ビューを追加したい | 「inherit_idで継承してビューを追加」 |
💡 知っておくべきポイント
- ビューは「モデル」単位に定義される
- 各モデルに1つ以上のビューがあり、モード(form/tree等)で切り替え可能
- Studioでの編集は基本的にXMLを自動生成
- ただし複雑な変更は手動でXMLを編集する必要がある(開発者対応)
- ビューの表示制御(ドメイン、attrs)
- 条件付き表示や読み取り専用化もXMLで制御可能(例:
attrs="{'readonly': [('state','=','done')]}")
- ビジネスフローに合わせたビュー設計が重要
- 例:販売→出荷→請求に合わせてステータスバーやアクティビティを活用
- ビューには
external ID がある
- 技術的名称(例:
sale.view_order_form)で開発者に正確に伝えられる
🔁 ビューの継承(Inherit View)
開発者が既存のビューを変更する場合は通常、<xpath> による継承構文を使います。
<record id="view_order_form_custom" model="ir.ui.view">
<field name="name">sale.order.form.inherit</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='amount_total']" position="after">
<field name="custom_field"/>
</xpath>
</field>
</record>
📚 補足:Studioで変更できるもの
- ビューの表示項目(追加・削除・順序)
- グループ化(フィールドの折りたたみなど)
- ステータスバー(selectionの値)
- 条件付き表示(フィールドの可視性)
✅ まとめ
- 「どのモデルの、どのView Typeか」を意識して要件を整理する
- 開発者には「form view」「tree view」「search view」などの用語で明確に伝える
- Studioで簡単にできるものと、XML編集が必要なものを見極める
- Viewは業務UIの中核、業務フロー理解とセットで設計する
コメントを残す