2017-08-21 119 views
5

爲了用戶的方便,是否可以擴展搜索視圖並添加多個搜索框或複選框?Odoo - 擴展搜索視圖

現在只有一個搜索框,有些時候用戶不想點擊搜索框,然後鍵入,然後從過濾器插件中過濾或選擇一個自定義的過濾器。它會很快,如果我可以添加複選框。

+0

是的,這是可能的。你可以像視圖一樣擴展它。 – qvpham

+0

@Ancient但是,您想在搜索視圖中添加該複選框。所以,你可以選擇任何一個過濾器,並且只有在搜索框中才可用? –

+0

我想在搜索框或搜索框旁邊添加它。你能舉個例子嗎? – Ancient

回答

0

這裏是延長odoo的搜索視圖的例子:

odoo.define('modulename.makesearch', function (require) { 
"use strict"; 
var searchView = require('web.SearchView'); 
var search_filters = require('web.search_filters'); 
var search_inputs = require('web.search_inputs'); 
var Widget = require('web.Widget'); 
var FavoriteMenu = require('web.FavoriteMenu'); 
var FilterMenu = require('web.FilterMenu'); 
var GroupByMenu = require('web.GroupByMenu'); 
var Model = require('web.DataModel'); 

var SearchFilterButton = searchView.include({ 
    init: function(parent, dataset, view_id, defaults, options) { 
     this._super.apply(this, arguments); 
     this.parent = parent; 
    }, 
    view_loaded: function (r) {}, 
}); 
}); 
//Here in view loaded function I wrote the definitions I need. 
//Here you write your own. 

如果你需要讓你也必須擴展他們像上面樹和看板視圖的變化。如果需要添加新的搜索框,您可以從Web擴展樹模板並進行適當的更改。

0

只是擴展搜索視圖像其他視圖,並添加預定義的過濾器是這樣的:(見「view_res_partner_filter」爲例)

... 
<field name="arch" type="xml"> 
... 
<filter string="My First Value" domain="[('my_field','=', 'my_first_value')]"/> 
<filter string="My Second Value" domain="[('my_field','=', 'my_second_value')]"/> 
... 
</field> 

這些預定義的過濾器會出現「過濾器」下下面的「搜索框」然後可以通過點擊進行切換(非常類似於使用複選框的首選行爲)

如果您堅持使用複選框,您將不得不做很多工作,如更改相應的Qweb模板以及修改相應的JS文件(看到「緬甸pythis」的答案) 所以我更喜歡這種溶膠如果時間或成本對你很重要。