Search
Search view 與之前的幾個(gè)都不同住册,它不是用來(lái)顯示 record 的丈莺。作用與制定的 model逮栅,并且用來(lái)篩選其他 view的內(nèi)容。root element 是 <search>
不接受屬性胸私。子節(jié)點(diǎn)有:
-
<field>
fields 可以定義一些 domain 和 context,當(dāng)用戶輸入搜索字符串時(shí)鳖谈,將會(huì)把搜索行為和定義的 domain AND 之后岁疼,再去查詢。<field>
可以有下列屬性:name
指明根據(jù)哪個(gè) field 來(lái)篩選string
field 的 labeloperator
默認(rèn)情況下缆娃,將根據(jù)生成[(name, operator, provided_value)]
捷绒,name
就是字段名字,provided_value
就是用戶在搜索框中填入數(shù)據(jù)贯要。operator
屬性設(shè)置之后就可以修改默認(rèn)的 operator(char field
是ilike
疙驾,float field
是=
)filter_domain
一個(gè)完整的 domain,用來(lái)指明field 的 search domain郭毕,可以用self
來(lái)表示用戶輸入的數(shù)據(jù)它碎。通常是用來(lái)一次搜索作用于多個(gè)字段上(e.g.<field name='name' filter_domain="['|', ('name', 'ilike', self), ('customer_id', 'ilike', self)]"
,返回 name 或者 customer_id.name 符合用戶輸入的 record)context
groups
僅對(duì)特殊組生效widget
使用特定的 widget显押,odoo8.0中唯一使用的就是 作用于many2one
field的selection
widgetdomain
if the field can provide an auto-completion (e.g. Many2one), filters the possible completion results.
-
<filter>
這個(gè)就是預(yù)先定義好的篩選條件扳肛,在UI 界面中它只有生效和無(wú)效兩種狀態(tài)〕吮可有下列屬性-
string
the label of the filter -
domain
an Odoo domain挖息,將會(huì)追加到當(dāng)前 action 的 domain 的后面。 -
context
python 字典兽肤,合并到 action domian中套腹,用來(lái)生成 search domain -
name
指明 這個(gè)filter的 logic name,設(shè)置之后资铡,就可以在 enable it by default电禀。也方便后續(xù)繼承這個(gè) search view,用以定位笤休。 -
help
幫助信息 -
groups
對(duì)特殊組生效
-
<separator>
這樣兩個(gè)條件就是 or
<filter domain="[('state', '=', 'draft')]"/>
<filter domain="[('state', '=', 'done')]"/>
兩個(gè)條件是 and
<filter domain="[('state', '=', 'draft')]"/>
<separator/>
<filter domain="[('delay', '<', 15)]"/>
-
<group>
根據(jù)組來(lái)顯示尖飞,更加的清晰。
Search defaults
可以通過(guò)在 action的 context中設(shè)置search_default_name
來(lái)實(shí)現(xiàn)自動(dòng)搜索店雅,for fields政基,就指明字段的值,如果是 filter闹啦,就傳入 boolean value沮明。比如:假設(shè) foo
是一個(gè) field, bar
是個(gè) filter。那么 action 中的 context 就應(yīng)該為:
{
'search_default_foo': 'acro',
'search_default_bar': 1
}
中當(dāng)點(diǎn)擊這個(gè)action是窍奋,就會(huì)自動(dòng)的 enable bar
filter荐健,并且搜索 foo
field的值 ilike acro 的圣勒。