【问题标题】:How to add button to POS screen in Odoo11?如何在 Odoo11 的 POS 屏幕上添加按钮?
【发布时间】:2018-05-16 15:56:33
【问题描述】:

我正在尝试向 POS 屏幕添加一个按钮。我掌握的很多信息都与 Odoo 11 CE 有关,这可能就是它不起作用的原因。我安装了自定义插件没有任何错误,但我没有看到按钮。运行 POS 时我也没有收到任何错误。在版本 11 中有一个 widgets.js 文件,其中包括

module.PosWidget.include({
      build_widgets: function(){
      var self = this;
      this._super()

版本 11 中没有 widgets.js,我猜这就是我的问题所在。这只是一个猜测,我真的不知道如何在 POS 中添加按钮。

这是我的 pos_custom.js

odoo.pos_custom = function(instance){
    var module = instance.point_of_sale;
    var round_pr = instance.web.round_precision
    var QWeb = instance.web.qweb;

console.log("POS JS Loaded")
module.PosWidget.include({
    build_widgets: function(){
  var self = this;
  this._super()

   custom_btn = $(QWeb.render(`custom_btn`))
   custom_btn.click(function(){
        alert("hello")
   })
   console.log("button <<<>>> ",custom_btn,this.$(`.control-button`))
   custom_btn.appendTo(this.$(`.control-button`))


  this.$control_buttons`).removeClass(`oe_hidden`)


        }

})

}; 我的 /src/xml/pos_custom.xml

<?xml version="1.0" encoding="UTF-8"?>
<templates xml="template" xml:space="preserve">

<t t-name="custom_btn">
    <button>Cust Button</button>
</t>

</templates>

我的 /views/templates.xml

<?xml version="1.0"?>
<openerp>
  <data>
    <template id="assets_backend" name="pos_custom assets" 
inherit_id="web.assets_backend">
        <xpath expr="." position="inside">

            <script type="text/javascript" 
src="/pos_custom/static/src/js/pos_custom.js"></script>
            </xpath>
        </template>

   </data>
 </openerp>

manifest.py

{
'name': 'Point Custom Module',
'version': '1.2',
'category': 'Point of Sale',
'summary': 'Custom Point of Sale ',
'description': "",
'data': [
    "views/templates.xml"

],
'depends': ['point_of_sale'],


'qweb': ['static/src/xml/*.xml'],
'application': True,


}

【问题讨论】:

    标签: odoo


    【解决方案1】:

    /custom-button/清单.py

    {
        'name': 'CustomButton',
        'summary': '',
        'version': '1.0',
    
        'description': """
    
        """,
    
        # 'author': '',
        # 'maintainer': '',
        # 'contributors': [''],
    
        # 'website': '',
    
        'license': 'AGPL-3',
        'category': 'Uncategorized',
    
        'depends': [
            'base', 'point_of_sale',
        ],
        'external_dependencies': {
            'python': [
            ],
        },
        'data': [
            'views/templates.xml',
    
        ],
        'demo': [
        ],
        'js': [
        ],
        'css': [
        ],
        'qweb': [
        'static/src/xml/custom_button.xml',
        ],
        'images': [
        ],
        'test': [
        ],
    
        'installable': True
    }
    

    /custom-button/views/templates.xml

    <?xml version="1.0" encoding="utf-8"?>
    <odoo>
    
        <template id="assets" inherit_id="point_of_sale.assets">
            <xpath expr="." position="inside">
    
                <script type="text/javascript" src="/custom-button/static/src/js/custom.js"></script>
    
            </xpath>
    
        </template>
    
    </odoo>
    

    /custom-button/static/src/xml/custom_button.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <templates id="template" xml:space="preserve">
        <t t-name="CustomButton">
            <span class="control-button">
                <i class="fa fa-print"></i>
                Custom Button
            </span>
        </t>
    
    </templates>
    

    /custom-button/static/src/js/custom.js

    odoo.define('custom-button.custom_button', function (require) {
    "use strict";
    var core = require('web.core');
    var screens = require('point_of_sale.screens');
    var gui = require('point_of_sale.gui');
    
    
    
    
    
    //Custom Code
    var CustomButton = screens.ActionButtonWidget.extend({
        template: 'CustomButton',
    
        button_click: function(){
    
        var self = this;
        self.custom_function();
    
        },
    
        custom_function: function(){
            console.log('Hi I am button click of CustomButton');
        }
    
    });
    
    screens.define_action_button({
        'name': 'custom_button',
        'widget': CustomButton,
    });
    
    
    
    
    });
    

    screenshot of the custom button in POS screen

    https://github.com/minaeid90/Custom-Button

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-30
      • 1970-01-01
      相关资源
      最近更新 更多