odoo官方文檔第四章 Views


Views

Common Structure(共同結構)

視圖對象公開了許多字段,除非另有說明,否則它們是可選的。

name (mandatory)

在某種列表中查找一個name時,它僅用作視圖的助記符/描述

model

鏈接到視圖的模型(如果適用)(不適用於QWeb視圖)

priority

客戶端程序可以通過id或(modeltype)請求視圖。 對於后者,將搜索正確類型和模型的所有視圖,並返回具有最低priority編號的視圖(它是“默認視圖”)。

priority還定義了視圖繼承期間的應用程序順序

arch

視圖布局的描述

groups_id

Many2many字段允許組查看/使用當前視圖

inherit_id

當前視圖的父視圖,請參閱繼承,默認情況下未設置

mode

繼承模式,請參閱繼承。 如果未設置inherit_id,則mode只能是primary。 如果設置了inherit_id,則默認為extension,但可以顯式設置為primary

application

定義可切換視圖的網站功能。 默認情況下,始終應用視圖

Inheritance

View matching(視圖匹配)

  • 如果(modeltype)請求視圖,則匹配具有正確模型和類型,mode = primary和最低優先級的視圖
  • id請求視圖時,如果其模式不是primary,則匹配具有模式為primary的最近父模式

View resolution(查看解析)

Resolution為請求/匹配的primary視圖生成最終的arch

  1. 如果視圖具有父級,則完全解析父級,然后應用當前視圖的繼承規范
  2. 如果視圖沒有父視圖,則其arch按原樣使用
  3. 查找具有模式extension的當前視圖的子項,並將其繼承規范應用於深度優先(應用子視圖,然后應用子視圖,然后應用其兄弟)

應用子視圖的結果產生最終的arch

Inheritance specs(繼承規范)

繼承規范由元素定位器組成,以匹配父視圖中的繼承元素,以及將用於修改繼承元素的子元素。

有三種類型的元素定位器可用於匹配目標元素:

  • 帶有expr屬性的xpath元素。 expr是應用於當前arch的XPath表達式2,它找到的第一個節點是匹配
  • 具有name屬性的field元素匹配具有相同name的第一個field。 匹配期間將忽略所有其他屬性
  • 任何其他元素:匹配具有相同名稱和相同屬性(忽略postionversion屬性)的第一個元素

繼承規范可能有一個可選的position屬性,指定如何更改匹配的節點:

inside (default)

繼承規范的內容將附加到匹配的節點

replace

繼承規范的內容替換匹配的節點。 在規范內容中僅包含$0的任何文本節點將被匹配節點的完整副本替換,從而有效地包裝匹配的節點。

after

繼承規范的內容在匹配的節點之后添加到匹配節點的父節點

before

繼承規范的內容在匹配節點之前添加到匹配節點的父節點

attributes

繼承規范的內容應該是具有name屬性和可選主體的attribute元素:

  • 如果attribute元素具有主體,則在匹配的節點上創建以其name命名的新屬性,並將attribute元素的文本作為值
  • 如果attribute元素沒有body,則從匹配的節點中刪除以其name命名的屬性。 如果不存在此類屬性,則會引發錯誤

視圖的規格按順序應用。

Lists

列表視圖的根元素是<tree> 3。 列表視圖的根目錄可以具有以下屬性:

editable

默認情況下,選擇列表視圖的行將打開相應的表單視圖。 editable屬性使列表視圖本身可就地編輯。

有效值為topbottom,使新記錄分別出現在列表的頂部或底部。

內聯表單視圖的體系結構是從列表視圖派生的。 因此,列表視圖接受表單視圖的字段和按鈕上有效的大多數屬性,盡管如果列表視圖不可編輯,它們可能沒有任何意義

default_order

覆蓋視圖的排序,替換模型的默認順序。 該值是以逗號分隔的字段列表,后綴為desc以按相反順序排序:

<tree default_order="sequence,name desc">

colors

從版本9.0開始不推薦使用:由decoration - {$ name}

fonts

從版本9.0開始不推薦使用:由decoration - {$ name}

decoration-{$name}

允許根據相應記錄的屬性更改行文本的樣式。

值是Python表達式。 對於每個記錄,使用記錄的屬性作為上下文值來計算表達式,如果為true,則將相應的樣式應用於該行。 其他context值是uid(當前用戶的id)和current_date(當前日期為yyyy-MM-dd形式的字符串)。

{$name}可以是bf``(font-weight:bold)it``(font-style:italic),或任何bootstrap上下文顏色(danger, info, muted, primary, success or warning)。

create, edit, delete

允許通過將相應的屬性設置為false來禁用視圖中的相應操作

limit

頁面的默認大小。 它應該是一個正整數

on_write

僅在editable列表中有意義。 應該是列表模型上方法的名稱。 在創建或編輯該記錄(在數據庫中)之后,將使用記錄的id調用該方法。

該方法應返回要加載或更新的其他記錄的ID列表。

string

視圖的替代可翻譯標簽

自8.0版以來不推薦使用:不再顯示

列表視圖的可能子元素是:

button

在列表單元格中顯示一個按鈕

icon

用於顯示按鈕的圖標

string

  • 如果沒有icon,則按鈕的文本
  • 如果有icon,則替換圖標的文本

type

按鈕類型,表示點擊它如何影響Odoo:

object

在列表的模型上調用方法。 按鈕的name是方法,使用當前行的記錄ID和當前context調用該方法。

action

加載執行一個ir.actions,按鈕的name是動作的數據庫ID。 context使用列表的模型(作為active_model),當前行的記錄(active_id)以及列表中當前加載的所有記錄(active_ids,可能只是與當前搜索匹配的數據庫記錄的子集)擴展上下文

name

參見type

args

參見type

attrs

基於記錄值的動態屬性。

在當前行的記錄的上下文中評估屬性到domain,domain的映射,如果為True,則在單元格上設置相應的屬性。

可能屬性是invisible(隱藏按鈕)。

states

invisible``attrs的簡寫:狀態列表,逗號分隔,要求模型具有state字段並在視圖中使用。

注意
stateattrs結合使用可能會導致意外結果,因為域與邏輯AND組合在一起。

context

在執行按鈕的Odoo調用時合並到視圖的context中

confirm

在執行按鈕的Odoo調用之前顯示(以及用戶接受)的確認消息

field

定義一列,其中應為每條記錄顯示相應的字段。 可以使用以下屬性:

name

要在當前模型中顯示的字段的名稱。 給定名稱每個視圖只能使用一次

string

字段列的標題(默認情況下,使用模型字段的字符串)

invisible

獲取並存儲該字段,但不顯示表中的列。 對於不應該顯示但是被例如使用的字段所必需的。@colors

groups

列出應該能夠看到該字段的組

widget

字段顯示的替代表示。 可能的列表視圖值是:

progressbar

float字段顯示為進度條。

many2onebutton

如果字段已填充則用一個復選標記(checkmark)替換m2o字段的值,如果不填充則用十字標記(cross)替換

handle

對於sequence字段,不顯示字段的值只顯示拖放圖標

sum,avg

在列的底部顯示相應的聚合。 僅在當前顯示的記錄上計算聚合。 聚合操作必須與相應字段的group_operator匹配

attrs

基於記錄值的動態屬性。 僅影響當前字段,例如 invisible將隱藏字段但保持其他記錄的相同字段可見,它不會隱藏列本身

如果列表視圖是editable,則表單視圖中的任何字段屬性也有效,並將在設置內聯表單視圖時使用

Forms

表單視圖用於顯示單個記錄中的數據。 他們的根元素是<form>。 它們由具有附加結構和語義組件的常規HTML組成。

Structural components(結構構成)

結構組件提供具有很少邏輯的結構或“視覺”特征。 它們在表單視圖中用作元素或元素集。

notebook

定義選項卡式部分。 每個選項卡都是通過page子元素定義的。 頁面可以具有以下屬性:

string (required)

標簽的標題

accesskey

一個HTML訪問鍵

attrs

基於記錄值的標准動態屬性

group

用於在表單中定義列布局。 默認情況下,組定義2列,組的大多數直接子項只占一列。 field直接子組的子組默認顯示標簽,標簽和字段本身的colspan為1。

可以使用col屬性自定義group中的列數,可以使用colspan自定義元素所使用的列數。

子項是水平布局的(在更改行之前嘗試填充下一列)。

組可以具有string屬性,該屬性顯示為組的標題

newline

僅在group元素中有用,提前結束當前行並立即切換到新行(不事先填充任何剩余列)

seperator

小的水平間距,帶有string屬性,表現為節標題

sheet

可以用作直接的孩子來形成更窄更響應的form布局

sheet結合,在工作表本身上方提供全寬度位置,通常用於顯示工作流程按鈕和狀態窗口小部件

Semantic components(語義構成)

語義組件與Odoo系統相關並允許其與Odoo系統進行交互。 可用的語義組件是:

button

調用Odoo系統,類似於列表視圖按鈕。 此外,可以指定以下屬性:

special

對於在對話框中打開的表單視圖:save以保存記錄並關閉對話框,cancel以關閉對話框而不保存。

field

渲染(render)(並允許編輯,可能)當前記錄的單個字段。 可能的屬性是:

name(mandatory)

要渲染的字段的名稱

widget

字段具有基於其類型的默認呈現(例如,CharMany2one)。 窗口widget屬性允許使用不同的呈現方法和context。

options

JSON對象,指定字段窗口小部件的配置選項(包括默認窗口小部件)

class

要在生成的元素上設置HTML類,常見的字段類是:

oe_inline

防止通常的換行后跟字段

oe_left, oe_right

將字段浮動到相應的方向

oe_read_only, oe_edit_only

僅顯示相應表單模式中的字段

oe_no_button

避免在Many2one中顯示導航按鈕

oe_avatar

對於圖像字段,將圖像顯示為“頭像”(方形,最大尺寸90x90,某些圖像裝飾)

groups

僅顯示特定用戶的字段

on_change

在編輯此字段的值時調用指定的方法,可以生成更新其他字段或顯示用戶的警告

attrs

基於記錄值的動態元參數

domain

僅適用於關系字段,在顯示現有記錄以供選擇時應用的過濾器

context

僅用於關系字段,在獲取可能的值時傳遞的上下文

readonly

以只讀和編輯模式顯示該字段,但永遠不會使其可編輯

required

如果字段沒有值,則生成錯誤並阻止保存記錄

nolabel(無標簽)

不自動顯示字段的標簽,只有在字段是group元素的直接子元素時才有意義

placeholder

幫助消息顯示在空字段中。 可以替換復雜形式的字段標簽。 不應該是數據的示例,因為用戶可能會將占位符文本與填充字段混淆

mode

對於One2many,顯示模式(視圖類型)用於字段的鏈接記錄。 tree, form, kanban or graph之一。 默認為tree(列表顯示)

help

在懸停字段或其標簽時為用戶顯示的工具提示

filename

對於二進制字段,提供文件名稱的相關字段的名稱

password

表示Char字段存儲密碼,不應顯示其數據

Business Views guidelines(業務視圖指南)

業務視圖面向常規用戶,而非高級用戶。 例如:機會,產品,合作伙伴,任務,項目等。

通常,業務視圖由:

  1. 頂部的狀態欄(具有技術或業務流程),
  2. 中間的一張紙(表格本身),
  3. 歷史和評論的底部。

從技術上講,新的表單視圖在XML中的結構如下:

<form>
    <header> ... content of the status bar  ... </header>
    <sheet>  ... content of the sheet       ... </sheet>
    <div class="oe_chatter"> ... content of the bottom part ... </div>
</form>

The Status Bar

狀態欄的目的是顯示當前記錄和操作按鈕的狀態。

The Buttons

按鈕的順序遵循業務流程。 例如,在銷售訂單中,邏輯步驟是:

  1. 發送報價
  2. 確認報價
  3. 創建最終發票
  4. 發送貨物

突出顯示的按鈕(默認為紅色)強調邏輯下一步,以幫助用戶。 它通常是第一個活動按鈕。 另一方面,取消按鈕必須保持灰色(正常)。 例如,在Invoice中,退款按鈕絕對不能為紅色。

從技術上講,通過添加類“oe_highlight”突出顯示按鈕:

<button class="oe_highlight" name="..." type="..." states="..."/>

The Status

使用starbar小部件,並以紅色顯示當前狀態。 所有流程共同的狀態(例如,銷售訂單以報價開頭,然后我們發送它,然后它變成完整的銷售訂單,最后它完成)應始終可見但異常或狀態取決於特定的sub-flow應該只在當前時可見。

按照字段中使用的順序(選擇字段中的列表等)顯示狀態。 始終可見的狀態使用statusbar_visible屬性指定

<field name="state" widget="statusbar"
    statusbar_visible="draft,sent,progress,invoiced,done" />

The Sheet

  1. <form><page>中的元素不定義組,其中的元素根據普通的HTML規則進行布局。 它們的內容可以使用<group>或regular <div>元素進行顯式分組。
  2. 默認情況下,元素<group>在其中定義兩列,除非使用屬性col =“n”。 列具有相同的寬度(組寬度的1 / n)。 使用<group>元素生成一列字段。
  3. 要為節提供標題,請將string屬性添加到<group>元素:
<group string="Time-sensitive operations">

這取代了之前使用的<separator string =“XXX”/>
4. <field>元素不會生成標簽,除非是<group> element_1的直接子元素。 使用<label for =“field_name>生成字段的標簽。

Sheet Headers

某些工作表包含帶有一個或多個字段的標題,這些字段的標簽僅在編輯模式下顯示。
View mode

Edit mode

使用HTML文本,<div><h1><h2> ...生成漂亮的標題,使用類oe_edit_only<label>僅在編輯模式下顯示字段的標簽。 類oe_inline將使字段內聯(而不是塊):字段后面的內容將顯示在同一行而不是下面的行上。 上面的表單由以下XML生成:

<label for="name" class="oe_edit_only"/>
<h1><field name="name"/></h1>

<label for="planned_revenue" class="oe_edit_only"/>
<h2>
    <field name="planned_revenue" class="oe_inline"/>
    <field name="company_currency" class="oe_inline oe_edit_only"/> at
    <field name="probability" class="oe_inline"/> % success rate
</h2>

Button Box

表格中可以顯示許多相關的操作或鏈接。 例如,在“機會”表單中,“安排呼叫”和“安排會議”操作在使用CRM時具有重要作用。 不要將它們放在“更多”菜單中,而是將它們直接放在工作表中作為按鈕(在頂部),以使它們更加可見,更容易訪問。


從技術上講,按鈕放在<div>內,將它們分組為工作表頂部的塊。

<div class="oe_button_box" name="button_box">
    <button string="Schedule/Log Call" name="..." type="action"/>
    <button string="Schedule Meeting" name="action_makeMeeting" type="object"/>
</div>

Groups and Titles

現在使用<group>元素生成一列字段,並帶有可選標題。

<group string="Payment Options">
    <field name="writeoff_amount"/>
    <field name="payment_option"/>
</group>

建議在表單上有兩列字段。 為此,只需將包含字段的<group>元素放在頂級<group>元素中。

為了使視圖擴展更簡單,建議在<group>元素上添加name屬性,以便可以在正確的位置輕松添加新字段。

Groups and Titles

現在使用<group>元素生成一列字段,並帶有可選標題。

<group string="Payment Options">
    <field name="writeoff_amount"/>
    <field name="payment_option"/>
</group>

為了使視圖擴展更簡單,建議在<group>元素上添加name屬性,以便可以在正確的位置輕松添加新字段。

Special Case: Subtotals

某些類被定義為在發票表單中呈現小計:

<group class="oe_subtotal_footer">
    <field name="amount_untaxed"/>
    <field name="amount_tax"/>
    <field name="amount_total" class="oe_subtotal_footer_separator"/>
    <field name="residual" style="margin-top: 10px"/>
</group>

Placeholders and Inline Fields

有時,字段標簽會使表單過於復雜。 可以省略字段標簽,而是將占位符放在字段中。 僅當字段為空時,占位符文本才可見。 占位符應該告訴在字段內放置什么,它不能是一個例子,因為它們經常與填充數據混淆。

也可以通過在顯式塊元素(如<div>)內“內聯”將字段組合在一起。 這允許將語義相關字段分組,就好像它們是單個(復合)字段一樣

以下示例取自Leads表單,顯示占位符和內聯字段(zip和city)。

Edit mode

View mode

<group>
    <label for="street" string="Address"/>
    <div>
        <field name="street" placeholder="Street..."/>
        <field name="street2"/>
        <div>
            <field name="zip" class="oe_inline" placeholder="ZIP"/>
            <field name="city" class="oe_inline" placeholder="City"/>
        </div>
        <field name="state_id" placeholder="State"/>
        <field name="country_id" placeholder="Country"/>
    </div>
</group>

Images

圖片,如頭像,應顯示在工作表的右側。 產品形式如下:

上面的表單包含一個以以下內容開頭的<sheet>元素:

<field name="product_image" widget="image" class="oe_avatar oe_right"/>

Tags

大多數Many2many字段(如類別)最好呈現為標記列表。 使用小部件many2many_tags

<field name="category_id" widget="many2many_tags"/>

Configuration forms guidelines

配置表單示例:階段,離開類型等。這涉及每個應用程序配置下的所有菜單項(如銷售/配置)。

  1. 沒有標題(因為沒有狀態,沒有工作流,沒有按鈕)
  2. 沒有sheet

Dialog forms guidelines

示例:機會中的“安排呼叫”。

  1. 避免使用分隔符(標題已經在彈出標題欄中,因此另一個分隔符不相關)
  2. 避免取消按鈕(用戶通常會關閉彈出窗口以獲得相同的效果)
  3. 動作按鈕必須突出顯示(紅色)
  4. 如果有文本區域,請使用占位符而不是標簽或分隔符
  5. 就像在常規表單視圖中一樣,將按鈕放在
    元素中

Configuration Wizards guidelines

示例:設置/配置/銷售。

  1. 永遠在線(沒有彈出窗口)
  2. 沒有sheet
  3. 保持取消按鈕(用戶無法關閉窗口)
  4. “Apply”按鈕必須為紅色

Graphs

圖表視圖用於顯示多個記錄或記錄組的聚合。 它的根元素是<graph>,它可以采用以下屬性:

type

bar(默認值),pie餅圖和line線條之一,要使用的圖形類型

stacked

僅用於bar條形圖。 如果存在並設置為True,則堆疊組中的條形

圖表視圖中唯一允許的元素是可以具有以下屬性的field

name (required)

要在圖表視圖中使用的字段的名稱。 如果用於分組(而不是聚合)

type

指示該字段是應該用作分組標准還是用作組內的聚合值。 可能的值是:

row (default)

按指定字段分組。 所有圖表類型都支持至少一個級別的分組,有些可能支持更多。 對於數據透視視圖,每個組都有自己的行。

col

僅由數據透視表使用,創建按列的組

measure

要在組內聚合的字段

interval

在日期和日期時間字段中,按指定的時間間隔(day, week, month, quarter or year)分組,而不是按特定日期時間(固定的第二個方案)或日期(固定的日期方案)進行分組。

警告
圖表視圖聚合是在數據庫內容上執行的,非存儲的函數字段不能在圖表視圖中使用

Pivots

數據透視視圖用於將聚合可視化為數據透視表。 它的根元素是<pivot>,它可以采用以下屬性:

disable_linking

設置為True以刪除表格單元格到列表視圖的鏈接。

display_quantity

設置為true以默認顯示“數量”列。

樞軸視圖中允許的元素與圖表視圖相同。

Kanban

看板視圖是看板可視化:它在列表視圖和不可編輯的表單視圖之間顯示記錄為“卡片”。 記錄可以按列分組以用於工作流可視化或操作(例如任務或工作進度管理),或者未分組(僅用於可視化記錄)。

看板視圖的根元素是<kanban>,它可以使用以下屬性:

default_group_by

如果通過操作或當前搜索未指定分組,是否應對看板視圖進行分組。 當沒有指定分組時,應該是要分組的字段的名稱

default_order

如果用戶尚未對記錄進行排序(通過列表視圖),則使用卡片排序順序

class

將HTML類添加到看板視圖的根HTML元素

group_create

是否可以顯示“添加新列”欄。 默認值:true。

group_delete

是否可以通過上下文菜單刪除組。 默認值:true。

group_edit

是否可以通過上下文菜單編輯組。 默認值:true。

quick_create

是否應該可以在不切換到表單視圖的情況下創建記錄。 默認情況下,將Kanban視圖分組時啟用quick_create,而不執行時禁用。

設置為true表示始終啟用它,設置為false表示始終禁用它。

view元素的可能子元素是:

field

聲明要在看板邏輯中使用的字段。 如果該字段僅顯示在看板視圖中,則不需要預先聲明。

可能的屬性是:

name(required)

要獲取的字段的名稱

progressbar

聲明一個progressbar元素放在看板列之上。

可能的屬性是:

field (required)

字段的名稱,其值用於對進度條中的列記錄進行子組

colors (required)

JSON將上述字段值映射為“危險”,“警告”或“成功”顏色

sum_field (optional)

列的記錄值將匯總並顯示在進度條旁邊的字段名稱(如果省略,則顯示記錄總數)

templates

定義QWeb模板列表。 為清晰起見,卡片定義可以拆分為多個模板,但看板視圖必須至少定義一個根模板kanban-box,每個模板將為每個記錄呈現一次。

看板視圖主要使用標准的javascript qweb,並提供以下上下文變量:

widget

當前的KanbanRecord(),可用於獲取一些元信息。 這些方法也可以直接在模板上下文中使用,不需要通過widget訪問

record

一個對象,其中包含所有請求的字段作為其屬性。 每個字段都有兩個屬性valueraw_value,前者根據當前用戶參數進行格式化,后者是read()的直接值(除了根據用戶的語言環境格式化的日期和日期時間字段)

read_only_mode

不言自明

buttons and fields

雖然大多數看板模板都是標准QWeb,但看板視圖特別處理field,buttona元素:

  • 默認情況下,字段將替換為其格式化值,除非它們與特定的看板視圖窗口小部件匹配

  • 具有type屬性的按鈕和鏈接將執行與Odoo相關的操作,而不是其標准HTML功能。 可能的類型是:
    action, object
    Odoo按鈕的標准行為,可以使用與標准Odoo按鈕相關的大多數屬性。

open

以只讀模式在表單視圖中打開卡片的記錄

edit

在可編輯模式下在表單視圖中打開卡片的記錄

delete

刪除卡的記錄並刪除卡

如果你需要擴展看板視圖, see :js:class::the JS API <KanbanRecord>.

Calendar

日歷視圖將記錄顯示為每日,每周或每月日歷中的事件。 他們的根元素是<calendar>。 日歷視圖中的可用屬性包括:

date_start (required)

包含事件開始日期的記錄字段的名稱

date_stop

保存事件結束日期的記錄字段的名稱,如果提供了date_stop,記錄將直接在日歷中變為可移動(通過拖放)

date_delay

date_stop的替代方案,提供事件的持續時間而不是結束日期(單位:天)

color

用於顏色分段的記錄字段的名稱。 同一顏色段中的記錄在日歷中分配相同的高亮顏色,顏色半隨機分配。 顯示側欄中可見記錄的display_name / avatar

readonly_form_view_id

查看以只讀模式打開

form_view_id

用戶創建或編輯事件時打開的視圖。 請注意,如果未設置此屬性,則日歷視圖將回退到當前操作中的表單視圖的ID(如果有)。

event_open_popup

如果選項'event_open_popup'設置為true,則日歷視圖將在FormViewDialog中打開事件(或記錄)。 否則,它將在新的表單視圖中打開事件(使用do_action)

quick_add

在點擊時啟用快速事件創建:僅詢問用戶名稱並嘗試僅使用該事件和單擊的事件時間創建新事件。 如果快速創建失敗,則回退到完整表單對話框

all_day

記錄上的布爾字段的名稱,指示相應的事件是否標記為一天(並且持續時間不相關)

mode

加載日歷時的默認顯示模式。 可能的屬性包括:day, week, month

<field>

聲明要聚合或在看板邏輯中使用的字段。 如果該字段只顯示在日歷卡中。

字段可以具有其他屬性:

invisible

使用“True”隱藏卡片中的值

avatar_field

僅適用於x2many字段,在卡片中顯示頭像而不是display_name

write_model and write_field
您可以添加過濾器並將結果保存在已定義的模型中,過濾器將添加到側欄中

templates

定義QWeb模板calendar-box。 為清楚起見,卡片定義可以分成多個模板,每個模板將為每個記錄呈現一次。

看板視圖主要使用標准的javascript qweb,並提供以下上下文變量:

widget

當前的KanbanRecord(),可用於獲取一些元信息。 這些方法也可以直接在模板上下文中使用,不需要通過widget getColor訪問以轉換為顏色整數getAvatars以轉換為頭像圖像displayFields列表中的不可見字段

record

一個對象,其中包含所有請求的字段作為其屬性。 每個字段都有兩個屬性值和raw_value

event

日歷事件對象

format

format方法,使用用戶參數將值轉換為可讀字符串

fields

所有模型字段參數的定義

use_context

不言自明

read_only_mode

不言自明

Gantt

甘特圖適當地顯示甘特圖(用於調度)。

甘特圖視圖的根元素是<gantt />,它沒有子節點但可以采用以下屬性:

date_start (required)

提供每條記錄事件的開始日期時間的字段名稱。

date_stop

提供每條記錄事件結束持續時間的字段名稱。 可以用date_delay替換。 必須提供date_stopdate_delay中的一個(且僅一個)。

如果記錄的字段為False,則假定為“點事件”,結束日期將設置為開始日期

date_delay

提供事件持續時間的字段的名稱

duration_unit

minute, hour (默認的), day, week, month, year其中一個

default_group_by

要分組任務的字段的名稱

type

gantt經典甘特視圖(默認)

consolidate 第一個子節點的值在甘特任務中得到合並

planning 子節點顯示在甘特圖的任務中

consolidation

字段名稱,用於顯示記錄單元格中的合並值

consolidation_max

將“group by”字段作為鍵的字典,以及在以紅色顯示單元格之前可以達到的最大合並值(例如{“user_id”:100}

consolidation_exclude

如果設置為true,則描述是否必須從合並中排除任務的字段的名稱,它在合並行中顯示條帶區域

warnings
字典定義必須使用雙引號,{'user_id':100}不是有效值

string

要在合並值旁邊顯示的字符串,如果未指定,將使用合並字段的標簽

fold_last_level

如果設置了值,則折疊最后一個分組級別

round_dnd_dates

允許將任務的開始和結束日期舍入到最近的刻度標記

drag_resize

調整任務大小,默認為true

progress

提供記錄事件完成百分比的字段名稱,介於0和100之間

Diagram

圖表視圖可用於顯示記錄的有向圖。 根元素是<diagram>,不帶任何屬性。

圖表視圖的可能子項是:

node(required,1)

定義圖的節點。 它的屬性是:

object

節點的odoo模型

shape

條件形狀映射類似於列表視圖中的顏色和字體。 唯一有效的形狀是矩形rectangle(默認形狀是省略號)

bgcolor

與形狀shape相同,但有條件地映射節點的背景顏色。 默認背景顏色為白色,唯一有效的替代方法是灰色grey

arrow(required,1)

定義圖形的有向邊。 它的屬性是:

object (required)

邊緣的Odoo模型

source(required)

邊緣模型的Many2one字段指向邊緣的源節點記錄

destination(required)

邊緣模型的Many2one字段指向邊緣的目標節點記錄

label

Python屬性列表(作為引用字符串)。 相應屬性的值將連接並顯示為邊的標簽

label

對於圖表的解釋性說明,string屬性定義了筆記的內容。 每個label都作為圖表標題中的段落輸出,很容易看到,但沒有特別強調。

搜索視圖與先前視圖類型的區別在於它們不顯示內容:雖然它們適用於特定模型,但它們用於過濾其他視圖的內容(通常是聚合視圖,例如列表或圖形)。 除了用例中的差異之外,它們的定義方式相同。

搜索視圖的根元素是<search>。 它沒有任何屬性。

搜索視圖的可能子元素是:

field

字段使用用戶提供的值定義域或上下文。 生成搜索域時,字段域彼此組合並使用AND進行過濾。

字段可以具有以下屬性:

name

要過濾的字段的名稱

string

字段的標簽

operator

默認情況下,字段生成[[name,operator,provided_value]]形式的域,其中name是字段的名稱,provided_value是用戶提供的值,可能已過濾或轉換(例如,用戶需要提供標簽 選擇字段的值,而不是值本身)。

operator屬性允許覆蓋默認運算符,這取決於字段的類型(例如=對於浮點字段,但對於字段的字段為ilike

filter_domain

完整域用作字段的搜索域,可以使用自變量在自定義域中注入提供的值。 可用於生成比運營商單獨更靈活的域(例如,一次搜索多個字段)

如果同時提供operatorfilter_domain,則filter_domain優先。

context

允許添加上下文關鍵字,包括用戶提供的值(domain可用作self變量)。 默認情況下,字段不會生成域。

域和上下文是包含的,如果指定了上下文,則生成兩者。 要僅生成上下文值,請將filter_domain設置為空列表:filter_domain =“[]”

groups

使該字段僅對特定用戶可用

widget

為該字段使用特定的搜索小部件(標准Odoo 8.0中的唯一用例是Many2one字段的選擇小部件)

domain

如果該字段可以提供自動完成(例如Many2one),則過濾可能的完成結果。

filter

過濾器是搜索視圖中的預定義切換,只能啟用或禁用。 其主要目的是將數據添加到搜索上下文(傳遞到數據視圖以進行搜索/過濾的上下文),或將新部分附加到搜索過濾器。

過濾器可以具有以下屬性:

string (required)

過濾器的標簽

domain

Odoo域將作為搜索域的一部分附加到操作的域中

context

Python字典,合並到動作的域中以生成搜索域

name

過濾器的邏輯名稱,默認情況下可用於啟用它,也可用作繼承掛鈎

help

過濾器的較長解釋性文本可以顯示為工具提示

groups

使過濾器僅對特定用戶可用

7.0版中的新功能。
過濾器的序列(沒有將它們分開的非過濾器)被視為包含性合成:它們將由OR而不是通常的AND組成,例如,

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

如果選擇了兩個過濾器,將選擇狀態為state is draft or done的記錄,但是

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

如果選擇了兩個過濾器,將選擇狀態為state is draft and delay低於15的記錄。

separator

可用於在簡單搜索視圖中分隔過濾器組

group

可用於分隔過濾器組,比復雜搜索視圖中的separator 更具可讀性

Search defaults

可以使用search_default_name鍵通過操作的context配置搜索字段和過濾器。 對於字段,值應該是在字段中設置的值,對於過濾器,它是一個布爾值。 例如,假設foo是一個字段,bar是一個過濾器,它的動作上下文是:

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

將自動啟用bar過濾器並在foo字段中搜索acro。

QWEB

QWeb視圖是視圖拱形內的標准QWeb模板。 它們沒有特定的根元素。

QWeb視圖只能包含單個模板4,模板名稱必須與視圖的完整(包括模塊名稱)外部ID匹配。

模板應該用作定義QWeb視圖的快捷方式。

[1]出於向后兼容的原因
[2]為QWeb視圖中的簡單匹配添加了擴展函數:如果上下文節點具有所有指定的類,則hasclass(* classes)匹配
[3]由於歷史原因,它起源於樹型視圖,后來改用了更多的表/列表類型顯示
[4]或者沒有模板,如果它是一個繼承的視圖,那么它應該只包含xpath元素


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM