Odoo - Расширенный вид поиска

Можно ли расширить представление поиска и добавить более одного окна поиска или флажка для удобства пользователя?

Прямо сейчас есть только одно окно поиска, и некоторое время пользователь не хочет нажимать на поле поиска, а затем вводить, а затем фильтровать или выбирать собственный фильтр из фильтра из плагина фильтра. Будет быстро, если я смогу добавить флажки .


person Ancient    schedule 21.08.2017    source источник
comment
Да, это возможно. Вы можете расширить его как представление.   -  person qvpham    schedule 21.08.2017
comment
@Ancient Но, где вы хотите добавить этот флажок в представлении поиска. Итак, вы можете выбрать любой из фильтров, и он будет доступен только в окне поиска, верно?   -  person Chavada Viki    schedule 21.08.2017
comment
Я хочу добавить его прямо под окном поиска или рядом с окном поиска. Можете ли вы привести какой-нибудь пример?   -  person Ancient    schedule 21.08.2017
comment
@Древние флажки для чего? Как это будет работать иначе, чем стандартные функции «Фильтры» или «Группировать по»?   -  person travisw    schedule 21.08.2017
comment
я знаю, что они будут работать так же, как фильтры или группы, но я хочу попробовать, просто хотел создать флажок и посмотреть, возможно это или нет   -  person Ancient    schedule 21.08.2017
comment
@Ancient Вы хотите обновить или переопределить существующие функции/форматирование?   -  person travisw    schedule 28.08.2017
comment
Я хочу, чтобы текущая функция поиска оставалась прежней и добавляла дополнительные флажки.   -  person Ancient    schedule 28.08.2017
comment
@Ancient Я думаю, вам нужно глубоко погрузиться в файл web/static/src/js/views/form_common.js, чтобы увидеть, что происходит в файле setup. Существующие кнопки поиска находятся в элементе класса o_search_options.   -  person travisw    schedule 29.08.2017
comment
поиск есть только в дереве и канбане   -  person Hilar AK    schedule 31.08.2017


Ответы (2)


Вот пример расширения представления поиска 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.

Если вам нужно внести изменения в дерево и представление канбана, вы также должны расширить их, как указано выше. Если вам нужно добавить новое окно поиска, вы можете расширить шаблон дерева из Интернета и внести соответствующие изменения.

person Hilar AK    schedule 31.08.2017

Просто расширьте представление поиска, как и любое другое представление, и добавьте предопределенные фильтры, например: (см., например, "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»). Поэтому я бы предпочел это решение, если время или стоимость важно для вас.

person Daniel A.    schedule 01.09.2017