アーキテクチャを表示¶
一般的なアーキテクチャ¶
ビューのアーキテクチャは、JavaScript フレームワークによって解釈された XML データによって定義されます。
ほとんどのビューでは、属性と可能なアーキテクチャを定義する *.rng
ファイルがあります。 一部のビューは、HTMLコンテンツを受け入れるため、またはパフォーマンス上の理由から、そのようなファイルによって支配されていません。
注釈
現在のコンテキストとユーザーアクセス権は、ビューアビリティに影響を与える可能性があります。
関連項目
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
ビュータイトル。名前のないアクションを開き、ターゲットが「新規」(ダイアログを開く)の場合にのみ表示されます。
- 要件
省略可能
- タイプ
- デフォルト
''
- create
ビューでレコードの作成を無効/有効にします。
- 要件
省略可能
- タイプ
- デフォルト
True
- edit
ビューでレコードエディションを無効/有効にします。
- 要件
省略可能
- タイプ
- デフォルト
True
- delete
Action ドロップダウンからビューのレコード削除を無効/有効にします。
- 要件
省略可能
- タイプ
- デフォルト
True
- js_class
フォームビューの代わりに、Webクライアントがインスタンス化される JavaScript コンポーネントの名前。
- 要件
省略可能
- タイプ
- デフォルト
''
- disable_autofocus
ビューの最初のフィールドに自動フォーカスを無効にします。
- 要件
省略可能
- タイプ
- デフォルト
False
セマンティックコンポーネント¶
意味成分は、Odoo システムに結合し、それとの相互作用を可能にします。
フォームビューは以下の子要素を受け付けます: field, label, button, reference/view_architures/form/chatter , および 添付ファイルのプレビューウィジェット 。
プレースホルダはすべてのキャップで表示されます。
field
: フィールドの値を表示¶
field
要素は、現在のレコードの単一のフィールドをレンダリングします(そして、おそらく編集することができます)。
フォームビューで同じフィールドを複数回使用することがサポートされており、フィールドは invisible
と readonly
属性の異なる値を受け取ることができます。 これらのフィールドは同じ値を持つことができますが、異なる表示をすることができます。 しかし、`required`属性に異なる値を持つ複数のフィールドが存在する場合、この動作は保証されません。
<form>
<field name="FIELD_NAME"/>
</form>
field
要素は以下の属性を持つことができます。
- name
レンダリングするフィールドの名前。
- 要件
Mandatory
- タイプ
- widget
フィールドを表すために使用されるウィジェット。選択したウィジェットは、フィールドのレンダリング方法や編集方法を変更できます。 これは、`fields`レジストリに登録されているJavascript実装(Owlコンポーネント)を指します。
- 要件
省略可能
- タイプ
- id
ノード id は、ビュー内に同じフィールドが複数発生している場合に役立ちます。( label: フィールドラベルの表示 を参照してください)。
- 要件
省略可能
- タイプ
- デフォルト
フィールド名
- string
フィールドのラベル。
- 要件
省略可能
- タイプ
- デフォルト
モデルのフィールドの
string
属性
- help
フィールドまたはラベルにカーソルを合わせたときにツールチップが表示されます。
- 要件
省略可能
- タイプ
- デフォルト
''
- options
このフィールドのウィジェット(デフォルトのウィジェットを含む)の設定オプションは、dict に評価される Python 式として使用されます。
リレーションフィールドには、次のオプションが用意されています。
no_create
、no_quick_create
、no_open
、no_create_edit
。Example
<field name="tag_ids" widget="many2many_tags" options="{'color_field': 'FIELD_NAME', 'no_quick_create': True}"/>
- 要件
省略可能
- タイプ
- デフォルト
{}
- readonly
フィールドをユーザ(
False
)によって変更できるか、読み取り専用(True
)か、値を真偽値と評価するPython式として変更できます。Example
<field name="fname_a" readonly="True"/> <field name="fname_b" readonly="name_a in [fname_b, parent.fname_d]"/>
- 要件
省略可能
- タイプ
- デフォルト
False
- required
フィールドを空のままにしておくか(
False
)、真偽値を評価するPython式として設定する必要があります。Example
<field name="fname_a" required="True"/> <field name="fname_b" required="fname_c != 3"/>
- 要件
省略可能
- タイプ
- デフォルト
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>
- 要件
省略可能
- タイプ
- デフォルト
False
- groups
要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の
!
演算子で始めることができます。Example
<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
- 要件
省略可能
- タイプ
- デフォルト
''
- domain
選択のために既存のレコードを表示するときに適用するフィルタは、 :ref:`ドメイン <reference/orm/domains> ` と評価される Python 式として適用されます。
Example
<field name="fname" domain="[('fname_a', '=', parent.fname_b)]"/>
- 要件
省略可能
- タイプ
- デフォルト
[]
- スコープ
リレーショナルフィールド
- 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, }"/>
- 要件
省略可能
- タイプ
- デフォルト
{}
- スコープ
リレーショナルフィールド
- nolabel
フィールドラベルを非表示にするかどうか。
- 要件
省略可能
- タイプ
- デフォルト
False
- スコープ
group
要素の直接の子フィールドです。
- placeholder
empty フィールドに表示されるヘルプメッセージ。複雑なフォームのフィールドラベルを置き換えることができます。 ただし、ユーザーはプレースホルダテキストを入力フィールドと混同する可能性があるため、データの例ではありません。
- 要件
省略可能
- タイプ
- デフォルト
''
- mode
フィールドのリンクされたレコードに使用する、カンマ区切りの表示モード (ビュータイプ) のリスト。許可されるモード:
list
、form
、kanban
、およびgraph
。- 要件
省略可能
- タイプ
- デフォルト
一覧表示
- スコープ
One2many
とMany2many
フィールド
- 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>
- 要件
省略可能
- タイプ
- デフォルト
''
- filename
ファイル名を指定する関連フィールドの名前。
- 要件
省略可能
- タイプ
- デフォルト
''
- スコープ
Binary
フィールド
- password
フィールドにパスワードが格納されているかどうか、したがって、そのデータを表示することはできません。
- 要件
省略可能
- タイプ
- デフォルト
False
- スコープ
Char
フィールド
- kanban_view_ref
モバイル環境でレコードを選択するときに使用される特定のカンバン :doc:の XMLID
View record <view_records>
。- 要件
省略可能
- タイプ
- デフォルト
''
- スコープ
リレーショナルフィールド
- default_focus
ビューが開いたときにフィールドがフォーカスされているかどうか。ビューの1つのフィールドにのみ適用できます。
- 要件
省略可能
- タイプ
- デフォルト
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
- タイプ
- string
表示するラベル。
- 要件
省略可能
- タイプ
- デフォルト
モデルのフィールド定義から来るフィールドのラベル
- 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>
- 要件
省略可能
- タイプ
- デフォルト
''
- 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>
- 要件
省略可能
- タイプ
- デフォルト
False
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
グループに表示されるタイトル。
- 要件
省略可能
- タイプ
- デフォルト
''
- col
group
の列数。- 要件
省略可能
- タイプ
- デフォルト
2
- colspan
子要素によって取られた列の数。
- 要件
省略可能
- タイプ
- デフォルト
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>
- 要件
省略可能
- タイプ
- デフォルト
False
可能な構造とレンダリングの表現
<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>
- 要件
省略可能
- タイプ
- デフォルト
False
可能な構造とレンダリングの表現
<form>
<notebook>
<page string="Page1">
...
</page>
<page string="Page2">
...
</page>
</notebook>
</form>
|
newline
: 新しいグループの行を開始¶
newline
要素は group 要素内で使用され、現在の行を早期に終了し、すぐに新しい行に切り替えます。 前もって列を埋める必要はありません
<form>
<group>
...
<newline/>
...
</group>
</form>
可能な構造とレンダリングの表現
<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
- デフォルト
''
可能な構造とレンダリングの表現
<form>
<group>
<FIELD/>
<separator string="Title 1"/>
<FIELD/>
<group>
<FIELD/>
<separator string="Title 2"/>
<FIELD/>
</group>
<group>
<FIELD/>
<FIELD/>
</group>
</group>
</form>
|
ちなみに
separator
要素は、同じ内側の group
要素内の要素を水平方向に揃えながら視覚的に分離するために使用できます。
タイトルコンテナ¶
タイトル 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
- タイプ
- name
アプリケーションの技術的な名前 (モジュールの名前)。
- 要件
Mandatory
- タイプ
- groups
要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の
!
演算子で始めることができます。Example
<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
- 要件
省略可能
- タイプ
- デフォルト
''
- 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>
- 要件
省略可能
- タイプ
- デフォルト
False
block
: 設定のグループを宣言¶
block
要素は設定のグループを宣言するために使用されます。このグループはタイトルと説明を持つことができます。
<form>
<app string="NAME" name="TECHNICAL_NAME">
...
<block title="TITLE">
...
</block>
...
</app>
</form>
block
要素は以下の属性を持つことができます。
- title
設定ブロックのタイトル。値を検索できます。
- 要件
省略可能
- タイプ
- デフォルト
''
- help
設定ブロックの説明。値を検索できます。
- 要件
省略可能
- タイプ
- デフォルト
''
- groups
要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の
!
演算子で始めることができます。Example
<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
- 要件
省略可能
- タイプ
- デフォルト
''
- 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>
- 要件
省略可能
- タイプ
- デフォルト
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" を定義することで、代わりに特別な種類の設定がレンダリングされます。 この設定は、他の設定の範囲を変更するために使用されます。 たとえば、ウェブサイトアプリケーションでは、この設定は、他の設定が適用されるウェブサイトを示すために使用されます。 ヘッダーの設定は、画面の上部にバナーとして表示されます。
- 要件
省略可能
- タイプ
- デフォルト
''
- string
設定のラベルとして使用されるテキスト。
- 要件
省略可能
- タイプ
- デフォルト
最初のフィールドのラベル
- title
ツールチップとして使用されるテキスト。
- 要件
省略可能
- タイプ
- デフォルト
''
- company_dependent
会社固有の設定かどうか。設定されている場合は、設定ラベルの横にアイコンが表示されます。
値は
1'
のみ受け付けます。- 要件
省略可能
- タイプ
- デフォルト
''
- 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"/>
- 要件
省略可能
- タイプ
- デフォルト
''
- 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>
- 要件
省略可能
- タイプ
- デフォルト
False
一覧表示¶
リストビューのルート要素は list
(前の名前は tree
)です。
可能な構造とレンダリングの表現
<list>
...
</list>
|
ルート属性¶
ビューをカスタマイズするために、ルート要素 list
にオプションの属性を追加できます。
- string
ビュータイトル。名前のないアクションを開き、ターゲットが「新規」(ダイアログを開く)の場合にのみ表示されます。
- 要件
省略可能
- タイプ
- デフォルト
''
- create
ビューでレコードの作成を無効/有効にします。
- 要件
省略可能
- タイプ
- デフォルト
True
- edit
ビューでレコードエディションを無効/有効にします。
- 要件
省略可能
- タイプ
- デフォルト
True
- delete
Action ドロップダウンからビューのレコード削除を無効/有効にします。
- 要件
省略可能
- タイプ
- デフォルト
True
- import
ビュー上のデータからレコードのインポートを無効/有効にします。
- 要件
省略可能
- タイプ
- デフォルト
True
- export_xlsx
ビュー上のデータへのレコードエクスポートを無効/有効にします。
- 要件
省略可能
- タイプ
- デフォルト
True
- editable
ビューのレコードを編集できる場所にし、リストの行から新しいレコードを作成できるようにします。2つの異なる値を持つことができます:
- top
リストの先頭から新しいレコードが作成されます。
- bottom
リストの一番下から新しいレコードが作成されます。
インラインの form ビューのアーキテクチャは、リストビューから派生します。 フォームビューのフィールドとボタンで有効なほとんどの属性は、リストビューによって受け入れられます。 リストビューが編集できない場合は意味を持たない場合があります。
重要
edit
属性がFalse
に設定されている場合、この動作は無効になります。- 要件
省略可能
- タイプ
- デフォルト
''
- multi_edit
一度に複数のレコードのフィールドを同じ値に更新できるマルチ編集機能を有効にします。
値は
1'
のみ受け付けます。- 要件
省略可能
- タイプ
- デフォルト
''
- open_form_view
フォームビューでレコードを開くには、各行の最後にボタンを表示します。
ビューが編集不能の場合、効果はありません。
- 要件
省略可能
- タイプ
- デフォルト
False
- default_group_by
アクションまたは現在の :ref:`search <reference/view_architectures/search> ` でグループ化が指定されていない場合、レコードをデフォルトでグループ化するフィールドの名前。
- 要件
省略可能
- タイプ
- デフォルト
''
- default_order
_order
属性を使用してモデルで定義された順序を上書きするフィールド名のカンマ区切りのリスト。フィールドの並べ替え順序を逆にするには、
desc
を空白で区切ってポストフィックスします。Example
<list default_order="sequence,name desc"> ... </list>
- 要件
省略可能
- タイプ
- デフォルト
''
- decoration-<style>
一致するレコードの行に適用されるスタイルは、真偽値を評価する Python 式として適用されます。
<style>
は、bf
(太字)、it
(斜体)、info
、danger
、muted
、primary
、success
のいずれかに置き換える必要があります。Example
<list decoration-danger="field_qty > field_limit"> ... </list>
- 要件
省略可能
- タイプ
- デフォルト
False
- limit
ページの既定のサイズです。正の値でなければなりません。
- 要件
省略可能
- タイプ
- デフォルト
フォームビューのリストビューのリストは`80`、フォームビューのリストは`40`です。
- groups_limit
リストビューがグループ化されているページのデフォルトのグループ数です。厳密に正でなければなりません。
- 要件
省略可能
- タイプ
- デフォルト
フォームビューのリストビューのリストは`80`、フォームビューのリストは`40`です。
- expand
リストビューがグループ化されている場合、デフォルトでグループの最初のレベルを開くかどうか。
警告
グループの数によっては遅くなることがあります。
- 要件
省略可能
- タイプ
- デフォルト
False
- sample
現在のモデルに何も見つからない場合、ビューにサンプルレコードのセットを追加するかどうか。
これらの偽のレコードは、特定のフィールド名/モデルのヒューリスティックを持っています。例えば、モデル
reesのフィールド `display_name
。 sers`にはサンプルの人名が入力され、`email`フィールドには`firstname.lastname@sample.demo`という形式が入力されます。ユーザーはこれらのデータとやり取りすることができません アクションが実行されるとすぐに破棄されます (レコードの作成、列の追加など)。
- 要件
省略可能
- タイプ
- デフォルト
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
- タイプ
- widget
フィールドを表すために使用されるウィジェット。選択したウィジェットは、フィールドのレンダリング方法や編集方法を変更できます。 これは、`fields`レジストリに登録されているJavascript実装(Owlコンポーネント)を指します。
- 要件
省略可能
- タイプ
- string
フィールドのラベル。
- 要件
省略可能
- タイプ
- デフォルト
モデルのフィールドの
string
属性
- optional
フィールドの表示を任意にします。フィールドの列は、ビューのヘッダーのボタンで非表示または表示できます。
2つの異なる値を持つことができます:
- show
この項目はデフォルトで表示されます。
- hide
この項目はデフォルトで非表示になります。
Example
<field name="fname_a" optional="show"/> <field name="fname_b" optional="hide"/>
- 要件
省略可能
- タイプ
- readonly
フィールドをユーザ(
False
)によって変更できるか、読み取り専用(True
)か、値を真偽値と評価するPython式として変更できます。Example
<field name="fname_a" readonly="True"/> <field name="fname_b" readonly="name_a in [fname_b, parent.fname_d]"/>
- 要件
省略可能
- タイプ
- デフォルト
False
- required
フィールドを空のままにしておくか(
False
)、真偽値を評価するPython式として設定する必要があります。Example
<field name="fname_a" required="True"/> <field name="fname_b" required="fname_c != 3"/>
- 要件
省略可能
- タイプ
- デフォルト
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>
- 要件
省略可能
- タイプ
- デフォルト
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')"/>
- 要件
省略可能
- タイプ
- デフォルト
False
- groups
要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の
!
演算子で始めることができます。Example
<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
- 要件
省略可能
- タイプ
- デフォルト
''
- decoration-<style>
一致するレコードのフィールドに適用されるスタイルは、真偽値を評価する Python 式として適用されます。
<style>
は、bf
(太字)、it
(斜体)、info
、danger
、muted
、primary
、success
のいずれかに置き換える必要があります。Example
<field name="name" decoration-bf="1"/> <field name="quantity" decoration-info="state == 'draft'"/>
- 要件
省略可能
- タイプ
- デフォルト
False
- sum, avg
列の下部に表示する集計。集計は、現在表示されているレコードのみで計算されます。 集計演算は、対応するフィールドの
aggregator
と一致する必要があります。Example
<field name="sent" sum="Total" /> <field name="clicks_ratio" avg="Average"/>
- 要件
省略可能
- タイプ
- デフォルト
''
- width
リストビューは、常に列間で利用可能なスペースを最適化しようとします。 フィールドタイプによっては、フィールドタイプに応じて幅を強制することによって行われます。 例えば、日付を表示するのに必要なピクセル数を正確に知っています。 日付フィールドの列に必要なものよりも大きなスペースがないようにするために 他の列に余分なスペースを残します ただし、フレームワークはすべてのフィールドタイプに適切な幅を推測できません。 たとえば、文字フィールドを使用して大きな値や3文字の国コードをエンコードすることができます。 後者の場合、幅を直接アーチで設定することができます (e. をクリックします。
width="40px"
). セル内の値をレンダリングするのに必要な幅 (常にピクセル単位) を表します。 列の幅は、指定された値とセルの左右のパディングの合計になります。- 要件
省略可能
- タイプ
- デフォルト
''
注釈
リストビューがグループ化されると、数値フィールドが集計され、グループごとに表示されます。 また、グループ内のレコードが多すぎる場合は、グループ行の右側にページャーが表示されます。 このため、 リストビューがグループ化できる状況にある場合、最後の列に数値フィールドを持つのは悪い習慣です。 ただし、フォームビューではグループ化できないため、X2multiフィールドに問題はありません。
可能な構造とレンダリングの表現
<list>
<field name="name" string="My Custom Name"/>
<field name="amount" sum="Total"/>
<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
- タイプ
可能な構造とレンダリングの表現
<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
要素内のフィールドは、値を取得して保存するためにのみ使用されますが、それらは表示されません。
検索¶
検索ビューは、コンテンツを表示するために使用されないという点で、他のビュータイプとは異なります。 これらは特定のモデルに適用されますが、他のビューのコンテンツ(通常は集約ビュー; e. ., 一覧表示 and reference/view_architures/graph).
検索ビューのルート要素は search
です。
属性を取得しません。
可能な構造とレンダリングの表現
<search>
...
</search>
|
構成要素¶
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
- タイプ
- string
フィールドのラベル。
- 要件
省略可能
- タイプ
- デフォルト
モデルのフィールドの
string
属性
- operator
デフォルトでは、フィールドは :samp:`[(name, {operator}, value)]`の形式のドメインを生成します。 `name`はフィールドの名前で、`value`はユーザーによって提供される値で、フィルターや変換された可能性があります(e. 、ユーザーは選択フィールドの値の label を提供する必要があり、値自体ではありません。
operator
属性は、デフォルトの演算子を上書きすることができます。これは、フィールドの型に依存します。 .,=
for float field, butilike
for char fields,child_of
for many2one).- 要件
省略可能
- タイプ
- デフォルト
=
- filter_domain
フィールドの検索ドメインとして使用するドメインは、 :ref:`domain <reference/orm/domains> ` と評価する Python 式として使用します。
self
変数を使用して、カスタムドメインに指定された値を注入できます。operator
属性だけではなく、より柔軟なドメインを生成するために使用できます (一度に複数のフィールドを検索するなど)。operator
とfilter_domain
の両方が与えられた場合、filter_domain
が優先されます。- 要件
省略可能
- タイプ
- デフォルト
[]
- context
検索ビューがターゲットになっているビューのコンテキストにマージするコンテキストは、dict に評価される Python 式としてです。
ユーザーが指定した値を含めることができます。これは
self
変数の下で利用できます。- 要件
省略可能
- タイプ
- デフォルト
{}
- domain
自動補完を可能にするフィールド(例:
Many2one
)の補完結果に適用するフィルタ。- 要件
省略可能
- タイプ
- デフォルト
[]
- groups
要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の
!
演算子で始めることができます。Example
<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
- 要件
省略可能
- タイプ
- デフォルト
''
- 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>
- 要件
省略可能
- タイプ
- デフォルト
False
可能な構造とレンダリングの表現
<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
- タイプ
- string
フィルタのラベル。
- 要件
Mandatory
- タイプ
- help
フィルタにカーソルを合わせるとツールチップが表示されます。
- 要件
省略可能
- タイプ
- デフォルト
''
- domain
検索ドメインの一部としてアクションのドメインに追加するドメイン。
- 要件
省略可能
- タイプ
- デフォルト
[]
- date
フィルタリングする
date
またはdatetime
フィールドの名前。この属性を使用すると、 Filters メニューのサブメニューで利用可能なフィルタのセットが作成されます。 利用可能なフィルタは時間依存ですが、コントロールパネルのインスタンス化時にドメインが評価されるという意味では動的ではありません。
Example
<filter string="Creation Date" name="filter_create_date" date="create_date"/>
デフォルトでは、これらのフィルターには異なるサブフィルターが含まれており、月、四半期、および年に基づいてフィルターすることができます。 さらに、ドメインを使用したフィルタリングを可能にするカスタムサブフィルタを作成できます。これらのカスタムフィルタには、
name
、string
、`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', '>', datetime.datetime.combine(context_today() - relativedelta(days=30), datetime.time(23, 59, 59)).to_utc())]"/> </filter>
この方法で定義されたすべてのカスタムフィルターは互いに排他的で、他のサブフィルターと相互に排他的であることに注意してください。
- 要件
省略可能
- タイプ
- デフォルト
''
- start_month
日付フィルターのドロップダウンに、現在の月に対するオフセットとして表示される最も早い月。
Example
<filter string="Creation Date" name="filter_create_date" date="create_date" start_month="-3"/>
現在の月が2月の場合、ドロップダウンで選択可能な最も早い月は11月になります。
- 要件
省略可能
- タイプ
- デフォルト
-2
- スコープ
空でない
date
属性のフィルター
- end_month
日付フィルターのドロップダウンに、現在の月に対するオフセットとして表示される最新の月。
Example
<filter string="Creation Date" name="filter_create_date" date="create_date" end_month="2"/>
現在の月が2月の場合、ドロップダウンで選択可能な最新の月は3月になります。
- 要件
省略可能
- タイプ
- デフォルト
0
- スコープ
空でない
date
属性のフィルター
- start_year
日付フィルターのドロップダウンに表示される最も早い年を、現在の年に対するオフセットとして表示します。
Example
<filter string="Creation Date" name="filter_create_date" date="create_date" start_year="-3"/>
現在の年が2024の場合、ドロップダウンで選択可能な最も早い年は2021になります。
- 要件
省略可能
- タイプ
- デフォルト
-2
- スコープ
空でない
date
属性のフィルター
- end_year
日付フィルタのドロップダウンに、現在の年に対するオフセットとして表示される最新の年。
Example
<filter string="Creation Date" name="filter_create_date" date="create_date" end_year="2"/>
現在の年が2024の場合、ドロップダウンで選択可能な最新の年は2025になります。
- 要件
省略可能
- タイプ
- デフォルト
0
- スコープ
空でない
date
属性のフィルター
- default_period
時間ベースのフィルター (
date
属性を持つ) のデフォルト期間。有効なフィルター ID のいずれかであるか、カンマ区切りのリストである必要があります。有効なフィルター ID には以下のものがあります:
first_quarter
、second_quarter
、third_quarter
、furth_quarter
。month
、month-x
、month-x
、`month+x`のいずれかです。`x`は`start_month`と`end_month`の間のゼロ以外の整数値です。year
、year-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', '>', datetime.datetime.combine(context_today() - relativedelta(days=30), datetime.time(23, 59, 59)).to_utc())]"/> </filter>
- 要件
省略可能
- タイプ
- デフォルト
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>
- 要件
省略可能
- タイプ
- デフォルト
False
- groups
要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の
!
演算子で始めることができます。Example
<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
- 要件
省略可能
- タイプ
- デフォルト
''
- 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 typedate
ordatetime
, 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 syntaxdate_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
を参照してください。- 要件
省略可能
- タイプ
- デフォルト
{}
注意
フィルターのシーケンス(フィルター以外の要素が区切られていない場合)は、包括的に構成されます。通常の AND
ではなく、OR
で構成されます。
Example
<filter domain="[('state', '=', 'draft')]"/>
<filter domain="[('state', '=', 'done')]"/>
state
フィールドが draft
または done
のレコードが表示されます。
可能な構造とレンダリングの表現
<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
- タイプ
- string
フィールドのラベル。
- 要件
省略可能
- タイプ
- デフォルト
モデルのフィールドの
string
属性
- select
フィールドの動作と表示。2つの異なる値を持つことができます。
- one
最大で1つの値を選択できます。サポートされているフィールドタイプは
many2one
とselection
です。
- multi
いくつかの値を選択できます。サポートされているフィールドタイプは、
many2one
、many2many
、selection
です。
- 要件
省略可能
- タイプ
- デフォルト
one
- groups
要素が表示されるユーザー グループのカンマ区切りリスト。 これらのグループの少なくとも1つに属していないユーザーは、要素を見ることができません。 グループを除外するには、負の
!
演算子で始めることができます。Example
<field name="FIELD_NAME" groups="base.group_no_one,!base.group_multi_company"/>
- 要件
省略可能
- タイプ
- デフォルト
''
- icon
フィールドのアイコン。
- 要件
省略可能
- タイプ
- デフォルト
''
- color
フィールドの色。
- 要件
省略可能
- タイプ
- デフォルト
''
field
要素に select=one
属性が設定されている場合、以下の属性を持つことができます。
- hierarchize
子カテゴリを親カテゴリの下に表示するか、同じ階層レベルで表示するかどうか。
- 要件
省略可能
- タイプ
- デフォルト
True
- スコープ
Many2one
フィールド
field
要素に select=multi
属性が設定されている場合、以下の属性を持つことができます。
- enable_counters
レコードカウンタが計算され、ゼロでない場合に表示されるかどうか。
ちなみに
この属性はパフォーマンスに影響を与えないように存在します。パフォーマンスの問題に対処するもう一つの方法は、
search_panel_select_range
とsearch_panel_select_multi_range
メソッドをオーバーライドすることです。- 要件
省略可能
- タイプ
- デフォルト
False
- expand
カテゴリとレコードがないフィルタを表示するかどうか。
- 要件
省略可能
- タイプ
- デフォルト
False
- limit
フィールドを取得する最大値。 制限に達した場合、検索パネルに値が表示されず、代わりにエラーメッセージが表示されます。 0に設定すると、すべての値がフェッチされます。
- 要件
省略可能
- タイプ
- デフォルト
200
- domain
レコードが満足しなければならない条件。
Example
<searchpanel> <field name="department_id"/> <field name="manager_id" select="multi" domain="[('department_id', '=', department_id)]"/> </searchpanel>
- 要件
省略可能
- タイプ
- デフォルト
[]
- groupby
グループ化する値のフィールド名。
- 要件
省略可能
- タイプ
- デフォルト
''
- スコープ
Many2one
とMany2many
フィールド
デフォルトの検索¶
検索フィールドとフィルタは、アクションの 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.
レコードは、ワークフローの視覚化や操作(タスクや作業進捗管理など)、またはグループ化されていない(単にレコードを可視化するために使用される)ために列にグループ化されます。
かんばんビューのルート要素は かんばん
です。
可能な構造とレンダリングの表現
<kanban>
...
</kanban>
|
注釈
カンバンビューは最大10列を読み込んで表示します。その後のすべての列は閉じられますが、ユーザーが開くことができます。
ルート属性¶
ビューをカスタマイズするために、ルート要素 kanban
にオプションの属性を追加することができます。
- string
ビュータイトル。名前のないアクションを開き、ターゲットが「新規」(ダイアログを開く)の場合にのみ表示されます。
- 要件
省略可能
- タイプ
- デフォルト
''
- create
ビューでレコードの作成を無効/有効にします。
- 要件
省略可能
- タイプ
- デフォルト
True
- edit
ビューでレコードエディションを無効/有効にします。
- 要件
省略可能
- タイプ
- デフォルト
True
- delete
Action ドロップダウンからビューのレコード削除を無効/有効にします。
- 要件
省略可能
- タイプ
- デフォルト
True
- default_group_by
アクションまたは現在の :ref:`search <reference/view_architectures/search> ` でグループ化が指定されていない場合、レコードをデフォルトでグループ化するフィールドの名前。
- 要件
省略可能
- タイプ
- デフォルト
''
- default_order
_order
属性を使用してモデルで定義された順序を上書きするフィールド名のカンマ区切りのリスト。フィールドの並べ替え順序を逆にするには、
desc
を空白で区切ってポストフィックスします。Example
<list default_order="sequence,name desc"> ... </list>
- 要件
省略可能
- タイプ
- デフォルト
''
- class
ビューのルートHTML要素にHTMLクラスを追加します。
- 要件
省略可能
- タイプ
- デフォルト
''
- examples
グループ化されたカンバンビューで新しい列を作成するときに参照できる例の
KanbanExamplesRegistry
のキー。- 要件
省略可能
- タイプ
- デフォルト
''
- group_create
Add a new column バーが表示されているかどうか。
- 要件
省略可能
- タイプ
- デフォルト
True
- group_delete
コグメニューから列を削除できるかどうか。
- 要件
省略可能
- タイプ
- デフォルト
True
- group_edit
コグメニューから列を編集できるかどうか。
- 要件
省略可能
- タイプ
- デフォルト
True
- groups_draggable
列の順序を変更できるかどうか。
- 要件
省略可能
- タイプ
- デフォルト
True
- records_draggable
カンバンビューがグループ化されているときにレコードをドラッグできるかどうか。
- 要件
省略可能
- タイプ
- デフォルト
True
- archivable
「active」フィールドがモデル上で定義されている場合、列に属するレコードをアーカイブまたはアーカイブ解除できるかどうか。
- 要件
省略可能
- タイプ
- デフォルト
True
- quick_create
フォームビューに切り替えずにレコードを作成できるかどうか。
- 要件
省略可能
- タイプ
- デフォルト
カンバンビューがmany21one、selection、char、booleanフィールドでグループ化されている場合の`True`、そうでなければ`False`
- on_create
Create をクリックしたときに呼び出すカスタムアクション
`'quick_create'`に設定すると、代わりにレコードのクイック作成が使用されます。クイック作成が無効になっている場合、標準の作成アクションが呼び出されます。
- 要件
省略可能
- タイプ
- デフォルト
''
- can_open
デフォルトでは、カンバンカードをクリックすると、フォームビューで対応するレコードが開きます。 この動作は、属性
can_open
をFalse
に設定することで無効にできます。- 要件
省略可能
- タイプ
- デフォルト
True
- highlight_color
かんばんカードの左端に色を付けるために使用される整数フィールドの名前。
- 要件
省略可能
- タイプ
- sample
現在のモデルに何も見つからない場合、ビューにサンプルレコードのセットを追加するかどうか。
これらの偽のレコードは、特定のフィールド名/モデルのヒューリスティックを持っています。例えば、モデル
reesのフィールド `display_name
。 sers`にはサンプルの人名が入力され、`email`フィールドには`firstname.lastname@sample.demo`という形式が入力されます。ユーザーはこれらのデータとやり取りすることができません アクションが実行されるとすぐに破棄されます (レコードの作成、列の追加など)。
- 要件
省略可能
- タイプ
- デフォルト
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>
フィールド¶
これらのテンプレートの中で、 field
要素はフィールドをレンダリングすることができます。以下の属性を持つことができます。
- name
レンダリングするフィールドの名前。
- 要件
Mandatory
- タイプ
- widget
フィールドを表すために使用されるウィジェット。選択したウィジェットは、フィールドのレンダリング方法や編集方法を変更できます。 これは、`fields`レジストリに登録されているJavascript実装(Owlコンポーネント)を指します。
- 要件
省略可能
- タイプ
デフォルトでは、フィールドノードはフォーマットされた値を含む span
に置き換えられます。 widget
属性が指定されていない限り、レンダリングと動作は対応するウィジェットによって異なります。 widget
属性は、以下を含む異なる値を持つことができます。
- handle
対応する項目を順序として使用して、ドラッグアンドドロップでレコードを並べ替えることができます。
- kanban_color_picker
色 (整数) フィールドを編集できます。ルート属性
highlight_color
と組み合わせることで、カードの色を編集できます。
さまざまなウィジェットとそのオプションを見つけるには、 :ref:の `Field section <reference/js/widgets>を参照してください。
レンダリングコンテキスト¶
:ref:`QWeb エンジン <reference/qweb/javascript>`でレンダリングされているカンバンテンプレートは レンダリングコンテキスト を持ちます。 テンプレートで利用可能な一連の変数に有用な情報とツールが含まれています。 利用可能な変数を紹介します:
- record
ビューで定義されているすべてのフィールドを持つオブジェクト。各フィールドには、
value
とraw_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
ビューが読み取り専用であることを示します。
- タイプ
- selection_mode
many2oneまたはmany2multiフィールド(モバイル環境)を選択するときにカンバンビューを開くかどうか。
- タイプ
- 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>
カード側に画像のようなコンテンツを表示するには、 aside
と main
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>
progressbar
: 列の上に進捗バーを表示する¶
progressbar
要素は、グループ化されたカンバンビューのカンバン列の上に表示するプログレスバーを定義するために使用されます。
<kanban>
<progressbar field="FIELD_NAME"/>
...
</kanban>
progressbar
要素は以下の属性を持つことができます。
- field
進行状況バーのサブグループに基づいているフィールドの名前。
- 要件
Mandatory
- タイプ
- sum_field
プログレスバーの横に表示される合計で使用するフィールドの名前。 設定されていない場合、レコードの合計数が代わりに表示されます。
- 要件
省略可能
- タイプ
- デフォルト
''
可能な構造とレンダリングの表現
<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 classo_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 yetqweb-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
)に対する基準でデフォルトでソートされます。bar
とpie
チャートにのみ使用されます。string
(任意)リストビューにリダイレクトするときにパンくずリストに表示される文字列。
- sample
現在のモデルに何も見つからない場合、ビューにサンプルレコードのセットを追加するかどうか。
これらの偽のレコードは、特定のフィールド名/モデルのヒューリスティックを持っています。例えば、モデル
reesのフィールド `display_name
。 sers`にはサンプルの人名が入力され、`email`フィールドには`firstname.lastname@sample.demo`という形式が入力されます。ユーザーはこれらのデータとやり取りすることができません アクションが実行されるとすぐに破棄されます (レコードの作成、列の追加など)。
- 要件
省略可能
- タイプ
- デフォルト
False
グラフビューで許可される唯一の要素は field
で、以下の属性を持つことができます。
name
(必須)ビューで使用するフィールド名。グループ化に使用される場合(集計ではなく)
invisible
(任意)trueの場合、フィールドはアクティブな小節にも選択可能な小節にも表示されません。
type
(任意)measure
に設定されている場合、フィールドはグループ条件の代わりにグループ内の集計値として使用されます。 これは、その属性を持つ最後のフィールドに対してのみ動作しますが、文字列属性を持つ他のフィールド(下記参照)には有用です。interval
(任意)日付と日付のフィールドでは、指定された間隔 (
day
,week
,month
) でグループ化されます。 特定の日時(固定2番目の解像度)または日付(固定1日の解像度)にグループ化する代わりに、quaret
またはyear
を使用します。 デフォルトはmonth
です。string
(任意)type="measure"
のフィールドにのみ使用されます。 グラフビューでフィールドを表示するために使用される名前は、フィールドのデフォルトの python String 属性を上書きします。
測定はモデル フィールドから自動的に生成されます。集計可能なフィールドのみが使用されます。 これらの対策はフィールドの文字列にアルファベット順にソートされます。
警告
グラフ表示の集計はデータベースコンテンツに対して行われ、格納されていない機能フィールドはグラフ表示では使用できません
グラフビューでは、field
は widget
属性を持ってフォーマットを指定できます。 ウィジェットは float_time
と monetary
が最も興味深いフィールドフォーマッタでなければなりません。
<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`という形式が入力されます。ユーザーはこれらのデータとやり取りすることができません アクションが実行されるとすぐに破棄されます (レコードの作成、列の追加など)。
- 要件
省略可能
- タイプ
- デフォルト
False
測定はモデル フィールドから自動的に生成されます。集計可能なフィールドのみが使用されます。 これらの対策はフィールドの文字列にアルファベット順にソートされます。
警告
グラフ表示のように、ピボットはデータベース内のデータを集約します。つまり、格納されていない関数フィールドはピボットビューでは使用できません。
ピボットビューでは、field
は widget
属性を持ってフォーマットを指定できます。 ウィジェットは date
、 datetime
、 float_time
、 monetary
のフィールドフォーマッタでなければなりません。
たとえば、タイムシートのピボットビューは以下のように定義できます。
<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_model
とwrite_field
とfilter_field
フィルタを追加して、定義したモデルに結果を保存できます。フィルタはサイドバーに追加されます。
filter_field
はオプションで、フィルタのステータスを保持するフィールドを指定できます。filters
とcolor
サイドバーにフィルタにこのフィールドを追加するには、"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
要求されたすべてのフィールドを属性とするオブジェクト。各フィールドには
value
とraw_value
という 2 つの属性
コーホート¶
Enterprise featureコホートビューは、一定期間にわたってデータが変化する方法を表示および理解するために使用されます。 例えば、特定のビジネスの場合、クライアントはいくつかのサービスを購読することができます。 コホートビューでは、毎月サブスクリプションの合計数を表示し、クライアントがサービスを離れる割合を調べることができます。 セルをクリックした時 コホートビューでは、セルの時間間隔に含まれるレコードのみが表示される新しいアクションにリダイレクトされます; このアクションにはリストビューとフォームビューが含まれています。
注釈
デフォルトでは、コホートビューはアクションで定義されたものと同じリストとフォームビューを使用します。 リストビューとフォームビューをアクションのコンテキストに渡すことで、使用されるビューを設定/オーバーライドすることができます (form_view_id
と list_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`という形式が入力されます。ユーザーはこれらのデータとやり取りすることができません アクションが実行されるとすぐに破棄されます (レコードの作成、列の追加など)。
- 要件
省略可能
- タイプ
- デフォルト
False
グリッド¶
Enterprise feature制約¶
この見解は進行中の作業であり、拡大または変更する必要があるかもしれません。
date
列フィールドのみがテストされていますselection
とmany2one
は公称で実装されサポートされていますが、テストされていません。datetime
は実装されていません。列セルはほとんど設定できません。数値でなければなりません
セルの調整はデフォルトで無効になっており、有効にするように設定する必要があります
create
edit
とdelete
ACL メタデータは、fields_view_get
後処理に制限があるため、ビュールート上で自動的に設定されません(これらの属性を取得するビュータイプの固定明示的なリストがあります)
スキーマ¶
グリッドビューには独自のスキーマとこのモジュール内の追加の検証があります。ビューアーキテクチャは次のとおりです:
<grid>
(1)ルート要素
必須の
string
属性オプションの
create
,edit
とdelete
属性オプションの
adjustment
とadjust_name
属性adjustment
はobject
またはaction
のいずれかで、セルの調整をメソッド呼び出しまたはアクション実行で実行するかを指定できます。adjust_name
はメソッド名とアクション id をそれぞれ提供します。どちらの場合も調整パラメータは
grid_adjust
コンテキストメンバーとしてobject
の場合に提供されます。 パラメータは位置関数のパラメータとしても提供されます(空のIDリストの横にあります):row_domain
調整されたセルの行全体に一致するドメイン
column_field
調整されたセルの列名
column_value
調整されたセルの列の値
cell_field
調整されたセルの測定範囲は
change
古いセルと調整されたセルの値の違いは正または負の場合もあります
オプションの
hide_line_total
とhide_column_total
属性hide_line_total
合計行を非表示にする場合は true に設定します(既定値は false)
hide_column_total
合計列を非表示にする場合は true に設定します (既定値は false)
オプションの
barchart_total
属性barchart_total
グリッドの下部に棒グラフを表示するには、列の合計に基づいて
true
を設定します (既定値は false)。
オプションの
create_inline
とdisplay_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
フィールドの場合、有効なスパンはweek
とmonth
です。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 であることに注意してください。 データベースに問い合わせると、セルに一致するグループが生成されません。必要なキーのデフォルト値を持つ「空の」セルが生成されます。
prev
とnext
は、ページネーションなしで falsy になるか、前または次のページのread_grid
にビューの独自のコンテキストにマージするコンテキストアイテムです。 不透明とみなされるべきです
read_grid_domain(field, range)
(モジュールが提供) は、グリッドの現在設定されている "span" に一致するドメインを返します。 これはread_grid
によって内部的に行われますが、search_count
やread_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_group
をread_grid
に再フォーマットします。grouping
列の実際のグループ化フィールド/クエリ
domain
カラムフィールドがページ化されている場合、
read_group
に適用されるドメインは空のリストにすることができますprev
とnext
現在のページの前後に
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
: 現在のユーザの idtoday
: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`という形式が入力されます。ユーザーはこれらのデータとやり取りすることができません アクションが実行されるとすぐに破棄されます (レコードの作成、列の追加など)。
- 要件
省略可能
- タイプ
- デフォルト
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>