Я пытаюсь расширить файл relational_fields.js из веб -модуля в Odoo 13, так что в форме запроса на кавычки, когда я начинаю вводить имя поставщика и параметры автозаполнения с помощью поиска больше ... ссылка , когда я нажимаю на эту ссылку, она добавляет фильтр поставщиков в поиск. Хотя я не могу заставить его работать, если добавлю пользовательский файл JS. < /p>
Есть идеи о том, что я должен сделать? Я загружаюсь через манифест. Я пытался загрузить его, добавив активы в манифест, а также создав представление для активов. < /P>
odoo.define('your_module_name.custom_relational_fields', function (require) {
"use strict";
var relational_fields = require('web.relational_fields');
var FieldMany2One = relational_fields.FieldMany2One;
var CustomFieldMany2One = FieldMany2One.extend({
_manageSearchMore: function (values, search_val, domain, context) {
values = values.slice(0, this.limit);
values.push({
label: _t("Search More..."),
action: function () {
var prom;
if (context.res_partner_search_mode === 'supplier') {
domain = domain.concat([['supplier_rank', '>', 0]]);
}
if (search_val !== '') {
prom = this._rpc({
model: this.field.relation,
method: 'name_search',
kwargs: {
name: search_val,
args: domain,
operator: "ilike",
limit: this.SEARCH_MORE_LIMIT,
context: context,
},
});
}
Promise.resolve(prom).then(function (results) {
var dynamicFilters;
if (results) {
var ids = _.map(results, function (x) {
return x[0];
});
dynamicFilters = [{
description: _.str.sprintf(_t('Quick search: %s'), search_val),
domain: [['id', 'in', ids]],
}];
if (context.res_partner_search_mode === 'supplier') {
dynamicFilters = [{
description: _.str.sprintf(_t('Quick search: %s, Vendors'), search_val),
domain: [['id', 'in', ids], ['supplier_rank', '>', 0]],
}];
}
}
this._searchCreatePopup("search", false, {}, dynamicFilters);
}.bind(this));
}.bind(this),
classname: 'o_m2o_dropdown_option',
});
return values;
},
});
return {
CustomFieldMany2One: CustomFieldMany2One,
};
});
< /code>
Я получил помощь от Copilot для этого, но в данный момент он не кажется таким эффективным. Предыдущий модуль, в рамках каталога Static/SRC/JS.{
"name": "my module name| Purchase enhancement",
"summary": "Apply changes to core Odoo purchasing module to adapt changes to the customer requirement.",
"license": "LGPL-3",
"author": "much. GmbH",
"auto_install": False,
"application": False,
"sequence": 100,
"category": "Purchase",
"version": "13.0.6.26.0",
"depends": ["base", "product", "purchase", "purchase_stock", "web"],
"data": [
"views/purchase_order.xml",
"views/product_views.xml",
"views/res_partner_views.xml",
"views/stock_picking_view.xml",
"views/assets.xml",
"wizard/display_dialog_box.xml",
"data/ir_config_parameter_data.xml",
],
# "assets": {
# "web.assets_backend": [
# "my_module/static/src/js/custom_relational_fields.js",
# ],
# },
}
< /code>
Вот Assets.xml, рекомендованная Co-Pilot: < /p>
Найдите оригинал relational_fields.js at:
https://github.com/odoo/odoo/blob/13.0/ ... /js/fields /relational_fields.js
и обновленная часть кода, которую я нашел, работаю в Relational_fields Файл: < /p>
_manageSearchMore: function (values, search_val, domain, context) {
var self = this;
values = values.slice(0, this.limit);
values.push({
label: _t("Search More..."),
action: function () {
var prom;
/* if context res_parnter_search_mode key is supplier, then domain should*/
/* be updated to include the supplier filter */
if (context.res_partner_search_mode === 'supplier') {
domain = domain.concat([['supplier_rank', '>', 0]]);
}
if (search_val !== '') {
prom = self._rpc({
model: self.field.relation,
method: 'name_search',
kwargs: {
name: search_val,
args: domain,
operator: "ilike",
limit: self.SEARCH_MORE_LIMIT,
context: context,
},
});
}
Promise.resolve(prom).then(function (results) {
var dynamicFilters;
if (results) {
var ids = _.map(results, function (x) {
return x[0];
});
dynamicFilters = [{
description: _.str.sprintf(_t('Quick search: %s'), search_val),
domain: [['id', 'in', ids]],
}];
if (context.res_partner_search_mode === 'supplier') {
dynamicFilters= [{
description: _.str.sprintf(_t('Quick search: %s, Vendors'), search_val),
domain: [['id', 'in', ids], ['supplier_rank', '>', 0]],
}];
}
}
self._searchCreatePopup("search", false, {}, dynamicFilters);
});
},
classname: 'o_m2o_dropdown_option',
});
return values;
},
Подробнее здесь: https://stackoverflow.com/questions/794 ... in-odoo-13
Как добавить фильтр в всплывающее окно, сгенерированное JavaScript в Odoo 13 ⇐ Javascript
Форум по Javascript
1740504252
Anonymous
Я пытаюсь расширить файл relational_fields.js из веб -модуля в Odoo 13, так что в форме запроса на кавычки, когда я начинаю вводить имя поставщика и параметры автозаполнения с помощью поиска больше ... ссылка , когда я нажимаю на эту ссылку, она добавляет фильтр поставщиков в поиск. Хотя я не могу заставить его работать, если добавлю пользовательский файл JS. < /p>
Есть идеи о том, что я должен сделать? Я загружаюсь через манифест. Я пытался загрузить его, добавив активы в манифест, а также создав представление для активов. < /P>
odoo.define('your_module_name.custom_relational_fields', function (require) {
"use strict";
var relational_fields = require('web.relational_fields');
var FieldMany2One = relational_fields.FieldMany2One;
var CustomFieldMany2One = FieldMany2One.extend({
_manageSearchMore: function (values, search_val, domain, context) {
values = values.slice(0, this.limit);
values.push({
label: _t("Search More..."),
action: function () {
var prom;
if (context.res_partner_search_mode === 'supplier') {
domain = domain.concat([['supplier_rank', '>', 0]]);
}
if (search_val !== '') {
prom = this._rpc({
model: this.field.relation,
method: 'name_search',
kwargs: {
name: search_val,
args: domain,
operator: "ilike",
limit: this.SEARCH_MORE_LIMIT,
context: context,
},
});
}
Promise.resolve(prom).then(function (results) {
var dynamicFilters;
if (results) {
var ids = _.map(results, function (x) {
return x[0];
});
dynamicFilters = [{
description: _.str.sprintf(_t('Quick search: %s'), search_val),
domain: [['id', 'in', ids]],
}];
if (context.res_partner_search_mode === 'supplier') {
dynamicFilters = [{
description: _.str.sprintf(_t('Quick search: %s, Vendors'), search_val),
domain: [['id', 'in', ids], ['supplier_rank', '>', 0]],
}];
}
}
this._searchCreatePopup("search", false, {}, dynamicFilters);
}.bind(this));
}.bind(this),
classname: 'o_m2o_dropdown_option',
});
return values;
},
});
return {
CustomFieldMany2One: CustomFieldMany2One,
};
});
< /code>
Я получил помощь от Copilot для этого, но в данный момент он не кажется таким эффективным. Предыдущий модуль, в рамках каталога Static/SRC/JS.{
"name": "my module name| Purchase enhancement",
"summary": "Apply changes to core Odoo purchasing module to adapt changes to the customer requirement.",
"license": "LGPL-3",
"author": "much. GmbH",
"auto_install": False,
"application": False,
"sequence": 100,
"category": "Purchase",
"version": "13.0.6.26.0",
"depends": ["base", "product", "purchase", "purchase_stock", "web"],
"data": [
"views/purchase_order.xml",
"views/product_views.xml",
"views/res_partner_views.xml",
"views/stock_picking_view.xml",
"views/assets.xml",
"wizard/display_dialog_box.xml",
"data/ir_config_parameter_data.xml",
],
# "assets": {
# "web.assets_backend": [
# "my_module/static/src/js/custom_relational_fields.js",
# ],
# },
}
< /code>
Вот Assets.xml, рекомендованная Co-Pilot: < /p>
Найдите оригинал relational_fields.js at:
https://github.com/odoo/odoo/blob/13.0/addons/web/static/src/js/fields /relational_fields.js
и обновленная часть кода, которую я нашел, работаю в Relational_fields Файл: < /p>
_manageSearchMore: function (values, search_val, domain, context) {
var self = this;
values = values.slice(0, this.limit);
values.push({
label: _t("Search More..."),
action: function () {
var prom;
/* if context res_parnter_search_mode key is supplier, then domain should*/
/* be updated to include the supplier filter */
if (context.res_partner_search_mode === 'supplier') {
domain = domain.concat([['supplier_rank', '>', 0]]);
}
if (search_val !== '') {
prom = self._rpc({
model: self.field.relation,
method: 'name_search',
kwargs: {
name: search_val,
args: domain,
operator: "ilike",
limit: self.SEARCH_MORE_LIMIT,
context: context,
},
});
}
Promise.resolve(prom).then(function (results) {
var dynamicFilters;
if (results) {
var ids = _.map(results, function (x) {
return x[0];
});
dynamicFilters = [{
description: _.str.sprintf(_t('Quick search: %s'), search_val),
domain: [['id', 'in', ids]],
}];
if (context.res_partner_search_mode === 'supplier') {
dynamicFilters= [{
description: _.str.sprintf(_t('Quick search: %s, Vendors'), search_val),
domain: [['id', 'in', ids], ['supplier_rank', '>', 0]],
}];
}
}
self._searchCreatePopup("search", false, {}, dynamicFilters);
});
},
classname: 'o_m2o_dropdown_option',
});
return values;
},
Подробнее здесь: [url]https://stackoverflow.com/questions/79467393/how-to-add-a-filter-to-a-popup-window-generated-by-javascript-in-odoo-13[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия