Odoo - 扩展搜索视图

时间:2017-08-21 13:28:06

标签: openerp odoo-view

是否可以扩展搜索视图并添加多个搜索框或复选框以方便用户使用?

现在只有一个搜索框,有些时候用户不想点击搜索框,然后键入然后过滤或从过滤器插件中选择一个自定义过滤器。如果可以,我会很快添加复选框。

2 个答案:

答案 0 :(得分: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扩展树模板并进行适当的更改。

答案 1 :(得分: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文件(参见“Burmese pythis”的答案) 如果时间或成本对你很重要,我宁愿选择这个解决方案。