アーキテクチャを表示

一般的なアーキテクチャ

ビューのアーキテクチャは、JavaScript フレームワークによって解釈された XML データによって定義されます。

ほとんどのビューでは、属性と可能なアーキテクチャを定義する *.rng ファイルがあります。 一部のビューは、HTMLコンテンツを受け入れるため、またはパフォーマンス上の理由から、そのようなファイルによって支配されていません。

注釈

現在のコンテキストとユーザーアクセス権は、ビューアビリティに影響を与える可能性があります。

関連項目

View records

Python expression

ノード属性を評価するとき、例えば、 readonly modifierは、次の変数にアクセスできる環境で実行される Python 式 を提供することができます。

  • 現在のビューに存在するすべてのフィールドの名前。現在のレコードの値を含む。 :ref:`list view <reference/view_architectures/list/field>`の`column_invisible`を除く; リレーショナルフィールドは ID のリストとして与えられます。

  • 現在のレコードの ID

  • parent: コンテナを参照するレコード。 :ref:`relational fields <studio/fields/relational-fields> `のサブビュー内のみ;

  • context (dict): 現在のビューのコンテキスト;

  • uid (int): 現在のユーザーのID;

  • today (str): `YYYY-MM-DD`形式の現在のローカル日付;

  • now (str): `YYYY-MM-DD hh:mm:ss`形式の現在のローカル日時。

Example

<field name="field_a" readonly="True"/>
<field name="field_b" invisible="context.get('show_me') and field_a == 4"/>

Example

<field name="field_a"/>
<field name="x2m">
    <!-- sub-view -->
    <form>
        <field name="field_b" invisible="parent.field_a"/>
    </form>
</field>

フォーム

フォームビューは、単一のレコードからのデータを表示するために使用されます。それらは、標準的な HTML で構成され、追加の意味および構造コンポーネントが含まれます。

フォームビューのルート要素は form です。

<form>
    ...
</form>

ルート属性

ビューをカスタマイズするために、ルート要素 form にオプションの属性を追加できます。

string

ビュータイトル。名前のないアクションを開き、ターゲットが「新規」(ダイアログを開く)の場合にのみ表示されます。

要件

省略可能

タイプ

str

デフォルト

''

create

ビューでレコードの作成を無効/有効にします。

要件

省略可能

タイプ

bool

デフォルト

True

edit

ビューでレコードエディションを無効/有効にします。

要件

省略可能

タイプ

bool

デフォルト

True

duplicate

**アクション**のドロップダウンからビューでレコードの複製を無効/有効にします。

要件

省略可能

タイプ

bool

デフォルト

True

delete

Action ドロップダウンからビューのレコード削除を無効/有効にします。

要件

省略可能

タイプ

bool

デフォルト

True

js_class

フォームビューの代わりに、Webクライアントがインスタンス化される JavaScript コンポーネントの名前。

要件

省略可能

タイプ

str

デフォルト

''

disable_autofocus

ビューの最初のフィールドに自動フォーカスを無効にします。

要件

省略可能

タイプ

bool

デフォルト

False

セマンティックコンポーネント

意味成分は、Odoo システムに結合し、それとの相互作用を可能にします。

フォームビューは以下の子要素を受け付けます: field, label, button, reference/view_architures/form/chatter , および 添付ファイルのプレビューウィジェット

プレースホルダはすべてのキャップで表示されます。

field: フィールドの値を表示

field 要素は、現在のレコードの単一のフィールドをレンダリングします(そして、おそらく編集することができます)。

フォームビューで同じフィールドを複数回使用することがサポートされており、フィールドは invisiblereadonly 属性の異なる値を受け取ることができます。 これらのフィールドは同じ値を持つことができますが、異なる表示をすることができます。 しかし、`required`属性に異なる値を持つ複数のフィールドが存在する場合、この動作は保証されません。

<form>
    <field name="FIELD_NAME"/>
</form>

field 要素は以下の属性を持つことができます。

name

レンダリングするフィールドの名前。

要件

Mandatory

タイプ

str

widget

フィールドを表すために使用されるウィジェット。選択したウィジェットは、フィールドのレンダリング方法や編集方法を変更できます。 これは、`fields`レジストリに登録されているJavascript実装(Owlコンポーネント)を指します。

要件

省略可能

タイプ

str

id

ノード id は、ビュー内に同じフィールドが複数発生している場合に役立ちます。( label: フィールドラベルの表示 を参照してください)。

要件

省略可能

タイプ

str

デフォルト

フィールド名

string

フィールドのラベル。

要件

省略可能

タイプ

str

デフォルト

モデルのフィールドの string 属性

help

フィールドまたはラベルにカーソルを合わせたときにツールチップが表示されます。

要件

省略可能

タイプ

str

デフォルト

''

options

このフィールドのウィジェット(デフォルトのウィジェットを含む)の設定オプションは、dict に評価される Python 式として使用されます。

リレーションフィールドには、次のオプションが用意されています。no_createno_quick_createno_openno_create_edit

Example

<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'FIELD_NAME', 'no_quick_create': True}"/>
要件

省略可能

タイプ

Python式

デフォルト

{}

readonly

フィールドをユーザ(False)によって変更できるか、読み取り専用(True)か、値を真偽値と評価するPython式として変更できます。

Example

<field name="fname_a" readonly="True"/>
<field name="fname_b" readonly="name_a in [fname_b, parent.fname_d]"/>
要件

省略可能

タイプ

Python式

デフォルト

False

required

フィールドを空のままにしておくか(False)、真偽値を評価するPython式として設定する必要があります。

Example

<field name="fname_a" required="True"/>
<field name="fname_b" required="fname_c != 3"/>
要件

省略可能

タイプ

Python式

デフォルト

False

invisible

要素が visible (False) か hidden (True) のどちらであれ、真偽値を評価する Python 式です。

注釈

`invisible`属性には2つの使用法があります。

  • 使いやすさ:ビューの過負荷を回避し、コンテンツに応じてユーザーが読みやすくするため。

  • 技術的には、Python式で使用するためには、フィールドが存在する必要があります(見えないだけで十分です)。

Example

<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/>
<group invisible="fname_c != 4">
    <field name="fname_c"/>
    <field name="fname_d"/>
<group>
要件

省略可能

タイプ

Python式

デフォルト

False

groups

要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の ! 演算子で始めることができます。

Example

<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
要件

省略可能

タイプ

str

デフォルト

''

domain

選択のために既存のレコードを表示するときに適用するフィルタは、 :ref:`ドメイン <reference/orm/domains> ` と評価される Python 式として適用されます。

Example

<field name="fname" domain="[('fname_a', '=', parent.fname_b)]"/>
要件

省略可能

タイプ

Python式

デフォルト

[]

スコープ

リレーショナルフィールド

context

可能な値を取得し、レコードを作成または検索するときに使用するコンテキストは、dict に評価される Python 式として使用します。

Example

<field name="fname" context="{
    'TYPE_view_ref': 'ADDON.MODEL_view_TYPE',
    'group_by': 'FIELD_NAME',
    'default_FIELD_NAME': ANY,
    'search_default_FIELD_NAME': True,
    'OTHER_BUSINESS_KEY': ANY,
  }"/>
要件

省略可能

タイプ

Python式

デフォルト

{}

スコープ

リレーショナルフィールド

nolabel

フィールドラベルを非表示にするかどうか。

要件

省略可能

タイプ

bool

デフォルト

False

スコープ

group 要素の直接の子フィールドです。

placeholder

empty フィールドに表示されるヘルプメッセージ。複雑なフォームのフィールドラベルを置き換えることができます。 ただし、ユーザーはプレースホルダテキストを入力フィールドと混同する可能性があるため、データの例ではありません。

要件

省略可能

タイプ

str

デフォルト

''

mode

フィールドのリンクされたレコードに使用する、カンマ区切りの表示モード (ビュータイプ) のリスト。許可されるモード: listformkanban、および graph

要件

省略可能

タイプ

str

デフォルト

一覧表示

スコープ

One2manyMany2many フィールド

class

生成された要素に設定する HTML クラス

スタイルは Bootstrap framework と UI icons を使用します。

  • oe_inline: 通常の行がフィールドに続くのを防ぎ、その範囲を制限します。

  • oe_left, oe_right: floats 対応する方向に要素;

  • oe_read_only, oe_edit_only: 対応するフォームモードでのみ要素を表示します;

  • oe_avatar: 画像フィールドには画像を「アバター」として表示します (最大90x90平方)。

  • oe_state_button: クリック可能なアクションのターゲットとして情報を動的に表示する特定のレンダリングを定義します。

Example

<field name="fname" class="oe_inline oe_left oe_avatar"/>

Example

<button type="object" name="ACTION" class="oe_stat_button" icon="FONT_AWESOME" help="HELP">
   <div class="o_field_widget o_stat_info">
      <span class="o_stat_value"><FIELD/></span>
      <span class="o_stat_text">TEXT</span>
   </div>
</button>
要件

省略可能

タイプ

str

デフォルト

''

filename

ファイル名を指定する関連フィールドの名前。

要件

省略可能

タイプ

str

デフォルト

''

スコープ

Binary フィールド

password

フィールドにパスワードが格納されているかどうか、したがって、そのデータを表示することはできません。

要件

省略可能

タイプ

bool

デフォルト

False

スコープ

Char フィールド

kanban_view_ref

モバイル環境でレコードを選択するときに使用される特定のカンバン :doc:の XMLID View record <view_records>

要件

省略可能

タイプ

str

デフォルト

''

スコープ

リレーショナルフィールド

default_focus

ビューが開いたときにフィールドがフォーカスされているかどうか。ビューの1つのフィールドにのみ適用できます。

要件

省略可能

タイプ

bool

デフォルト

False

注釈

リレーショナルフィールド ノードには特定のサブビューを含めることができます。

Example

<field name="children_ids">
   <list>
      <field name="name"/>
   </list>
   <form>
      <field name="id"/>
      <field name="name"/>
   </form>
</field>

label: フィールドラベルの表示

field コンポーネントが group <reference/view_architectures/form/group>`の内部に直接配置されない場合。 または `nolabel 属性が設定されている場合、フィールドのラベルは自動的に値とともに表示されません。 label コンポーネントは、フィールドのラベルを表示するための手動の代替手段です。

<form>
    <div class="col col-md-auto">
        <label for="FIELD_NAME" string="LABEL"/>
        <div>
            <field name="FIELD_NAME" class="oe_inline"/>
        </div>
    </div>
</form>

label 要素は以下の属性を持つことができます。

for

ラベルに関連付けられたフィールドへの参照。 フィールドの名前またはそのID( :ref:`field <reference/view_architectures/form/field> `に設定されている`id`属性)のいずれかを指定できます。

ビューに同じフィールドが複数存在する場合 これらのフィールドノードに関連付けられているいくつかの`label`コンポーネントがあります。これらのラベルには固有の属性が必要です。 この場合、対応するフィールドノードの id 属性を参照します。

要件

Mandatory

タイプ

str

string

表示するラベル。

要件

省略可能

タイプ

str

デフォルト

モデルのフィールド定義から来るフィールドのラベル

class

生成された要素に設定する HTML クラス

スタイルは Bootstrap framework と UI icons を使用します。

  • oe_inline: 通常の行がフィールドに続くのを防ぎ、その範囲を制限します。

  • oe_left, oe_right: floats 対応する方向に要素;

  • oe_read_only, oe_edit_only: 対応するフォームモードでのみ要素を表示します;

  • oe_avatar: 画像フィールドには画像を「アバター」として表示します (最大90x90平方)。

  • oe_state_button: クリック可能なアクションのターゲットとして情報を動的に表示する特定のレンダリングを定義します。

Example

<field name="fname" class="oe_inline oe_left oe_avatar"/>

Example

<button type="object" name="ACTION" class="oe_stat_button" icon="FONT_AWESOME" help="HELP">
   <div class="o_field_widget o_stat_info">
      <span class="o_stat_value"><FIELD/></span>
      <span class="o_stat_text">TEXT</span>
   </div>
</button>
要件

省略可能

タイプ

str

デフォルト

''

invisible

要素が visible (False) か hidden (True) のどちらであれ、真偽値を評価する Python 式です。

注釈

`invisible`属性には2つの使用法があります。

  • 使いやすさ:ビューの過負荷を回避し、コンテンツに応じてユーザーが読みやすくするため。

  • 技術的には、Python式で使用するためには、フィールドが存在する必要があります(見えないだけで十分です)。

Example

<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/>
<group invisible="fname_c != 4">
    <field name="fname_c"/>
    <field name="fname_d"/>
<group>
要件

省略可能

タイプ

Python式

デフォルト

False

button: アクションボタンの表示

<form>
    <button type="object" name="ACTION" string="LABEL"/>
    <button type="object" name="ACTION" icon="FONT_AWESOME"/>
</form>

button 要素は以下の属性を持つことができます。

type

動作を示すボタンのタイプ。2つの異なる値を持つことができます:

object

ビューのモデルでメソッドを呼び出します。ボタンの name は、現在のレコード ID と現在の context で呼び出されるメソッドです。

action

ir.actions`アクションレコードをロードして実行します。ボタンの`name`は、ロードするアクションのXMLIDです。 `context はビューのモデル (active_model のように) と現在のレコード (active_id のように) で拡張されます。

Example

<button type="object" name="action_create_new" string="Create document"/>
<button type="action" name="addon.action_create_view" string="Create and Edit"/>
要件

`special`属性が設定されていない場合は必須です。

タイプ

str

name

type`が`object`の場合に呼び出すメソッド。 `type`が`action`の場合、ロードするアクションの :term:`XMLID <external identifier>。 生フォーマットまたは`%(XMLID)d`フォーマットのいずれか。

要件

省略可能

タイプ

str

デフォルト

''

string

アイコンに`icon`がない場合は、それ以外の場合は`alt`テキストを指定します。

Example

<button type="object" name="action_create_new" string="Create document"/>
要件

省略可能

タイプ

str

デフォルト

''

icon

ボタンを表示するためのアイコンです。参照リストについては :ref:`icons <reference/user_interface/ui_icons>を参照してください。

Example

<button type="object" name="remove" icon="fa-trash"/>
要件

省略可能

タイプ

str

デフォルト

''

help

マウスカーソルでホバリングするとツールチップメッセージが表示されます。

Example

<button type="object" name="remove" icon="fa-trash" help="Revoke"/>
要件

省略可能

タイプ

str

デフォルト

''

context

ボタンの呼び出しを実行したときにビューのコンテキストにマージされるコンテキストは、dict に評価される Python 式として。

Example

<button name="button_confirm" type="object" context="{'BUSINESS_KEY': ANY}" string="LABEL"/>
要件

省略可能

タイプ

Python式

デフォルト

{}

groups

要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の ! 演算子で始めることができます。

Example

<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
要件

省略可能

タイプ

str

デフォルト

''

invisible

要素が visible (False) か hidden (True) のどちらであれ、真偽値を評価する Python 式です。

注釈

`invisible`属性には2つの使用法があります。

  • 使いやすさ:ビューの過負荷を回避し、コンテンツに応じてユーザーが読みやすくするため。

  • 技術的には、Python式で使用するためには、フィールドが存在する必要があります(見えないだけで十分です)。

Example

<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/>
<group invisible="fname_c != 4">
    <field name="fname_c"/>
    <field name="fname_d"/>
<group>
要件

省略可能

タイプ

Python式

デフォルト

False

class

生成された要素に設定する HTML クラス

スタイルは Bootstrap framework と UI icons を使用します。

  • oe_inline: 通常の行がフィールドに続くのを防ぎ、その範囲を制限します。

  • oe_left, oe_right: floats 対応する方向に要素;

  • oe_read_only, oe_edit_only: 対応するフォームモードでのみ要素を表示します;

  • oe_avatar: 画像フィールドには画像を「アバター」として表示します (最大90x90平方)。

  • oe_state_button: クリック可能なアクションのターゲットとして情報を動的に表示する特定のレンダリングを定義します。

Example

<field name="fname" class="oe_inline oe_left oe_avatar"/>

Example

<button type="object" name="ACTION" class="oe_stat_button" icon="FONT_AWESOME" help="HELP">
   <div class="o_field_widget o_stat_info">
      <span class="o_stat_value"><FIELD/></span>
      <span class="o_stat_text">TEXT</span>
   </div>
</button>
要件

省略可能

タイプ

str

デフォルト

''

special

ダイアログで開かれたフォームビューのボタンの動作。次の2つの異なる値を持つことができます:

save

レコードを保存し、ダイアログを閉じます。

cancel

保存せずにダイアログを閉じます。

Example

<button special="cancel" icon="fa-trash"/>
要件

省略可能

タイプ

str

デフォルト

''

confirm

ボタンのアクションを実行する前に表示する(およびユーザーが受け入れる)確認メッセージ。

Example

<button name="action_destroye_gate" string="Send the goa'uld" type="object" confirm="Do you confirm the action?"/>
要件

省略可能

タイプ

str

デフォルト

''

data-hotkey

ボタンにバインドされているホットキー (keyboard_shortcut, accesskey_と同様) 。 選択した文字と一緒に`alt`キーを押すと有効になります。 または、`shift+`が値の前に追加された場合に選択された文字と一緒に変更します。

Example

<button type="object" name="action_confirm" string="Confirm" data-hotkey="c"/>
<button type="object" name="action_tear" string="Tear the sheet" data-hotkey="shift+k"/>
要件

省略可能

タイプ

str

デフォルト

''

Chatter ウィジェット

チャットウィジェット は、レコードから直接同僚や顧客にメールを送信するための通信とログツールです。 注文請求書 イベント ノート ).

モデルが mail.thread ミックスインを継承するときに、oe_chatter クラスを持つ`div`要素とともに追加されます。

Example

<form>
    <sheet>
        ...
    </sheet>
    <div class="oe_chatter">
        <field name="message_follower_ids"/>
        <field name="activity_ids"/>
        <field name="message_ids" options="OPTIONS"/>
    </div>
</form>

添付ファイルのプレビューウィジェット

添付ファイルのプレビューウィジェットは、o_attachment_preview クラスを持つ div 要素で追加されます。

Example

<form>
    <sheet>
        ...
    </sheet>
    <div class="o_attachment_preview"/>
<form>

構造部品

構造コンポーネントは、ロジックの少ない構造または「視覚的」機能を提供します。フォームビューでは、要素または要素のセットとして使用されます。

Form views accept the following children structural components: group, sheet, notebook, notebook, newline, separator, header, footer, ボタンコンテナ, and タイトルコンテナ.

プレースホルダはすべてのキャップで表示されます。

group: カラムレイアウトを定義する

group 要素は、フォームの列レイアウトを定義するために使用されます。 デフォルトでは、グループは 2 つの列を定義し、グループのほとんどの直接の子要素は 1 つの列になります。

グループの直接の子要素である:ref:field <reference/view_architectures/form/field> 要素はデフォルトで label を表示します。 ラベルとフィールドはそれぞれ`1`の`コルスパン`を持っています。

子要素は水平方向に配置されます(行を変更する前に次の列を埋めようとします)。

 <form>
     <group>
         ...
     </group>
</form>

group 要素は以下の属性を持つことができます。

string

グループに表示されるタイトル。

要件

省略可能

タイプ

str

デフォルト

''

col

group の列数。

要件

省略可能

タイプ

int

デフォルト

2

colspan

子要素によって取られた列の数。

要件

省略可能

タイプ

int

デフォルト

1

invisible

要素が visible (False) か hidden (True) のどちらであれ、真偽値を評価する Python 式です。

注釈

`invisible`属性には2つの使用法があります。

  • 使いやすさ:ビューの過負荷を回避し、コンテンツに応じてユーザーが読みやすくするため。

  • 技術的には、Python式で使用するためには、フィールドが存在する必要があります(見えないだけで十分です)。

Example

<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/>
<group invisible="fname_c != 4">
    <field name="fname_c"/>
    <field name="fname_d"/>
<group>
要件

省略可能

タイプ

Python式

デフォルト

False

可能な構造とレンダリングの表現

../../../_images/form_group.svg
<group>
    <field name="a" string="custom"/>
    <field name="b"/>
</group>
<group string="title 1">
    <group string="title 2">
        <field name="c"/>
        <field name="d"/>
    </group>
    <group>
        <field name="e"/>
        <field name="f"/>
        <field name="g"/>
    </group>
</group>
<group col="12">
    <group colspan="8">
        <field name="h"/>
    </group>
    <group colspan="4">
        <field name="i"/>
    </group>
</group>

sheet: レイアウトをレスポンシブにする

The sheet element can be used as a direct child of the form root element for a narrower and more responsive form layout (centered page, margin...). It usually contains group elements.

<form>
    <sheet>
        ...
    </sheet>
</form>

notebook & page: タブ付きのセクションを追加

notebook 要素はタブされたセクションを定義します。タブは page 子要素によって定義されます。

notebook 要素は group 要素内に配置しないでください。

<form>
    <notebook>
        <page string="LABEL">
            ...
        </page>
    </notebook>
</form>

page 要素は以下の属性を持つことができます。

string

タブのタイトル

要件

省略可能

タイプ

str

デフォルト

''

invisible

要素が visible (False) か hidden (True) のどちらであれ、真偽値を評価する Python 式です。

注釈

`invisible`属性には2つの使用法があります。

  • 使いやすさ:ビューの過負荷を回避し、コンテンツに応じてユーザーが読みやすくするため。

  • 技術的には、Python式で使用するためには、フィールドが存在する必要があります(見えないだけで十分です)。

Example

<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/>
<group invisible="fname_c != 4">
    <field name="fname_c"/>
    <field name="fname_d"/>
<group>
要件

省略可能

タイプ

Python式

デフォルト

False

可能な構造とレンダリングの表現

../../../_images/form_notebook.svg
<form>
    <notebook>
        <page string="Page1">
            ...
        </page>
        <page string="Page2">
            ...
        </page>
    </notebook>
</form>

newline: 新しいグループの行を開始

newline 要素は group 要素内で使用され、現在の行を早期に終了し、すぐに新しい行に切り替えます。 前もって列を埋める必要はありません

<form>
    <group>
        ...
        <newline/>
        ...
    </group>
</form>

可能な構造とレンダリングの表現

../../../_images/form_newline.svg
<form>
    <group string="Title 1">
        <group string="Title 1.1">...</group>
        <newline/>
        <group string="Title 1.2">...</group>
        <group string="Title 1.3">...</group>
    </group>
</form>

separator: 水平方向の間隔を追加

separator 要素は、グループ内の要素間に垂直方向の間隔を追加します。

<form>
    ...
    <separator/>
    ...
</form>

<separator> 要素は以下の属性を持つことができます。

string

セクションタイトルとしてのタイトル

要件

省略可能

タイプ

str

デフォルト

''

可能な構造とレンダリングの表現

../../../_images/form_separator.svg
<form>
    <group>
        <FIELD/>
        <separator string="Title 1"/>
        <FIELD/>
        <group>
            <FIELD/>
            <separator string="Title 2"/>
            <FIELD/>
        </group>
        <group>
            <FIELD/>
            <FIELD/>
        </group>
    </group>
</form>

ちなみに

separator 要素は、同じ内側の group 要素内の要素を水平方向に揃えながら視覚的に分離するために使用できます。

header: ワークフローボタンとステータスを表示

header 要素と sheet 要素を組み合わせると、ワークフローの :ref:`button <reference/view_architectures/form/button>`要素とステータスウィジェットとしてレンダリングされる :ref:`field <reference/view_architectures/form/field>`要素を表示するために一般的に使用されるシート自体の上に全幅の場所があります。

<form>
    <header>
        <BUTTONS/>
    </header>
    <sheet>
        ...
    </sheet>
</form>

Example

<header>
    <button string="Reset" type="object" name="set_draft" invisible="state != 'done'"/>
    <field name="state" widget="statusbar" statusbar_visible="draft,posted" options="{'clickable': 1}"/>
</header>

ボタンコンテナ

:ref:`button <reference/view_architectures/form/button>`要素コンテナは、`button_box`クラスを持つ`div`要素で作成できます。

<form>
    <div name="button_box">
        <BUTTONS/>
    </div>
<form>

可能な構造とレンダリングの表現

../../../_images/form_button_box.svg
<form>
    <div name="button_box">
        <button type="edit" name="edit" icon="fa-edit" string="Button1"/>
        <button type="object" name="my_action" icon="fa-dollar">
            <field name="total_inv" widget="statinfo" string="Invoices"/>
        </button>
    </div>
<form>

タイトルコンテナ

タイトル field 要素のコンテナは、クラス oe_title を持つ div 要素で作成できます。

<form>
    <sheet>
        <div class="oe_title">
            <h1><FIELD/></h1>
        </div>
    </sheet>
<form>

管理設定

設定ビューは、 :ref:`フォーム <reference/view_architectures/form>ビューのカスタマイズです。これらは、集中型の場所で設定を表示するために使用されます。 検索バーとサイドバーがある点で、一般的なフォームビューとは異なります。

Example

<app string="CRM" name="crm">
    <setting type="header" string="Foo">
        <field name="foo" title="Foo?."/>
        <button name="nameAction" type="object" string="Button"/>
    </setting>
    <block title="Title of group Bar">
        <setting help="this is bar" documentation="/applications/technical/web/settings/this_is_a_test.html">
            <field name="bar"/>
        </setting>
        <setting string="This is Big BAR" company_specific="1">
            <field name="bar"/>
        </setting>
    </block>
    <block title="Title of group Foo">
        <setting string="Personalize setting" help="this is full personalize setting">
            <div>This is a different setting</div>
        </setting>
    </block>
</app>

構成要素

Settings views accept the field, label and button elements of form views, as well as three additional children elements: app, block, and setting.

プレースホルダはすべてのキャップで表示されます。

app: アプリケーションを宣言

app 要素は、設定ビューでアプリケーションを宣言するために使用されます。 これは、ビューのサイドバーにアプリケーションのロゴを含むエントリを作成します。検索時にも区切り文字として機能します。

<form>
    <app string="NAME" name="TECHNICAL_NAME">
    ...
    </app>
</form>

app 要素は以下の属性を持つことができます。

string

アプリケーションの名前

要件

Mandatory

タイプ

str

name

アプリケーションの技術的な名前 (モジュールの名前)。

要件

Mandatory

タイプ

str

logo

ロゴへの 相対パス

要件

省略可能

タイプ

path

デフォルト

name 属性で計算されたパス: /name/static/description/icon.png

groups

要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の ! 演算子で始めることができます。

Example

<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
要件

省略可能

タイプ

str

デフォルト

''

invisible

要素が visible (False) か hidden (True) のどちらであれ、真偽値を評価する Python 式です。

注釈

`invisible`属性には2つの使用法があります。

  • 使いやすさ:ビューの過負荷を回避し、コンテンツに応じてユーザーが読みやすくするため。

  • 技術的には、Python式で使用するためには、フィールドが存在する必要があります(見えないだけで十分です)。

Example

<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/>
<group invisible="fname_c != 4">
    <field name="fname_c"/>
    <field name="fname_d"/>
<group>
要件

省略可能

タイプ

Python式

デフォルト

False

block: 設定のグループを宣言

block 要素は設定のグループを宣言するために使用されます。このグループはタイトルと説明を持つことができます。

 <form>
     <app string="NAME" name="TECHNICAL_NAME">
         ...
         <block title="TITLE">
             ...
         </block>
         ...
     </app>
</form>

block 要素は以下の属性を持つことができます。

title

設定ブロックのタイトル。値を検索できます。

要件

省略可能

タイプ

str

デフォルト

''

help

設定ブロックの説明。値を検索できます。

要件

省略可能

タイプ

str

デフォルト

''

groups

要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の ! 演算子で始めることができます。

Example

<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
要件

省略可能

タイプ

str

デフォルト

''

invisible

要素が visible (False) か hidden (True) のどちらであれ、真偽値を評価する Python 式です。

注釈

`invisible`属性には2つの使用法があります。

  • 使いやすさ:ビューの過負荷を回避し、コンテンツに応じてユーザーが読みやすくするため。

  • 技術的には、Python式で使用するためには、フィールドが存在する必要があります(見えないだけで十分です)。

Example

<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/>
<group invisible="fname_c != 4">
    <field name="fname_c"/>
    <field name="fname_d"/>
<group>
要件

省略可能

タイプ

Python式

デフォルト

False

setting: 設定を宣言する

setting 要素は、設定自体を宣言するために使用されます。

設定の最初の field 要素がメインフィールドとして使用されます。 真偽値フィールドであれば左側に、それ以外であれば右側パネルの上に置かれます。 string 属性が定義されていない場合、このフィールドは設定ラベルの作成にも使用されます。

setting 要素は、追加の要素を含めることができます (例えば、HTML)。 これらの要素はすべて右側のパネルにレンダリングされます。

<form>
    <app string="NAME" name="TECHNICAL_NAME">
        <block title="TITLE">
            ...
            <setting string="SETTING_NAME">
                ...
                <field name="FIELD_NAME"/>
                ...
            </setting>
            ...
        </block>
    </app>
</form>

<setting> 要素は以下の属性を持つことができます。

type

デフォルトでは、設定は 2 つのパネル (左右) で視覚的に分離されています。 そして、指定された field を編集します。 `type="header" を定義することで、代わりに特別な種類の設定がレンダリングされます。 この設定は、他の設定の範囲を変更するために使用されます。 たとえば、ウェブサイトアプリケーションでは、この設定は、他の設定が適用されるウェブサイトを示すために使用されます。 ヘッダーの設定は、画面の上部にバナーとして表示されます。

要件

省略可能

タイプ

str

デフォルト

''

string

設定のラベルとして使用されるテキスト。

要件

省略可能

タイプ

str

デフォルト

最初のフィールドのラベル

title

ツールチップとして使用されるテキスト。

要件

省略可能

タイプ

str

デフォルト

''

help

設定の説明です。このテキストは設定ラベルのすぐ下に表示されます (`text-muted`クラス)。

要件

省略可能

タイプ

str

デフォルト

''

company_dependent

会社固有の設定かどうか。設定されている場合は、設定ラベルの横にアイコンが表示されます。

値は 1' のみ受け付けます。

要件

省略可能

タイプ

str

デフォルト

''

documentation

設定のドキュメントへの`path`_ 。設定されている場合は、設定ラベルの横にクリック可能なアイコンが表示されます。 パスは絶対パスでも`相対パスでも構いません。後者の場合は、`https://www.odoo.com/documentation/<version> `からの相対パスでもあります。

要件

省略可能

タイプ

path_

デフォルト

''

groups

要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の ! 演算子で始めることができます。

Example

<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
要件

省略可能

タイプ

str

デフォルト

''

invisible

要素が visible (False) か hidden (True) のどちらであれ、真偽値を評価する Python 式です。

注釈

`invisible`属性には2つの使用法があります。

  • 使いやすさ:ビューの過負荷を回避し、コンテンツに応じてユーザーが読みやすくするため。

  • 技術的には、Python式で使用するためには、フィールドが存在する必要があります(見えないだけで十分です)。

Example

<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/>
<group invisible="fname_c != 4">
    <field name="fname_c"/>
    <field name="fname_d"/>
<group>
要件

省略可能

タイプ

Python式

デフォルト

False

一覧表示

リストビューのルート要素は list (前の名前は tree)です。

可能な構造とレンダリングの表現

../../../_images/list.svg
<list>
    ...
</list>

ルート属性

ビューをカスタマイズするために、ルート要素 list にオプションの属性を追加できます。

string

ビュータイトル。名前のないアクションを開き、ターゲットが「新規」(ダイアログを開く)の場合にのみ表示されます。

要件

省略可能

タイプ

str

デフォルト

''

create

ビューでレコードの作成を無効/有効にします。

要件

省略可能

タイプ

bool

デフォルト

True

edit

ビューでレコードエディションを無効/有効にします。

要件

省略可能

タイプ

bool

デフォルト

True

delete

Action ドロップダウンからビューのレコード削除を無効/有効にします。

要件

省略可能

タイプ

bool

デフォルト

True

import

ビュー上のデータからレコードのインポートを無効/有効にします。

要件

省略可能

タイプ

bool

デフォルト

True

export_xlsx

ビュー上のデータへのレコードエクスポートを無効/有効にします。

要件

省略可能

タイプ

bool

デフォルト

True

editable

ビューのレコードを編集できる場所にし、リストの行から新しいレコードを作成できるようにします。2つの異なる値を持つことができます:

top

リストの先頭から新しいレコードが作成されます。

bottom

リストの一番下から新しいレコードが作成されます。

インラインの form ビューのアーキテクチャは、リストビューから派生します。 フォームビューのフィールドとボタンで有効なほとんどの属性は、リストビューによって受け入れられます。 リストビューが編集できない場合は意味を持たない場合があります。

重要

edit 属性が False に設定されている場合、この動作は無効になります。

要件

省略可能

タイプ

str

デフォルト

''

multi_edit

一度に複数のレコードのフィールドを同じ値に更新できるマルチ編集機能を有効にします。

値は 1' のみ受け付けます。

要件

省略可能

タイプ

str

デフォルト

''

open_form_view

フォームビューでレコードを開くには、各行の最後にボタンを表示します。

ビューが編集不能の場合、効果はありません。

要件

省略可能

タイプ

bool

デフォルト

False

default_group_by

アクションまたは現在の :ref:`search <reference/view_architectures/search> ` でグループ化が指定されていない場合、レコードをデフォルトでグループ化するフィールドの名前。

要件

省略可能

タイプ

str

デフォルト

''

default_order

_order 属性を使用してモデルで定義された順序を上書きするフィールド名のカンマ区切りのリスト。

フィールドの並べ替え順序を逆にするには、 desc を空白で区切ってポストフィックスします。

Example

<list default_order="sequence,name desc">
    ...
</list>
要件

省略可能

タイプ

str

デフォルト

''

decoration-<style>

一致するレコードの行に適用されるスタイルは、真偽値を評価する Python 式として適用されます。

<style> は、 bf (太字)、it (斜体)、infodangermutedprimarysuccess のいずれかに置き換える必要があります。

Example

<list decoration-danger="field_qty &gt; field_limit">
    ...
</list>
要件

省略可能

タイプ

Python式

デフォルト

False

limit

ページの既定のサイズです。正の値でなければなりません。

要件

省略可能

タイプ

int

デフォルト

フォームビューのリストビューのリストは`80`、フォームビューのリストは`40`です。

groups_limit

リストビューがグループ化されているページのデフォルトのグループ数です。厳密に正でなければなりません。

要件

省略可能

タイプ

int

デフォルト

フォームビューのリストビューのリストは`80`、フォームビューのリストは`40`です。

expand

リストビューがグループ化されている場合、デフォルトでグループの最初のレベルを開くかどうか。

警告

グループの数によっては遅くなることがあります。

要件

省略可能

タイプ

bool

デフォルト

False

sample

現在のモデルに何も見つからない場合、ビューにサンプルレコードのセットを追加するかどうか。

これらの偽のレコードは、特定のフィールド名/モデルのヒューリスティックを持っています。例えば、モデル reesのフィールド `display_name 。 sers`にはサンプルの人名が入力され、`email`フィールドには`firstname.lastname@sample.demo`という形式が入力されます。

ユーザーはこれらのデータとやり取りすることができません アクションが実行されるとすぐに破棄されます (レコードの作成、列の追加など)。

要件

省略可能

タイプ

bool

デフォルト

False

構成要素

List views accept the following children elements: field, button, groupby, header, control, and create.

プレースホルダはすべてのキャップで表示されます。

field: フィールドの値を表示

field 要素は、現在のすべてのレコードの単一のフィールドを列としてレンダリングします(そして、おそらく編集することができます)。

リストビューで同じフィールドを複数回使用することはサポートされていません

<list>
    <field name="FIELD_NAME"/>
</list>

field 要素は以下の属性を持つことができます。

name

レンダリングするフィールドの名前。

要件

Mandatory

タイプ

str

widget

フィールドを表すために使用されるウィジェット。選択したウィジェットは、フィールドのレンダリング方法や編集方法を変更できます。 これは、`fields`レジストリに登録されているJavascript実装(Owlコンポーネント)を指します。

要件

省略可能

タイプ

str

string

フィールドのラベル。

要件

省略可能

タイプ

str

デフォルト

モデルのフィールドの string 属性

optional

フィールドの表示を任意にします。フィールドの列は、ビューのヘッダーのボタンで非表示または表示できます。

2つの異なる値を持つことができます:

show

この項目はデフォルトで表示されます。

hide

この項目はデフォルトで非表示になります。

Example

<field name="fname_a" optional="show"/>
<field name="fname_b" optional="hide"/>
要件

省略可能

タイプ

str

readonly

フィールドをユーザ(False)によって変更できるか、読み取り専用(True)か、値を真偽値と評価するPython式として変更できます。

Example

<field name="fname_a" readonly="True"/>
<field name="fname_b" readonly="name_a in [fname_b, parent.fname_d]"/>
要件

省略可能

タイプ

Python式

デフォルト

False

required

フィールドを空のままにしておくか(False)、真偽値を評価するPython式として設定する必要があります。

Example

<field name="fname_a" required="True"/>
<field name="fname_b" required="fname_c != 3"/>
要件

省略可能

タイプ

Python式

デフォルト

False

invisible

要素が visible (False) か hidden (True) のどちらであれ、真偽値を評価する Python 式です。

注釈

`invisible`属性には2つの使用法があります。

  • 使いやすさ:ビューの過負荷を回避し、コンテンツに応じてユーザーが読みやすくするため。

  • 技術的には、Python式で使用するためには、フィールドが存在する必要があります(見えないだけで十分です)。

Example

<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/>
<group invisible="fname_c != 4">
    <field name="fname_c"/>
    <field name="fname_d"/>
<group>
要件

省略可能

タイプ

Python式

デフォルト

False

column_invisible

カラムが見えるかどうか (False) 隠し値 (True) は、真偽値を評価する Python 式です。

invisible とは異なり、カラム全体に影響を与え、サブツリー値なしで評価されます。

Example

<field name="product_is_late" column_invisible="parent.has_late_products == False"/>
<button type="object" name="action_confirm" column_invisible="context.get('hide_confirm')"/>
要件

省略可能

タイプ

Python式

デフォルト

False

groups

要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の ! 演算子で始めることができます。

Example

<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
要件

省略可能

タイプ

str

デフォルト

''

decoration-<style>

一致するレコードのフィールドに適用されるスタイルは、真偽値を評価する Python 式として適用されます。

<style> は、 bf (太字)、it (斜体)、infodangermutedprimarysuccess のいずれかに置き換える必要があります。

Example

<field name="name" decoration-bf="1"/>
<field name="quantity" decoration-info="state == 'draft'"/>
要件

省略可能

タイプ

Python式

デフォルト

False

sum, avg

列の下部に表示する集計。集計は、現在表示されているレコードのみで計算されます。 集計演算は、対応するフィールドの aggregator と一致する必要があります。

Example

<field name="sent" sum="Total" />
<field name="clicks_ratio" avg="Average"/>
要件

省略可能

タイプ

str

デフォルト

''

width

リストビューは、常に列間で利用可能なスペースを最適化しようとします。 フィールドタイプによっては、フィールドタイプに応じて幅を強制することによって行われます。 例えば、日付を表示するのに必要なピクセル数を正確に知っています。 日付フィールドの列に必要なものよりも大きなスペースがないようにするために 他の列に余分なスペースを残します ただし、フレームワークはすべてのフィールドタイプに適切な幅を推測できません。 たとえば、文字フィールドを使用して大きな値や3文字の国コードをエンコードすることができます。 後者の場合、幅を直接アーチで設定することができます (e. をクリックします。 width="40px"). セル内の値をレンダリングするのに必要な幅 (常にピクセル単位) を表します。 列の幅は、指定された値とセルの左右のパディングの合計になります。

要件

省略可能

タイプ

str

デフォルト

''

nolabel

フィールドの列ヘッダーを空のままにするかどうか。設定されている場合、列はソートできません。

値は`1'`のみ受け付けます

要件

省略可能

タイプ

str

デフォルト

''

注釈

リストビューがグループ化されると、数値フィールドが集計され、グループごとに表示されます。 また、グループ内のレコードが多すぎる場合は、グループ行の右側にページャーが表示されます。 このため、 リストビューがグループ化できる状況にある場合、最後の列に数値フィールドを持つのは悪い習慣です。 ただし、フォームビューではグループ化できないため、X2multiフィールドに問題はありません。

可能な構造とレンダリングの表現

../../../_images/list_field.svg
<list>
    <field name="name" string="My Custom Name"/>
    <field name="amount" sum="Total"/>
    <field name="currency_id"/>
    <field name="tax_id"/>
</list>

button: アクションボタンの表示

<list>
    <button type="object" name="ACTION" string="LABEL"/>
    <button type="object" name="ACTION" icon="FONT_AWESOME"/>
</list>

button 要素は以下の属性を持つことができます。

type

動作を示すボタンのタイプ。2つの異なる値を持つことができます:

object

ビューのモデルでメソッドを呼び出します。ボタンの name は、現在のレコード ID と現在の context で呼び出されるメソッドです。

action

ir.actions`アクションレコードをロードして実行します。ボタンの`name`は、ロードするアクションのXMLIDです。 `context はビューのモデル (active_model のように) と現在のレコード (active_id のように) で拡張されます。

Example

<button type="object" name="action_create_new" string="Create document"/>
<button type="action" name="addon.action_create_view" string="Create and Edit"/>
要件

`special`属性が設定されていない場合は必須です。

タイプ

str

name

type`が`object`の場合に呼び出すメソッド。 `type`が`action`の場合、ロードするアクションの :term:`XMLID <external identifier>。 生フォーマットまたは`%(XMLID)d`フォーマットのいずれか。

要件

省略可能

タイプ

str

デフォルト

''

string

アイコンに`icon`がない場合は、それ以外の場合は`alt`テキストを指定します。

Example

<button type="object" name="action_create_new" string="Create document"/>
要件

省略可能

タイプ

str

デフォルト

''

icon

ボタンを表示するためのアイコンです。参照リストについては :ref:`icons <reference/user_interface/ui_icons>を参照してください。

Example

<button type="object" name="remove" icon="fa-trash"/>
要件

省略可能

タイプ

str

デフォルト

''

help

マウスカーソルでホバリングするとツールチップメッセージが表示されます。

Example

<button type="object" name="remove" icon="fa-trash" help="Revoke"/>
要件

省略可能

タイプ

str

デフォルト

''

context

ボタンの呼び出しを実行したときにビューのコンテキストにマージされるコンテキストは、dict に評価される Python 式として。

Example

<button name="button_confirm" type="object" context="{'BUSINESS_KEY': ANY}" string="LABEL"/>
要件

省略可能

タイプ

Python式

デフォルト

{}

groups

要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の ! 演算子で始めることができます。

Example

<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
要件

省略可能

タイプ

str

デフォルト

''

invisible

要素が visible (False) か hidden (True) のどちらであれ、真偽値を評価する Python 式です。

注釈

`invisible`属性には2つの使用法があります。

  • 使いやすさ:ビューの過負荷を回避し、コンテンツに応じてユーザーが読みやすくするため。

  • 技術的には、Python式で使用するためには、フィールドが存在する必要があります(見えないだけで十分です)。

Example

<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/>
<group invisible="fname_c != 4">
    <field name="fname_c"/>
    <field name="fname_d"/>
<group>
要件

省略可能

タイプ

Python式

デフォルト

False

column_invisible

カラムが見えるかどうか (False) 隠し値 (True) は、真偽値を評価する Python 式です。

invisible とは異なり、カラム全体に影響を与え、サブツリー値なしで評価されます。

Example

<field name="product_is_late" column_invisible="parent.has_late_products == False"/>
<button type="object" name="action_confirm" column_invisible="context.get('hide_confirm')"/>
要件

省略可能

タイプ

Python式

デフォルト

False

class

生成された要素に設定する HTML クラス

スタイルは Bootstrap framework と UI icons を使用します。

  • oe_inline: 通常の行がフィールドに続くのを防ぎ、その範囲を制限します。

  • oe_left, oe_right: floats 対応する方向に要素;

  • oe_read_only, oe_edit_only: 対応するフォームモードでのみ要素を表示します;

  • oe_avatar: 画像フィールドには画像を「アバター」として表示します (最大90x90平方)。

  • oe_state_button: クリック可能なアクションのターゲットとして情報を動的に表示する特定のレンダリングを定義します。

Example

<field name="fname" class="oe_inline oe_left oe_avatar"/>

Example

<button type="object" name="ACTION" class="oe_stat_button" icon="FONT_AWESOME" help="HELP">
   <div class="o_field_widget o_stat_info">
      <span class="o_stat_value"><FIELD/></span>
      <span class="o_stat_text">TEXT</span>
   </div>
</button>
要件

省略可能

タイプ

str

デフォルト

''

可能な構造とレンダリングの表現

../../../_images/list_button.svg
<list>
    <field name="name"/>
    <button type="edit" name="edit" icon="fa-edit" title="Edit"/>
    <button type="object" name="my_method" string="Button1" column_invisible="context.get('hide_button')" invisible="amount &gt; 3"/>
    <field name="amount"/>
    <field name="currency_id"/>
    <field name="tax_id"/>
</list>

groupby: グループヘッダーを定義

The groupby element is used to define group headers with button elements when grouping records on Many2one fields. It also accepts field elements, which can be used for modifiers. These fields thus belong on the Many2one co-model. These extra fields are fetched in batch.

<list>
    ...
    <groupby name="FIELD_NAME">
        <BUTTONS/>
        <FIELDS/>
    </groupby>
</list>

groupby 要素は以下の属性を持つことができます。

name

ヘッダーとして使用する Many2one フィールドの名前。

type="edit"を持つ特別な :ref:`button <reference/view_architectures/list/button> 要素を定義して、Many2one フィールドのフォームビューを開くことができます。

要件

Mandatory

タイプ

str

可能な構造とレンダリングの表現

../../../_images/list_groupby.svg
<list>
    <field name="name"/>
    <field name="amount"/>
    <field name="currency"/>
    <field name="tax_id"/>

    <groupby name="partner_id">
        <button type="edit" name="edit" icon="fa-edit" title="Edit"/>
        <field name="email"/>
        <button type="object" name="my_method" string="Button1" invisible="email == 'jhon@conor.com'"/>
    </groupby>
</list>

注釈

groupby 要素内のフィールドは、値を取得して保存するためにのみ使用されますが、それらは表示されません。

header: ワークフローボタンを表示

<list>
    <header>
        <BUTTONS/>
    </header>
    ...
</list>

header 要素は次の子要素を受け付けます。

button

The button element allows defining buttons in the control panel. It is the same element as the button element in list views, but it accepts one more attribute when placed inside a header element:

display

ボタンは、レコードを選択することなく、いつでも使用できるようにします。

値は always のみ受け付けます。

Example

<header>
    <button name="toDoAlways" type="object" string="Always displayed" display="always"/>
    <button name="toDoSelection" type="object" string="Displayed if selection"/>
</header>
要件

省略可能

タイプ

str

デフォルト

''

可能な構造とレンダリングの表現

../../../_images/list_header.svg
<list>
    <header>
        <button type="object" name="to_draft" string="Button1" invisible="context.get('hide_button')"/>
    </header>
    <field name="name"/>
    <field name="amount"/>
    <field name="currency"/>
    <field name="tax_id"/>
</list>

control & create: インライン作成ボタンを追加

control 要素は、create ボタンを受け取るコントロール行を定義します。それぞれの create ボタンは create 要素によって定義されます。

<list>
   <control>
       <create string="LABEL"/>
       <BUTTONS/>
    </control>
    ...
</list>

control 要素は属性を取りません。

create 要素は以下の属性を持つことができます。

string

ボタンのテキスト。

要件

Mandatory

タイプ

str

context

ボタンの呼び出しを実行したときにビューのコンテキストにマージされるコンテキストは、dict に評価される Python 式として。

要件

省略可能

タイプ

Python式

デフォルト

{}

可能な構造とレンダリングの表現

../../../_images/list_control.svg
<list>
    <field name="name"/>
    <field name="amount"/>
    <field name="currency"/>
    <field name="tax_id"/>
    <control>
        <create string="Add a item"/>
        <create string="Add a section" context="{'default_type': 'section'}"/>
        <create string="Add a note" context="{'default_type': 'note'}"/>
    </control>
</list>

注釈

Using the control element makes sense only if the list view is inside a One2many or Many2many field. If any create element is defined, it overwrites the default add a line button.

構成要素

Search views accept the following children elements: field, filter, separator, group, and searchpanel.

プレースホルダはすべてのキャップで表示されます。

field: フィールド値に基づくフィルター

field 要素は、ユーザーが提供する値を持つドメインまたはコンテキストを定義します。 検索ドメインが生成されると、フィールドドメインは AND 演算子を使用して互いに結合されます。

<search>
    <field name="FIELD_NAME"/>
</search>

field 要素は以下の属性を持つことができます。

name

フィルタリングするフィールドの名前。

要件

Mandatory

タイプ

str

string

フィールドのラベル。

要件

省略可能

タイプ

str

デフォルト

モデルのフィールドの string 属性

operator

デフォルトでは、フィールドは :samp:`[(name, {operator}, value)]`の形式のドメインを生成します。 `name`はフィールドの名前で、`value`はユーザーによって提供される値で、フィルターや変換された可能性があります(e. 、ユーザーは選択フィールドの値の label を提供する必要があり、値自体ではありません。

operator 属性は、デフォルトの演算子を上書きすることができます。これは、フィールドの型に依存します。 ., = for float field, but ilike for char fields, child_of for many2one).

要件

省略可能

タイプ

str

デフォルト

=

filter_domain

フィールドの検索ドメインとして使用するドメインは、 :ref:`domain <reference/orm/domains> ` と評価する Python 式として使用します。

self 変数を使用して、カスタムドメインに指定された値を注入できます。 operator 属性だけではなく、より柔軟なドメインを生成するために使用できます (一度に複数のフィールドを検索するなど)。

operatorfilter_domain の両方が与えられた場合、filter_domain が優先されます。

要件

省略可能

タイプ

Python式

デフォルト

[]

context

検索ビューがターゲットになっているビューのコンテキストにマージするコンテキストは、dict に評価される Python 式としてです。

ユーザーが指定した値を含めることができます。これは self 変数の下で利用できます。

要件

省略可能

タイプ

Python式

デフォルト

{}

domain

自動補完を可能にするフィールド(例: Many2one)の補完結果に適用するフィルタ。

要件

省略可能

タイプ

Python式

デフォルト

[]

groups

要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の ! 演算子で始めることができます。

Example

<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
要件

省略可能

タイプ

str

デフォルト

''

invisible

要素が visible (False) か hidden (True) のどちらであれ、真偽値を評価する Python 式です。

注釈

`invisible`属性には2つの使用法があります。

  • 使いやすさ:ビューの過負荷を回避し、コンテンツに応じてユーザーが読みやすくするため。

  • 技術的には、Python式で使用するためには、フィールドが存在する必要があります(見えないだけで十分です)。

Example

<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/>
<group invisible="fname_c != 4">
    <field name="fname_c"/>
    <field name="fname_d"/>
<group>
要件

省略可能

タイプ

Python式

デフォルト

False

可能な構造とレンダリングの表現

../../../_images/search_field.svg
<search>
    <field name="name" string="My Custom Name"/>
    <field name="amount"/>
    <field name="currency_id"/>
    <field name="ref" filter_domain="[('name', 'like', self)]"/>
</search>

filter: あらかじめ定義されたフィルタを作成

filter 要素は、検索ビューで切り替えることができる事前定義されたフィルターを作成するために使用されます。 検索/フィルタリングのためにデータビューに渡されたコンテキストの検索コンテキスト :dfn:にデータを追加することができます。 検索フィルタに新しいセクションを追加することもできます。

<search>
    <filter string="LABEL" domain="DOMAIN"/>
</search>

filter 要素は以下の属性を持つことができます。

name

フィルタの技術的な名前。 enable by default または :ref:`継承フック <reference/view_records/inheritance> ` に使用できます。

要件

Mandatory

タイプ

str

string

フィルタのラベル。

要件

Mandatory

タイプ

str

help

フィルタにカーソルを合わせるとツールチップが表示されます。

要件

省略可能

タイプ

str

デフォルト

''

domain

検索ドメインの一部としてアクションのドメインに追加するドメイン。

要件

省略可能

タイプ

Python式

デフォルト

[]

date

フィルタリングする date または datetime フィールドの名前。

この属性を使用すると、 Filters メニューのサブメニューで利用可能なフィルタのセットが作成されます。 利用可能なフィルタは時間依存ですが、コントロールパネルのインスタンス化時にドメインが評価されるという意味では動的ではありません。

Example

<filter string="Creation Date" name="filter_create_date" date="create_date"/>

デフォルトでは、これらのフィルターには異なるサブフィルターが含まれており、月、四半期、および年に基づいてフィルターすることができます。 さらに、ドメインを使用したフィルタリングを可能にするカスタムサブフィルタを作成できます。これらのカスタムフィルタには、namestring`domain`の属性が必要です。

Example

<filter string="Creation Date" name="filter_create_date" date="create_date">
   <filter name="create_date_last_30_days" string="Last 30 Days" domain="[('create_date', '&gt;', datetime.datetime.combine(context_today() - relativedelta(days=30), datetime.time(23, 59, 59)).to_utc())]"/>
</filter>

この方法で定義されたすべてのカスタムフィルターは互いに排他的で、他のサブフィルターと相互に排他的であることに注意してください。

要件

省略可能

タイプ

str

デフォルト

''

start_month

日付フィルターのドロップダウンに、現在の月に対するオフセットとして表示される最も早い月。

Example

<filter string="Creation Date" name="filter_create_date" date="create_date" start_month="-3"/>

現在の月が2月の場合、ドロップダウンで選択可能な最も早い月は11月になります。

要件

省略可能

タイプ

int

デフォルト

-2

スコープ

空でない date 属性のフィルター

end_month

日付フィルターのドロップダウンに、現在の月に対するオフセットとして表示される最新の月。

Example

<filter string="Creation Date" name="filter_create_date" date="create_date" end_month="2"/>

現在の月が2月の場合、ドロップダウンで選択可能な最新の月は3月になります。

要件

省略可能

タイプ

int

デフォルト

0

スコープ

空でない date 属性のフィルター

start_year

日付フィルターのドロップダウンに表示される最も早い年を、現在の年に対するオフセットとして表示します。

Example

<filter string="Creation Date" name="filter_create_date" date="create_date" start_year="-3"/>

現在の年が2024の場合、ドロップダウンで選択可能な最も早い年は2021になります。

要件

省略可能

タイプ

int

デフォルト

-2

スコープ

空でない date 属性のフィルター

end_year

日付フィルタのドロップダウンに、現在の年に対するオフセットとして表示される最新の年。

Example

<filter string="Creation Date" name="filter_create_date" date="create_date" end_year="2"/>

現在の年が2024の場合、ドロップダウンで選択可能な最新の年は2025になります。

要件

省略可能

タイプ

int

デフォルト

0

スコープ

空でない date 属性のフィルター

default_period

時間ベースのフィルター (date 属性を持つ) のデフォルト期間。有効なフィルター ID のいずれかであるか、カンマ区切りのリストである必要があります。

有効なフィルター ID には以下のものがあります:

  • first_quartersecond_quarterthird_quarterfurth_quarter

  • monthmonth-xmonth-x`month+x`のいずれかです。`x`は`start_month`と`end_month`の間のゼロ以外の整数値です。

  • yearyear-x`year+x`のいずれかです。`x`は`start_year`と`end_year`の間のゼロ以外の整数値です。

  • フィルター内で定義された任意のカスタムフィルターの`name`には、`custom_`が付加されます。

フィルターは、ビューの初期化時に有効化されたデフォルトのフィルターセットにある必要があります。

Example

<filter string="Creation Date" name="filter_create_date" date="create_date" default_period="year,month-1"/>

Example

<filter string="Creation Date" name="filter_create_date" date="create_date" default_period="custom_create_date_last_30_days">
   <filter name="create_date_last_30_days" string="Last 30 Days" domain="[('create_date', '&gt;', datetime.datetime.combine(context_today() - relativedelta(days=30), datetime.time(23, 59, 59)).to_utc())]"/>
</filter>
要件

省略可能

タイプ

str

デフォルト

month、または利用できない場合、現在の月に最も近い値

スコープ

空でない date 属性のフィルター

invisible

要素が visible (False) か hidden (True) のどちらであれ、真偽値を評価する Python 式です。

注釈

`invisible`属性には2つの使用法があります。

  • 使いやすさ:ビューの過負荷を回避し、コンテンツに応じてユーザーが読みやすくするため。

  • 技術的には、Python式で使用するためには、フィールドが存在する必要があります(見えないだけで十分です)。

Example

<field name="fname_b" invisible="fname_c != 3 and fname_a == parent.fname_d"/>
<group invisible="fname_c != 4">
    <field name="fname_c"/>
    <field name="fname_d"/>
<group>
要件

省略可能

タイプ

Python式

デフォルト

False

groups

要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の ! 演算子で始めることができます。

Example

<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
要件

省略可能

タイプ

str

デフォルト

''

context

検索ドメインを生成するためにアクションのドメインにマージされたコンテキスト

The context key group_by set with a field as value can be used to define a group available in the Group By menu. When the field is of type date or datetime, the filter generates a submenu of the Group By menu with the following interval options available: Year, Quarter, Month, Week, and Day. When the filter is in the default set of filters activated at the view initialization, the records are grouped by month by default. This can be changed by using the syntax date_field:interval.

Example

<filter string="Category" name="groupby_category" context="{'group_by': 'category_id'}"/>
<filter string="Creation Date" name="groupby_create_date" context="{'group_by': 'create_date:week'}"/>

注釈

フィールドにグループ化された read_groups の結果は group_expand 属性によって影響を受ける可能性があり、必要に応じて空のグループを表示することができます。 詳細については、 Field を参照してください。

要件

省略可能

タイプ

Python式

デフォルト

{}

注意

フィルターのシーケンス(フィルター以外の要素が区切られていない場合)は、包括的に構成されます。通常の AND ではなく、OR で構成されます。

Example

<filter domain="[('state', '=', 'draft')]"/>
<filter domain="[('state', '=', 'done')]"/>

state フィールドが draft または done のレコードが表示されます。

Example

<filter domain="[('state', '=', 'draft')]"/>
<separator/>
<filter domain="[('delay', '&lt;', 15)]"/>

`state`フィールドが`draft`で、`delay`フィールドが15以下のレコードです。

可能な構造とレンダリングの表現

../../../_images/search_filter.svg
<search>
    <filter string="My Custom Name" domain="[('name', 'ilike', 'AAA')]"/>
    <filter string="My orders" domain="[('user_id', '=', uid)]"/>
    <filter string="Category" context="{'group_by': 'category_id'}"/>
</search>

separator: フィルタのグループ

The separator element is used to separates groups of filters in simple search views. For more complex search views, the group element is recommended.

<search>
    <FILTERS/>
    <separator/>
    <FILTERS/>
</search>

separator 要素は属性を取りません。

group: フィルタの別グループ

The group element is used to separate groups of filters in cluttered search views. In simpler search views, it can be substituted for the separator element.

<search>
    <group>
        <FILTERS/>
    </group>
</search>

group 要素は属性を取りません。

searchpanel: 検索パネルを表示

searchpanel 要素は、マルチレコードビューの左側に検索パネルを表示します。指定したフィールドに基づいてデータをすばやくフィルタリングできます。

<search>
    <searchpanel>
        <FIELDS/>
    </searchpanel>
</search>

searchpanel 要素は field 子要素のみ受け付けます。

searchpanel 要素の子要素として使用される field 要素は、以下の属性を持つことができます。

name

フィルタリングするフィールドの名前。

要件

Mandatory

タイプ

str

string

フィールドのラベル。

要件

省略可能

タイプ

str

デフォルト

モデルのフィールドの string 属性

select

フィールドの動作と表示。2つの異なる値を持つことができます。

one

最大で1つの値を選択できます。サポートされているフィールドタイプは many2oneselection です。

multi

いくつかの値を選択できます。サポートされているフィールドタイプは、 many2onemany2manyselection です。

要件

省略可能

タイプ

str

デフォルト

one

groups

要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の ! 演算子で始めることができます。

Example

<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
要件

省略可能

タイプ

str

デフォルト

''

icon

フィールドのアイコン。

要件

省略可能

タイプ

str

デフォルト

''

color

フィールドの色。

要件

省略可能

タイプ

str

デフォルト

''

field 要素に select=one 属性が設定されている場合、以下の属性を持つことができます。

hierarchize

子カテゴリを親カテゴリの下に表示するか、同じ階層レベルで表示するかどうか。

要件

省略可能

タイプ

bool

デフォルト

True

スコープ

Many2one フィールド

field 要素に select=multi 属性が設定されている場合、以下の属性を持つことができます。

enable_counters

レコードカウンタが計算され、ゼロでない場合に表示されるかどうか。

ちなみに

この属性はパフォーマンスに影響を与えないように存在します。パフォーマンスの問題に対処するもう一つの方法は、 search_panel_select_rangesearch_panel_select_multi_range メソッドをオーバーライドすることです。

要件

省略可能

タイプ

bool

デフォルト

False

expand

カテゴリとレコードがないフィルタを表示するかどうか。

要件

省略可能

タイプ

bool

デフォルト

False

limit

フィールドを取得する最大値。 制限に達した場合、検索パネルに値が表示されず、代わりにエラーメッセージが表示されます。 0に設定すると、すべての値がフェッチされます。

要件

省略可能

タイプ

int

デフォルト

200

domain

レコードが満足しなければならない条件。

Example

<searchpanel>
    <field name="department_id"/>
    <field name="manager_id" select="multi" domain="[('department_id', '=', department_id)]"/>
</searchpanel>
要件

省略可能

タイプ

Python式

デフォルト

[]

groupby

グループ化する値のフィールド名。

要件

省略可能

タイプ

str

デフォルト

''

スコープ

Many2oneMany2many フィールド

デフォルトの検索

検索フィールドとフィルタは、アクションの context を使用して設定できます。 :samp:`search_default_{name}`キー。 フィールドの場合、値はフィールドに設定する値でなければなりません。フィルタの場合は、真偽値または数値でなければなりません。

Example

foo、フィールド、`bar`では、次のアクションコンテキストは`acro`で`foo`を検索し、デフォルトでは`bar`を有効にします。

{
    'search_default_foo': 'acro',
    'search_default_bar': 1
}

値 (1 から 99) は、デフォルトの groupby フィルターの順序を定義するために使用できます。

Example

foo`と`bar`では、2つの*groupby*フィルタを使用すると、アクションコンテキストは最初に`bar、次に`foo`を有効にします。

{
    'search_default_foo': 2,
    'search_default_bar': 1
}

かんばん

Kanban views are used as a kanban board visualisation: they display records as "cards", halfway between a list and a form view.

レコードは、ワークフローの視覚化や操作(タスクや作業進捗管理など)、またはグループ化されていない(単にレコードを可視化するために使用される)ために列にグループ化されます。

かんばんビューのルート要素は かんばん です。

可能な構造とレンダリングの表現

../../../_images/kanban.svg
<kanban>
    ...
</kanban>

注釈

カンバンビューは最大10列を読み込んで表示します。その後のすべての列は閉じられますが、ユーザーが開くことができます。

ルート属性

ビューをカスタマイズするために、ルート要素 kanban にオプションの属性を追加することができます。

string

ビュータイトル。名前のないアクションを開き、ターゲットが「新規」(ダイアログを開く)の場合にのみ表示されます。

要件

省略可能

タイプ

str

デフォルト

''

create

ビューでレコードの作成を無効/有効にします。

要件

省略可能

タイプ

bool

デフォルト

True

edit

ビューでレコードエディションを無効/有効にします。

要件

省略可能

タイプ

bool

デフォルト

True

delete

Action ドロップダウンからビューのレコード削除を無効/有効にします。

要件

省略可能

タイプ

bool

デフォルト

True

default_group_by

アクションまたは現在の :ref:`search <reference/view_architectures/search> ` でグループ化が指定されていない場合、レコードをデフォルトでグループ化するフィールドの名前。

要件

省略可能

タイプ

str

デフォルト

''

default_order

_order 属性を使用してモデルで定義された順序を上書きするフィールド名のカンマ区切りのリスト。

フィールドの並べ替え順序を逆にするには、 desc を空白で区切ってポストフィックスします。

Example

<list default_order="sequence,name desc">
    ...
</list>
要件

省略可能

タイプ

str

デフォルト

''

class

ビューのルートHTML要素にHTMLクラスを追加します。

要件

省略可能

タイプ

str

デフォルト

''

examples

グループ化されたカンバンビューで新しい列を作成するときに参照できる例の KanbanExamplesRegistry のキー。

要件

省略可能

タイプ

str

デフォルト

''

group_create

Add a new column バーが表示されているかどうか。

要件

省略可能

タイプ

bool

デフォルト

True

group_delete

コグメニューから列を削除できるかどうか。

要件

省略可能

タイプ

bool

デフォルト

True

group_edit

コグメニューから列を編集できるかどうか。

要件

省略可能

タイプ

bool

デフォルト

True

groups_draggable

列の順序を変更できるかどうか。

要件

省略可能

タイプ

bool

デフォルト

True

records_draggable

カンバンビューがグループ化されているときにレコードをドラッグできるかどうか。

要件

省略可能

タイプ

bool

デフォルト

True

archivable

「active」フィールドがモデル上で定義されている場合、列に属するレコードをアーカイブまたはアーカイブ解除できるかどうか。

要件

省略可能

タイプ

bool

デフォルト

True

quick_create

フォームビューに切り替えずにレコードを作成できるかどうか。

要件

省略可能

タイプ

bool

デフォルト

カンバンビューがmany21one、selection、char、booleanフィールドでグループ化されている場合の`True`、そうでなければ`False`

quick_create_view

form ビューの参照は、レコードのクイック作成時に開きます。

要件

省略可能

タイプ

str

デフォルト

''

on_create

Create をクリックしたときに呼び出すカスタムアクション

`'quick_create'`に設定すると、代わりにレコードのクイック作成が使用されます。クイック作成が無効になっている場合、標準の作成アクションが呼び出されます。

要件

省略可能

タイプ

str

デフォルト

''

can_open

デフォルトでは、カンバンカードをクリックすると、フォームビューで対応するレコードが開きます。 この動作は、属性 can_openFalse に設定することで無効にできます。

要件

省略可能

タイプ

bool

デフォルト

True

highlight_color

かんばんカードの左端に色を付けるために使用される整数フィールドの名前。

要件

省略可能

タイプ

str

sample

現在のモデルに何も見つからない場合、ビューにサンプルレコードのセットを追加するかどうか。

これらの偽のレコードは、特定のフィールド名/モデルのヒューリスティックを持っています。例えば、モデル reesのフィールド `display_name 。 sers`にはサンプルの人名が入力され、`email`フィールドには`firstname.lastname@sample.demo`という形式が入力されます。

ユーザーはこれらのデータとやり取りすることができません アクションが実行されるとすぐに破棄されます (レコードの作成、列の追加など)。

要件

省略可能

タイプ

bool

デフォルト

False

構成要素

かんばんビューは次の子要素を受け付けます: テンプレート, フィールド, ヘッダー, progressbar

templates: カードの構造を定義する

templates 要素は、カンバン カードを構成する QWeb テンプレート を定義するために使用されます。

カードの構造の定義は、明確にするために複数のテンプレートに分割することができますが、少なくとも 1 つのルート card テンプレートを定義する必要があります。

追加のテンプレートを定義することができます: menu 。 定義されている場合は これは、カードの右上に垂直省略記号(:guilabel:`<unk> `)で切り替えることができるドロップダウン内でレンダリングされます。

テンプレートは :ref:`JavaScript QWeb <reference/qweb/javascript> ` で記述されています。

<kanban>
   <templates>
      <t t-name="card">
         <field name="name"/>
      </t>
   </templates>
</kanban>

警告

これらはQWebテンプレートで、Owl templatesではありません。つまり、`t-on-click`のようなディレクティブは使用できません。

フィールド

これらのテンプレートの中で、 field 要素はフィールドをレンダリングすることができます。以下の属性を持つことができます。

name

レンダリングするフィールドの名前。

要件

Mandatory

タイプ

str

widget

フィールドを表すために使用されるウィジェット。選択したウィジェットは、フィールドのレンダリング方法や編集方法を変更できます。 これは、`fields`レジストリに登録されているJavascript実装(Owlコンポーネント)を指します。

要件

省略可能

タイプ

str

デフォルトでは、フィールドノードはフォーマットされた値を含む span に置き換えられます。 widget 属性が指定されていない限り、レンダリングと動作は対応するウィジェットによって異なります。 widget 属性は、以下を含む異なる値を持つことができます。

handle

対応する項目を順序として使用して、ドラッグアンドドロップでレコードを並べ替えることができます。

kanban_color_picker

色 (整数) フィールドを編集できます。ルート属性 highlight_color と組み合わせることで、カードの色を編集できます。

さまざまなウィジェットとそのオプションを見つけるには、 :ref:の `Field section <reference/js/widgets>を参照してください。

レンダリングコンテキスト

:ref:`QWeb エンジン <reference/qweb/javascript>`でレンダリングされているカンバンテンプレートは レンダリングコンテキスト を持ちます。 テンプレートで利用可能な一連の変数に有用な情報とツールが含まれています。 利用可能な変数を紹介します:

record

ビューで定義されているすべてのフィールドを持つオブジェクト。各フィールドには、valueraw_value という 2 つの属性があります。 前者は現在のユーザーパラメータに従ってフォーマットされ、後者は生の値 (e. をクリックします。このオブジェクトは、例えば t-if 条件内でフィールドの値を使用する場合に便利です。 表示用には、`<field>`タグを使用することをお勧めします。

Example

<kanban>
   <templates>
      <field name="is_company"/>
      <t t-name="card">
         <field name="name"/>
         <field t-if="!record.is_company.raw_value" name="parent_id">
      </t>
   </templates>
</kanban>
widget

ユーザーに利用可能なアクションを定義する2つのキーを持つオブジェクト:

  • editable: ユーザがレコードを編集できる場合はtrue、そうでなければfalse;

  • deletable: ユーザがレコードを削除できる場合は true、そうでない場合は false です。

これは、特定のアクセス権を必要とする要素を条件付きで表示する場合に便利です。

Example

<kanban>
   <templates>
      <t t-name="card">
         <field name="name"/>
      </t>
      <t t-name="menu">
         <a t-if="widget.deletable" role="menuitem" type="delete" class="dropdown-item">Delete</a>
      </t>
   </templates>
</kanban>
context

カンバンビューを開くアクションのいずれかから現在のコンテキストが伝播します。 カンバンビューをフォームビューに埋め込む1-2-m多数のフィールドです

read_only_mode

ビューが読み取り専用であることを示します。

タイプ

bool

selection_mode

many2oneまたはmany2multiフィールド(モバイル環境)を選択するときにカンバンビューを開くかどうか。

タイプ

bool

luxon

luxon オブジェクト。日付と日付フィールドの値を操作できます。

JSON

Javascript JSON namespace object に parse メソッドを含む json フィールドの値をJavascript オブジェクトに解析することができます。

ウィジェット

widget 要素は、動的に生成された (Javascript) html をカード内に挿入することができます。 `view_widgets`レジストリに登録されているJavascriptの実装(Owlコンポーネント)を参照して、必須の`name`属性があります。

さまざまなウィジェットとそのオプションを見つけるには、 :ref:`ウィジェットセクション <reference/javascript_reference/view_widgets>を参照してください。

レイアウト

Several card layouts can be easily obtained using standard html elements and Bootstrap utility classes. By default, the card is a flexbox container with column direction.

Example

<kanban>
   <templates>
      <t t-name="card">
         <field class="fw-bold fs-5" name="display_name"/>
         <field class="text-muted" name="parent_id"/>
         <field name="tag_ids" widget="many2many_tags"/>
      </t>
   </templates>
</kanban>

footer html要素は、カードの底にくっつけるようにスタイル付けされています そして、`row`方向を持つフレックスボックスコンテナとして、同じ行に複数のフィールドを簡単に表示できます。

Example

<kanban>
   <templates>
      <t t-name="card">
         <field class="fw-bold fs-5" name="display_name"/>
         <field class="text-muted" name="parent_id"/>
         <field name="tag_ids" widget="many2many_tags"/>
         <footer>
            <field name="priority" widget="priority"/> <!-- bottom left corner -->
            <field class="ms-auto" name="activity_ids" widget="kanban_activity"/> <!-- bottom right corner -->
         </footer>
      </t>
   </templates>
</kanban>

カード側に画像のようなコンテンツを表示するには、 asidemain html 要素は、flex-row クラス名をカードに使用できます。 `main`ノードは、`aside`がない場合のようなフレックスボックスのコンテナです。

Example

<kanban>
   <templates>
      <t t-name="card" class="flex-row">
         <aside>
            <field name="avatar_128" widget="image" alt="Avatar"/>
         </aside>
         <main class="ms-2">
            <field class="fw-bold fs-5" name="display_name"/>
            <field class="text-muted" name="parent_id"/>
            <field name="tag_ids" widget="many2many_tags"/>
            <footer>
               <field name="priority" widget="priority"/>
               <field class="ms-auto" name="activity_ids" widget="kanban_activity"/>
            </footer>
         </main>
      </t>
   </templates>
</kanban>

ちなみに

aside 要素に設定された o_kanban_aside_full クラス名は、画像がカードの枠に広がるようにパディングを削除します。

field: フェッチするフィールドを宣言する

field 要素は、カンバン templates*outside * も使用できます。 その場合、カードに表示されていないフィールドを宣言することができます 例えば、値は t-if 条件で使用されるため、まだ取得する必要があります。

Example

<kanban>
   <templates>
      <field name="is_company"/>
      <t t-name="card">
         <field name="name"/>
         <field t-if="!record.is_company.raw_value" name="parent_id">
      </t>
   </templates>
</kanban>

header: コントロールパネルのボタンを表示する

header 要素は、コントロールパネルにカスタムボタンを挿入するために使用されます。

<kanban>
   <header>
      ...
   </header>
   ...
</kanban>

header 要素は button 子要素のみ受け付け、 list views' button 要素と同様です。

header 要素の子要素として使用される button 要素は、次の追加属性を持つことができます。

display

ボタンの表示モード。2つの異なる値を持つことができます。

display

このボタンは、いくつかのレコードが選択されている場合にのみ表示されます。

always

このボタンは、レコードが選択されていなくても常に表示されます。

重要

カンバンビューでレコードを選択することはまだできないため、always 表示モードのみ使用できます。

Example

<header>
    <button name="toDoAlways" type="object" string="Always displayed" display="always"/>
    <button name="toDoSelection" type="object" string="Displayed if selection"/>
</header>
要件

省略可能

タイプ

str

デフォルト

表示

progressbar: 列の上に進捗バーを表示する

progressbar 要素は、グループ化されたカンバンビューのカンバン列の上に表示するプログレスバーを定義するために使用されます。

<kanban>
    <progressbar field="FIELD_NAME"/>
    ...
</kanban>

progressbar 要素は以下の属性を持つことができます。

field

進行状況バーのサブグループに基づいているフィールドの名前。

要件

Mandatory

タイプ

str

colors

プログレスバーのフィールド値を、mutedsuccesswarning、そして `dang`にマッピングします。

要件

Mandatory

タイプ

JSON

sum_field

プログレスバーの横に表示される合計で使用するフィールドの名前。 設定されていない場合、レコードの合計数が代わりに表示されます。

要件

省略可能

タイプ

str

デフォルト

''

可能な構造とレンダリングの表現

../../../_images/kanban_progressbar.svg
<kanban>
    <progressbar field="activity_state"
                 colors="{'planned': 'success', 'today': 'warning', 'overdue': 'danger'}"
                 sum_field="expected_revenue"/>
    <templates>
        ...
    </templates>
</kanban>

QWeb

QWeb ビューは、ビューの arch 内の標準の QWeb テンプレート テンプレートです。特定のルート要素はありません。 QWeb ビューには特定のルート要素がないためです。 その型を明示的に指定する必要があります (arch フィールドのルート要素から推定することはできません)。

QWeb ビューには 2 つのユースケースがあります:

  • フロントエンドテンプレートとして使用することができ、 template をショートカットとして使用する必要があります。

  • 実際の qweb ビューとして使用できます(アクション内で開かれます)。 その場合、明示的な type とモデルを持つ正規ビューとして定義する必要があります (推測できません)。

基本的な qweb-as-template への qweb-as-view の主な追加は次のとおりです。

  • qweb-as-view has a special case for a <nav> element bearing the CSS class o_qweb_cp_buttons: its contents should be buttons and will be extracted and moved to the control panel's button area, the <nav> itself will be removed, this is a work-around to control panel views not existing yet

  • qweb-as-view レンダリングは、標準の qweb レンダリング コンテキストに複数のアイテムを追加します。

    model

    qwebビューが結合されているモデルは

    domain

    検索ビューで提供されるドメイン

    context

    検索ビューで表示されるコンテキスト

    records

    model.search(domain) の遅延プロキシは、レコードを反復し、より複雑な操作を実行しない場合に使用できます (例: グループ化)

  • qweb-as-view は、追加のレンダリング フックも提供します。

    • _qweb_prepare_context(view_id, domain) は、qweb-as-view 固有のレンダリングコンテキストを準備します

    • qweb_render_view(view_id, domain) はクライアントによって呼び出されるメソッドで、context-preparation メソッドと最終的には env['ir.qweb'].render() を呼び出します。

グラフ

グラフ ビューは、複数のレコードまたはレコード グループの集計を視覚化するために使用されます。 ルート要素は以下の属性を取得できる「<graph>」です。

type (任意)

bar (デフォルト)、pie および line のいずれかを使用するグラフの種類

stacked (任意)

bar チャートにのみ使用します。グループ内のバーが最初に積み上げられないようにするには、0 に設定します。

disable_linking (任意)

グラフのクリックをリスト表示にリダイレクトしないようにするには、1 を設定します。

order (任意)

設定されている場合、x軸の値は指定された順序(asc または desc)に対する基準でデフォルトでソートされます。 barpie チャートにのみ使用されます。

string (任意)

リストビューにリダイレクトするときにパンくずリストに表示される文字列。

sample

現在のモデルに何も見つからない場合、ビューにサンプルレコードのセットを追加するかどうか。

これらの偽のレコードは、特定のフィールド名/モデルのヒューリスティックを持っています。例えば、モデル reesのフィールド `display_name 。 sers`にはサンプルの人名が入力され、`email`フィールドには`firstname.lastname@sample.demo`という形式が入力されます。

ユーザーはこれらのデータとやり取りすることができません アクションが実行されるとすぐに破棄されます (レコードの作成、列の追加など)。

要件

省略可能

タイプ

bool

デフォルト

False

グラフビューで許可される唯一の要素は field で、以下の属性を持つことができます。

name (必須)

ビューで使用するフィールド名。グループ化に使用される場合(集計ではなく)

invisible (任意)

trueの場合、フィールドはアクティブな小節にも選択可能な小節にも表示されません。

type (任意)

measure に設定されている場合、フィールドはグループ条件の代わりにグループ内の集計値として使用されます。 これは、その属性を持つ最後のフィールドに対してのみ動作しますが、文字列属性を持つ他のフィールド(下記参照)には有用です。

interval (任意)

日付と日付のフィールドでは、指定された間隔 (day, week, month) でグループ化されます。 特定の日時(固定2番目の解像度)または日付(固定1日の解像度)にグループ化する代わりに、quaret または year を使用します。 デフォルトは month です。

string (任意)

type="measure" のフィールドにのみ使用されます。 グラフビューでフィールドを表示するために使用される名前は、フィールドのデフォルトの python String 属性を上書きします。

測定はモデル フィールドから自動的に生成されます。集計可能なフィールドのみが使用されます。 これらの対策はフィールドの文字列にアルファベット順にソートされます。

警告

グラフ表示の集計はデータベースコンテンツに対して行われ、格納されていない機能フィールドはグラフ表示では使用できません

グラフビューでは、fieldwidget 属性を持ってフォーマットを指定できます。 ウィジェットは float_timemonetary が最も興味深いフィールドフォーマッタでなければなりません。

<field name="working_hours_close" widget="float_time"/>

ピボット

ピボットビューは、集計を pivot table として視覚化するために使用されます。そのルート要素は <pivot> で、次の属性を取ることができます。

disable_linking (任意)

リストビューへのテーブルセルのリンクを削除するには 1 に設定してください。

display_quantity (任意)

デフォルトでformat@@0列を表示するには、1 に設定します。

default_order (任意)

ビューでデフォルトの順序として使用する小節と順序 (asc または desc) の名前。

<pivot default_order="foo asc">
   <field name="foo" type="measure"/>
</pivot>

ピボットビュー内で許可されている要素は field で、以下の属性を持つことができます。

name (必須)

ビューで使用するフィールド名。グループ化に使用される場合(集計ではなく)

string (任意)

ピボットビューにフィールドを表示するために使用される名前は、フィールドのデフォルトの python String 属性を上書きします。

type (任意)

は、フィールドをグループ化条件として使用するか、グループ内の集計値として使用するかどうかを示します。可能な値は次のとおりです:

row (default)

指定されたフィールドのグループごとに、各グループはそれぞれの行を取得します。

col

列単位のグループを作成

measure

フィールドでグループ内で集計する

interval

日付と日付のフィールドでは、指定された間隔 (day, week, month) でグループ化されます。 特定の日時(固定2番目の解像度)または日付(固定1日の解像度)にグループ化する代わりに、quaret または year を使用します。

invisible (任意)

真実なら このフィールドは、アクティブな小節にも選択可能な小節にも表示されません (意味を持たないフィールドには便利です) 異なる部隊の畑と同じだ を選択します。

sample

現在のモデルに何も見つからない場合、ビューにサンプルレコードのセットを追加するかどうか。

これらの偽のレコードは、特定のフィールド名/モデルのヒューリスティックを持っています。例えば、モデル reesのフィールド `display_name 。 sers`にはサンプルの人名が入力され、`email`フィールドには`firstname.lastname@sample.demo`という形式が入力されます。

ユーザーはこれらのデータとやり取りすることができません アクションが実行されるとすぐに破棄されます (レコードの作成、列の追加など)。

要件

省略可能

タイプ

bool

デフォルト

False

測定はモデル フィールドから自動的に生成されます。集計可能なフィールドのみが使用されます。 これらの対策はフィールドの文字列にアルファベット順にソートされます。

警告

グラフ表示のように、ピボットはデータベース内のデータを集約します。つまり、格納されていない関数フィールドはピボットビューでは使用できません。

ピボットビューでは、fieldwidget 属性を持ってフォーマットを指定できます。 ウィジェットは datedatetimefloat_timemonetary のフィールドフォーマッタでなければなりません。

たとえば、タイムシートのピボットビューは以下のように定義できます。

<pivot string="Timesheet">
    <field name="employee_id" type="row"/>
    <field name="date" interval="month" type="col"/>
    <field name="unit_amount" type="measure" widget="float_time"/>
</pivot>

カレンダー

カレンダービューには、毎日、毎週、毎月、または毎年のカレンダーのイベントとして記録が表示されます。

注釈

デフォルトでは、カレンダービューは現在の日付(今日)を中心に表示されます。 アクションのコンテキストに特定の初期日付を渡すことで、カレンダーの初期フォーカスをこの日付の周りに設定することができます (`mode`を参照してください) (`initial_date`を使用するコンテキストキー)

ルート要素は <calendar> です。カレンダービューで利用可能な属性は次のとおりです:

文字列

文字列 (デフォルト: '')

このビューのタイトルは、名前がなくターゲットが「新規」(ダイアログを開く)のアクションを開いた場合にのみ表示されます。

追加(create)

bool (デフォルト: True)

ビューでレコードの作成を無効/有効にします。

編集

bool (デフォルト: True)

ビューでレコードエディションを無効/有効にします。

削除(delete)

bool (デフォルト: True)

**アクション**のドロップダウンからビューのレコード削除を無効/有効にします。

date_start (必須)

イベントの開始日時を保持するレコードフィールドの名前

date_stop

イベントの終了日時を保持するレコードのフィールド名 date_stop が指定された場合、カレンダー内で直接(ドラッグ&ドロップで)移動可能になります

date_delay

date_stop の代わりに、イベントの終了日時 (日単位) の代わりに、イベントの継続時間を提供します。

color

*カラーセグメント*に使用するレコードフィールドの名前。 同じ色セグメントのレコードは、カレンダーで同じハイライト色が割り当てられ、色は半ランダムに割り当てられます。 サイドバーに表示されているレコードのdisplay_name/アバターを表示しました

form_view_id

ビューでは、ユーザーがイベントを作成または編集したときに開きます。 この属性が設定されていない場合に注意してください。 カレンダービューは、現在のアクションのフォームビューのIDに戻ります(存在する場合)。

event_open_popup

オプション 'event_open_popup' が true に設定されている場合、カレンダービューは FormViewDialogでイベント(またはレコード)を開きます。 それ以外の場合は、新しいフォームビューでイベントを開きます (do_action付き)

quick_create

クリックするとクイックイベントの作成を有効にします: ユーザーに name (この値が保存されているフィールドは rec_name で制御することができます) を要求し、クリックしたイベント時間だけで新しいイベントを作成しようとします。 クイック作成に失敗した場合は、フルフォームのダイアログに戻ります

quick_create_view_id

quick_create 属性が設定されていて、ユーザーがデフォルトダイアログの代わりにイベントを作成したときに表示されます。

create_name_field

レコードのテキスト表現を保持するレコードフィールドの名前これは「クイック作成」メカニズムを介してレコードを作成するときに使用されます

all_day

レコード上のブール値フィールドの名前は、対応するイベントが日長でフラグが立てられているかどうかを示します (期間は関係ありません)

mode

カレンダーの読み込み時のデフォルト表示モード: day, week, month, year

scale

カンマ区切りで提供されるスケールのリスト。デフォルトではすべてのスケールが利用可能です。可能なスケール値についてはモードを参照してください。

create, delete

対応する属性を false に設定することで、ビュー内の対応するアクションを無効にできます。

<field>

フィールドを集計またはカンバン *ロジック*で使用するように宣言します。単にカレンダーカードにフィールドが表示されている場合。

フィールドに追加の属性を持つことができます:

invisible

カード内の値を非表示にするには「True」を使用します

avatar_field

x2multiフィールドのみ、カード内のdisplay_nameの代わりにアバターを表示する

write_modelwrite_fieldfilter_field

フィルタを追加して、定義したモデルに結果を保存できます。フィルタはサイドバーに追加されます。 filter_field はオプションで、フィルタのステータスを保持するフィールドを指定できます。

filterscolor

サイドバーにフィルタにこのフィールドを追加するには、"True" を使用します。チェックボックスの色付けに使用する color フィールドを指定できます。

モデル コモンズ

活動

format@@0ビューは、レコードにリンクされたアクティビティを表示するために使用されます。 データは、行を構成するレコードと、列をタイプするアクティビティのあるグラフに表示されます。 各行の最初のセルには、対応するレコードを表す かんばん と非常によく似た (カスタマイズ可能、 templates を参照) カードが表示されます。 他のセルをクリックすると、レコードの同じタイプのすべてのアクティビティの詳細な説明が表示されます。

警告

アクティビティビューは、mail モジュールがインストールされている場合と、mail.activity.mixin から継承されているモデルの場合にのみ使用できます。

アクティビティビューのルート要素は `<activity>``で、以下の属性を受け付けます。

string (必須)

ビューを説明するタイトル

view要素の可能な子要素は以下のとおりです:

field

活動*ロジック*で使用するフィールドを宣言します。このフィールドが単にアクティビティビューに表示される場合、事前に宣言する必要はありません。

利用可能な属性は次のとおりです。

name (必須)

取得するフィールドの名前

templates

は、 :ref:の reference/qweb テンプレートを定義します。 カードの定義は、明確にするために複数のテンプレートに分割することができます。 しかし、アクティビティビューは少なくとも 1 つのルートテンプレート activity-box を定義する必要があります。これは各レコードに 1 回レンダリングされます。

アクティビティビューでは、ほとんど標準の javascript qweb を使用し、以下のコンテキスト変数を提供します (詳細は かんばん を参照してください)。

widget

現在の:js:class:ActivityRecord`はメタ情報の取得に使用できます。 これらのメソッドはテンプレートコンテキストでも直接使用できます。``widget` でアクセスする必要はありません。

record

要求されたすべてのフィールドを属性とするオブジェクト。各フィールドには valueraw_value という 2 つの属性

コーホート

Enterprise feature

コホートビューは、一定期間にわたってデータが変化する方法を表示および理解するために使用されます。 例えば、特定のビジネスの場合、クライアントはいくつかのサービスを購読することができます。 コホートビューでは、毎月サブスクリプションの合計数を表示し、クライアントがサービスを離れる割合を調べることができます。 セルをクリックした時 コホートビューでは、セルの時間間隔に含まれるレコードのみが表示される新しいアクションにリダイレクトされます; このアクションにはリストビューとフォームビューが含まれています。

注釈

デフォルトでは、コホートビューはアクションで定義されたものと同じリストとフォームビューを使用します。 リストビューとフォームビューをアクションのコンテキストに渡すことで、使用されるビューを設定/オーバーライドすることができます (form_view_idlist_view_id を使用するコンテキストキー)

例えば、ここに非常に単純なコホートビューがあります。

<cohort string="Subscription" date_start="date_start" date_stop="date" interval="month"/>

コホートビューのルート要素は <cohort>で、以下の属性を受け付けます。

string (必須)

ビューを説明するタイトル

date_start (必須)

有効な日付または日付フィールド。このフィールドは、レコードの開始日としてビューによって理解されます。

date_stop (mandatory)

有効な日付または日付の項目。この項目は、レコードの終了日としてビューで理解されます。 これが教会を決定する分野です。

disable_linking (任意)

コホートセルのクリックをリストビューにリダイレクトしないようにするには、1 に設定します。

mode (任意)

モードを記述する文字列。'churn'または'retention'(デフォルト)のいずれかでなければなりません。 チャレンモードは0%で始まり、時間の経過とともに蓄積されますが、保持は100%で始まり、時間の経過とともに減少します。

timeline (任意)

タイムラインを記述するための文字列。'backward' か 'forward' (デフォルト) のいずれかでなければなりません。 タイムラインを転送すると、date_start から date_stop までのデータが表示されます。 逆のタイムラインでは、date_stop から date_start までのデータが表示されます(date_start が date_stop より大きい場合)。

interval (任意)

時間間隔を記述する文字列。「日」、「週」、「月」(デフォルト)または「年」でなければなりません。

measure (任意)

集計可能なフィールド。このフィールドは、各セルの値を計算するために使用されます。 設定されていない場合、コホートビューは発生回数をカウントします。

<field> (任意)

を使用すると、特定のフィールドを指定して、利用可能な基準から管理できます。 選択可能な基準からフィールドを隠すための主な用途です

name (必須)

をクリックします。

string (任意)

コホートビューでフィールドを表示するために使用される名前は、フィールドのデフォルトの python String 属性を上書きします。

invisible (任意)

真実なら このフィールドは、アクティブな小節にも選択可能な小節にも表示されません (意味を持たないフィールドには便利です) 異なる部隊の畑と同じだ を選択します。 値がドメインの場合、ドメインは現在の行のレコードのコンテキストで評価されます。 True の場合、セルに対応する属性が設定されます。

widget (任意)

フィールドの表示には別の表示があります

odoo.addons.base.models.ir_ui_view.sample

現在のモデルに何も見つからない場合、ビューにサンプルレコードのセットを追加するかどうか。

これらの偽のレコードは、特定のフィールド名/モデルのヒューリスティックを持っています。例えば、モデル reesのフィールド `display_name 。 sers`にはサンプルの人名が入力され、`email`フィールドには`firstname.lastname@sample.demo`という形式が入力されます。

ユーザーはこれらのデータとやり取りすることができません アクションが実行されるとすぐに破棄されます (レコードの作成、列の追加など)。

要件

省略可能

タイプ

bool

デフォルト

False

グリッド

Enterprise feature

制約

この見解は進行中の作業であり、拡大または変更する必要があるかもしれません。

  • date 列フィールドのみがテストされています selectionmany2one は公称で実装されサポートされていますが、テストされていません。datetime は実装されていません。

  • 列セルはほとんど設定できません。数値でなければなりません

  • セルの調整はデフォルトで無効になっており、有効にするように設定する必要があります

  • create editdelete ACL メタデータは、fields_view_get 後処理に制限があるため、ビュールート上で自動的に設定されません(これらの属性を取得するビュータイプの固定明示的なリストがあります)

スキーマ

グリッドビューには独自のスキーマとこのモジュール内の追加の検証があります。ビューアーキテクチャは次のとおりです:

<grid> (1)

ルート要素

  • 必須の string 属性

  • オプションの create, editdelete 属性

  • オプションの adjustmentadjust_name 属性

    adjustmentobject または action のいずれかで、セルの調整をメソッド呼び出しまたはアクション実行で実行するかを指定できます。 adjust_name はメソッド名とアクション id をそれぞれ提供します。

    どちらの場合も調整パラメータは grid_adjust コンテキストメンバーとして object の場合に提供されます。 パラメータは位置関数のパラメータとしても提供されます(空のIDリストの横にあります):

    row_domain

    調整されたセルの行全体に一致するドメイン

    column_field

    調整されたセルの列名

    column_value

    調整されたセルの列の値

    cell_field

    調整されたセルの測定範囲は

    change

    古いセルと調整されたセルの値の違いは正または負の場合もあります

  • オプションの hide_line_totalhide_column_total 属性

    hide_line_total

    合計行を非表示にする場合は true に設定します(既定値は false)

    hide_column_total

    合計列を非表示にする場合は true に設定します (既定値は false)

  • オプションの barchart_total 属性

    barchart_total

    グリッドの下部に棒グラフを表示するには、列の合計に基づいて true を設定します (既定値は false)。

  • オプションの create_inlinedisplay_empty 属性

    create_inline

    Add a line ボタンを使用してグリッドの下部に追加の行を表示するには、true を設定します (デフォルトは false)。 このオプションが true に設定されている場合、コントロールパネルの Add a line ボタンは非表示になります。 利用可能なデータがない場合と display_empty が設定されていない場合 (ヘルプコンテンツが表示されている場合) コントロールパネルの Add a line ボタンが表示され、ユーザーが最初のレコードを作成できるようになります。

    display_empty

    データがない場合はグリッドを表示し続けるために true を設定します (デフォルトは false)。 これは、ユーザーが現在の期間を追跡できるようにする場合に便利です (日付は列ヘッダーに表示されます)。 リマインダーとして、データが存在せず、この属性が設定されていない場合は、グリッドの代わりにヘルプコンテンツが表示されます。

<button> (0+)

ビューヘッダーに表示される通常の Odoo アクションボタン

  • 必須の string 属性 (ボタンラベル)

  • 必須の type 属性、 object または action のいずれか

    注釈

    ワークフローボタンはサポートされていません

  • 必須の name 属性、呼び出すメソッドの名前、または実行するアクションの ID のいずれか

  • オプションの context

サーバーコールバックは、ビューに表示されるすべてのレコードIDで提供されます。 メソッド(object ボタン)またはコンテキストの active_ids (action ボタン) に渡された ID のいずれか

<field type="row"> (1+)

行のグループ化フィールドは、検索ビューの groupby フィルタがあれば置き換えられます。

ビューの row フィールドの順序は、グループ化の深さを提供します。最初のフィールドが school で、2 番目のフィールドが age の場合、レコードは school で最初にグループ化され、各学校で age によってグループ化されます。

<field type="col"> (1)

列のグループ化フィールド

列フィールドには、カスタマイズ可能な列範囲を指定する 0+ <range> 要素を含めることができます。range 要素には次の必須属性があります。

name

は、grid_range コンテキスト値を通じてデフォルトの範囲(デフォルトでは最初の範囲)を上書きするために使用できます。

string

範囲ボタンのラベル (ユーザーが表示)

span

ビューに一度に表示するすべての列のスパンのシンボリック名は、ページネーションを引き起こす可能性があります。

date フィールドの場合、有効なスパンは weekmonth です。

step

1つの列と前/次の間のステップのシンボリック名

date フィールドの場合、有効なスパンのみが day になります。

<field type="measure"> (1)

セルフィールドは、自動的に蓄積されます (read_group)。

measureフィールドは、表示をカスタマイズするために``widget`` 属性を取ることができます。

サーバーとの相互作用

オプションボタンは別として、グリッドビューは現在2つのメソッドを呼び出します。

  • read_grid (モジュールによってすべてのモデルで提供されます) は、グリッドの内容のほぼ全てを dict として返します。

    • 行のタイトルは次のキーを持つ辞書のリストです:

      values (required)

      この値は row フィールドあたりのキーで辞書にマップされます。値は [value, label] の形式の 常時 です。

      domain (必須)

      この行のソースにある任意のレコードのドメインは、それが必要な場合に備えて

    • 列タイトルは少なくとも1つのキーを持つ辞書のリストです:

      values (required)

      行のタイトル値を見る

      domain (必須)

      列のドメイン値を参照

      current (任意)

      ブーリアン、マーク/列を強調表示する

    • 次のキーを使用して、セルのリスト(セルの)リストとしてのグリッドデータを表示します。

      value

      セルに関連付けられている数値

      domain

      セルの記録と一致するドメイン(不透明と仮定される必要があります)

      size

      セルにグループ化されたレコード数

      readonly (任意)

      この特定のセルがクライアント編集可能ではないことを示すboolean

      classes (任意)

      (文字列として) セルのコンテナに追加するクラスのリスト (セルのTDとセルの潜在的編集可能な要素の間)。

      このリストとベースクラス(``o_grid_cell_``の接頭辞)の間で競合が発生した場合、このリストのクラスは無視されます。

      グリッドデータは dense であることに注意してください。 データベースに問い合わせると、セルに一致するグループが生成されません。必要なキーのデフォルト値を持つ「空の」セルが生成されます。

    • prevnext は、ページネーションなしで falsy になるか、前または次のページの read_grid にビューの独自のコンテキストにマージするコンテキストアイテムです。 不透明とみなされるべきです

  • read_grid_domain(field, range) (モジュールが提供) は、グリッドの現在設定されている "span" に一致するドメインを返します。 これは read_grid によって内部的に行われますが、search_countread_group などの別々の用途に個別に呼び出すのに有用でも必要でもあります。

  • adjust_grid は現在、ブランケット実装がなく、そのセマンティクスは時間とユースケースによって進化する可能性があります。

サーバーフック

read_grid はメソッド全体をオーバーライドすることなく、内部から操作をカスタマイズできるフックを呼び出します。

_grid_format_cell(group, cell_field)

は、read_group (group-by-group) の出力を、上記の形式でセルに変換します(グリッドデータの一部として)

_grid_make_empty_cell(row_domain, column_domain, view_domain)

はセルの空のバージョンを生成します (対応するグループがない場合)

_grid_column_info(name, range)

列タイプに基づいて ColumnMetadata オブジェクトを生成します 値を格納する (read_grid の一部として) 直接返されるか、使用されたクエリと read_groupread_grid に再フォーマットします。

grouping

列の実際のグループ化フィールド/クエリ

domain

カラムフィールドがページ化されている場合、read_group に適用されるドメインは空のリストにすることができます

prevnext

現在のページの前後に read_grid に送信されるコンテキストセグメント。False の場合、その方向でページネーションを無効にします。

values

「現在のページ」に表示する列の値は、それぞれの値が次のキーを持つ辞書です。

values

辞書マッピングフィールド名をカラム全体の値に変更します。通常は name -> 値

domain

この特定の列に一致するドメイン

is_current

現在の列をグリッドで具体的に概説する場合は True 、それ以外の場合は False

format

列/タイプの値を read_group フォーマットから read_grid フォーマットへフォーマットする方法 (列情報の values に一致する)

ACL

  • ビューが編集できない場合、個々のセルは編集できません。

  • ビューが作成できない場合、Add a Line ボタンは表示されません(現在は空のレコードが作成されています)

コンテキストキー

grid_range

ビューに複数の範囲がある場合、デフォルトで使用する範囲を選択します。

grid_anchor

適用可能な場合、デフォルトとして定義されている read_grid の代わりに、列範囲のデフォルトのアンカーとして使用されます。

日付フィールドの場合、最初のスパンが計算される参照日付です。デフォルトの日付アンカーは「今日」です(ユーザーのタイムゾーンで)

ガント

Enterprise feature

ガントビューは適切にガントチャートを表示します(スケジューリング用)。

The root element of gantt views is <gantt/>, it has no children but can take the following attributes:

文字列

文字列 (デフォルト: '')

このビューのタイトルは、名前がなくターゲットが「新規」(ダイアログを開く)のアクションを開いた場合にのみ表示されます。

追加(create)

bool (デフォルト: True)

ビューでレコードの作成を無効/有効にします。

編集

bool (デフォルト: True)

ビューでレコードエディションを無効/有効にします。

削除(delete)

bool (デフォルト: True)

**アクション**のドロップダウンからビューのレコード削除を無効/有効にします。

date_start (必須)

各レコードのイベントの開始日時を提供するフィールドの名前。

date_stop (必須)

各レコードのイベントの終了時間を指定するフィールドの名前。

dependency_field

2つのレコード間の依存関係を提供する many2many フィールドの名前。 B が A に依存している場合、dependency_field は B から A を取得できるフィールドです。 このフィールドと dependency_inverted_field フィールドは、ピルの間に依存関係の矢印を描画し、それらをリスケジュールするために使用されます。

dependency_inverted_field (dependency_field が指定されている場合は必須)

dependency_field よりも反転依存関係を提供する many2many フィールドの名前。 B が A に依存している場合、dependency_inverted_field は A から B を取得できるフィールドです。

color

錠剤の値に合わせて色を付けるフィールドの名前

decoration-{$name}

python expression that evaluates to a bool

をオンにすると、対応するレコードの属性に基づいてセルのテキストのスタイルを変更できます。

{$name} は、ブートストラップコンテキストの色 (danger, info, secondary, success または warning) のいずれかになります。

対応するレコードの属性に基づいて、行のテキストスタイルでレコードの条件付き表示を定義します。

値は Python の式です。 各レコードに対して、式はレコードの属性をコンテキスト値として評価され、true の場合、対応するスタイルが行に適用されます。 コンテキストで利用可能なその他の値を次に示します。

  • uid: 現在のユーザの id

  • today: YYYY-MM-DD 形式の文字列として現在のローカル日付

  • now: today と同じで、現在の時刻を追加します。この値は YYYY-MM-DD hh:mm:ss でフォーマットされます。

<gantt decoration-info="state == 'draft'"
      decoration-danger="state == 'help_needed'"
      decoration-bf="state == 'busy'">
  ...
</gantt>
default_group_by

タスクをグループ化するフィールド名

disable_drag_drop

true に設定すると、ガントビューはドラッグ&ドロップでサポートされません。

連結

レコードセル内の統合値を表示するフィールド名

integration_max

"group-by" フィールドをキーとし、セルを赤色で表示する前に到達できる最大集約値を持つ辞書です(e. {"user_id": 100})

integration_exclude

true に設定されている場合、タスクを統合から除外する必要があるかどうかを示すフィールドの名前

create, cell_create, edit, delete, plan

対応する属性を false に設定することで、ビュー内で対応するアクションを*dis*することができます (デフォルト: true)。

  • create: 有効にすると、コントロールパネルで Add ボタンを使用してレコードを作成します。

  • cell_create: 有効化されていて、create が有効化されている場合。 タイムスロットセルにカーソルを合わせると、"+"ボタンが表示され、そのスロットに新しいレコードを作成します。

  • edit: 有効にすると、開かれたレコードは編集モードになります (このため編集可能)。

  • plan: 有効化され、edit が有効化されている場合、タイムスロットに「虫眼鏡」ボタンが表示され、割り当てられていないレコードをそのタイムスロットに計画します。

Example

ガントビューでレコードを作成したくない場合は、モデルで開始日と終了日が必要です。 記録が見つからないため計画機能を無効にする必要があります

offset

スケールに応じて、今日に追加する単位の数をデフォルトの期間を計算します。 例: default_scale 週で +1 のオフセットを指定すると、来週のガントビューが開きます。 そして、default_scale 月で -2 のオフセットが2ヶ月前にガントビューを開きます。

progress

レコードイベントの完了パーセンテージを提供するフィールドの名前 (0から100の間)

string

ガントビューのタイトル

precision

各スケールでピルのスナップ精度を指定する JSON オブジェクト。

スケール day の可能な値は (デフォルト: hour) です:

  • hour: 記録時間をフルタイムにスナップ (例: 7:12 は 8:00 になります)

  • hour:half: 記録時間を半分にスナップする (例: 7:12 は 7:30)

  • hour:4分の1: 記録時間を半分にスナップする (例: 7:12 は 7:15)

スケール week の可能な値は (デフォルト: day:half):

  • day: 記録時刻を丸1日にスナップ (例: 7:28 AM は 前日の午後11:59:59 になります) 10:32-12:00となる。

  • day:half: 記録時間を30分にスナップする (例: 7:28 AM は 12:00 PM)

スケール month の可能な値は (デフォルト: day:half):

  • day: 記録時刻を丸1日にスナップ (例: 7:28 AM は 前日の午後11:59:59 になります) 10:32-12:00となる。

  • day:half: 記録時間を30分にスナップする (例: 7:28 AM は 12:00 PM)

Scale year always snap to full day.

精度属性の例: {"day": "hour:quarter", "week": "day:half", "month": "day"}

total_row

レコードの総数を含む行を表示するかどうかを制御するブール値 (デフォルト: false)

collapse_first_level

1つのフィールドでグループ化されている場合、各行を折りたたむことが可能かどうかを制御するためのブール値。 (デフォルト: false は、2つのフィールドでグループ化すると折りたたみが始まります)

display_unavailability

ガントビュー内で利用可能なモデルの gant_unavailability 関数によって返された日付をマークするブール値。 レコードはまだスケジュールされていますが、利用できない状態が視覚的に表示されます。(デフォルト: false )

default_scale

ビューをレンダリングするときのデフォルトのスケールです。使用可能な値は (デフォルト: month):

  • day

  • week

  • month

  • year

scale

このビューで使用可能なスケールのカンマ区切りのリストです。デフォルトではすべてのスケールが許可されています。このリストで使用可能なスケールの値については、default_scale を参照してください。

templates

QWeb テンプレート テンプレート gantt-popover を定義します。gantt-popover`` は、ユーザーがガントビューのレコードのいずれかにカーソルを合わせるときに使用されます。

ガントビューでは、ほとんど標準の javascript qweb を使用し、次のコンテキスト変数を提供します。

widget

現在の:js:class:GanttRow`はメタ情報を取得するために使用できます。 色の整数で変換する ``getColor` メソッドは、widget を使用せずにテンプレートコンテキストで直接使用することもできます。

on_create

ビューで追加ボタンをクリックしたときに指定された場合、ジェネリックダイアログを開く代わりにクライアントアクションを起動します。 これはアクションの xmlid を保持する必要があります (例: on_create="%(my_module.my_wizard)d"

form_view_id

ユーザがレコードを作成または編集したときに表示されます。 この属性が設定されていない場合に注意してください。 ガントビューは、現在のアクションのフォームビューのIDに戻ります。

dynamic_range

true に設定すると、ガントビューは年/月/日ではなく最初のレコードから開始されます。

pill_label

true に設定した場合、ピルラベルにスケールが週または月に設定されている時間が表示されます。 (例:7:00 AM - 11:00 AM (4h) - DST Task 1

thumbnails

これにより、グループがリレーションフィールドの場合、グループ名の横にサムネイルを表示できます。 これは、アクティブなモデルのフィールド名であるキーを指定する python dict を期待します。 値は、関連するモデルのサムネイルを保持するフィールドの名前です。

例: tasks には、res.usersを参照するフィールド user_id があります。res.users モデルには、アバターを保持するフィールド イメージがあります。

<gantt
   date_start="date_start"
   date_stop="date_stop"
   thumbnails="{'user_id': 'image_128'}"
 >
 </gantt>

はuser_idでグループ化されたときにユーザのアバターを名前の横に表示します。

odoo.addons.base.models.ir_ui_view.sample

現在のモデルに何も見つからない場合、ビューにサンプルレコードのセットを追加するかどうか。

これらの偽のレコードは、特定のフィールド名/モデルのヒューリスティックを持っています。例えば、モデル reesのフィールド `display_name 。 sers`にはサンプルの人名が入力され、`email`フィールドには`firstname.lastname@sample.demo`という形式が入力されます。

ユーザーはこれらのデータとやり取りすることができません アクションが実行されるとすぐに破棄されます (レコードの作成、列の追加など)。

要件

省略可能

タイプ

bool

デフォルト

False

マップ

Enterprise feature

このビューは、地図とそれらの間のルートにレコードを表示することができます。レコードはピンで表されます。 また、レコードのピンに関連付けられたポップアップ内のモデルからフィールドを視覚化することもできます。

注釈

ビューが適用されるモデルには、 res.partner many2oneが含まれている必要があります。 artnerのアドレスとレコードをローカライズするためのフィールドの座標。

API

ビューは、タイルを取得するために位置データプラットフォームの API を使用します (マップの背景)。 ジオフォワーディング(アドレスを座標のセットに変換)を行い、ルートを取得します。 ビューは、OpenStreetMapとMapBoxの2つのAPIを実装しています。OpenStreetMapはデフォルトで使用され、tiles`_をフェッチして`geoforwarding を行うことができます。 この API はトークンを必要としません。 一般設定で有効な MapBox トークンが提供されると、ビューは MapBox API に切り替わります。 この API はより高速で、ルートの計算を可能にします。トークンは MapBox に signing up することで取得できます。

構造部品

ビューのルート要素は <map> です。次の属性を持つことができます。

res_partner

res.partner many21. が含まれています。空のマップを作成するためにビューリゾートが提供されていない場合。

default_order

フィールドが指定されている場合、ビューはモデルのデフォルトの順序を上書きします。 フィールドは、res.partner からではなく、ビューが適用されるモデルの一部である必要があります。

routing

もし 1 がレコード間のルートを表示する場合。ビューには有効な MapBox トークンと 2 つ以上の場所にあるレコード (i) が必要です。 記録には「res.partner」の多数があり、パートナーは住所または有効な座標を持っています。

hide_name

1 はピンのポップアップ (デフォルト: 0) から名前を非表示にします。

hide_address

1 は、ピンのポップアップ (デフォルト: 0) からアドレスを非表示にします。

hide_title

1 の場合、ピンリストからタイトルを非表示にします (デフォルト: 0)。

panel_title

ピンリストのタイトルとして表示する文字列。 指定されていない場合、ビューがアクションに含まれていない場合、タイトルはアクションの名前または「アイテム」になります。

limit

取得するレコードの最大数 (デフォルト: 80). 正の整数でなければなりません.

The <map> element can contain multiple <field> elements. Each <field> element is interpreted as a line in the pin's popup. The field's attributes are the following:

name

表示するフィールド

string

フィールドのコンテンツの前に表示する文字列。説明として使用できます。

例えば、次のようなマップがあります。
<map res_partner="partner_id" default_order="date_begin" routing="1" hide_name="1">
    <field name="partner_id" string="Customer Name"/>
</map>