有人能帮忙吗?我想在POS Odoo 15 CE中添加一个自定义按钮。我关注这篇文章:https://www.cybrosys.com/blog/how-to-add-buttons-in-pos-using-owl,但是从第14节到第15节似乎有些变化。
这是我在my_project/static/src/js目录中的js文件:
odoo.define('numenapp_buyer_name.alias_button', function(require) {
'use strict';
const PosComponent = require('point_of_sale.PosComponent');
const ProductScreen = require('point_of_sale.ProductScreen');
const { useListener } = require('web.custom_hooks');
const Registries = require('point_of_sale.Registries');
class AliasButton extends PosComponent {
constructor() {
super(...arguments);
useListener('click', this.onClick);
}
is_available() {
const order = this.env.pos.get_order();
return order;
}
onClick() {
const cli = this.get_client();
alert(cli.name);
}
}
AliasButton.template = 'AliasButton';
ProductScreen.addControlButton({
component: AliasButton,
condition: function() {
return this.env.pos;
},
position: ['before', 'OrderlineCustomerNoteButton'],
});
Registries.Component.add(AliasButton);
return AliasButton;
});
这是我在my_project/static/src/xml目录中的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<t t-name="AliasButton" owl="1">
<div class='control-button'>
Alias
</div>
</t>
</templates>
这是我的清单.py文件(一段(:
'data': [
# 'security/ir.model.access.csv',
'views/views.xml',
'views/templates.xml',
],
'demo': [
'demo/demo.xml',
],
'qweb': [
'static/src/xml/AliasButton.xml',
],
'assets': {
'point_of_sale.assets': [
'numenapp_buyer_name/static/src/js/**/*',
],
},
不再是qweb
条目。
来自捆绑包文档:
捆绑包在每个模块的
__manifest__.py
中定义,其中有一个专用的assets
密钥,该密钥包含一个字典web.assets_qweb
:后端环境和销售点中使用的所有静态XML模板。
链接web.assets_qweb
捆绑包中的所有qweb.xml,如下所示:
'assets': {
'web.assets_qweb': [
'my_project/static/src/xml/AliasButton.xml',
],
},