2017-02-02 12 views
2

Я пытаюсь добавить кнопку на экран POS. Большая часть информации, которую я имею для этого, связана с Odoo 8, и это, вероятно, почему она не работает. Я установил пользовательский аддон без каких-либо ошибок, но я не вижу кнопку. Я также не ошибаюсь при запуске POS. В 8-й версии есть widgets.js файл, который включает в себяOdoo 10 add button to POS

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

Там нет widgets.js в версии 10, и я предполагаю, что это то, где моя проблема. Это просто предположение, что я действительно не знаю, как добавить кнопку в 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> 

манифеста .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, 


} 

ответ

1

Для конкретного примера о том, как это можно сделать, отметьте addons/pos_discount/static/src/js/discount.js. Вы можете видеть здесь, что на одном из экранов Odoo POS добавлена ​​кнопка с меткой Discount. Проверьте весь модуль, так что в основном это добавляет кнопки на кнопки действий в POS (прикрепляя скриншоте)

enter image description here

Также проверьте шаблон на addons/pos_discount/static/src/xml/discount_templates.xml для расположения кнопки.

0

Может быть, вы должны изменить ваши коды

id="assets_backend" в id="assets"&

inherit_id="web.assets_backend" в inherit_id="point_of_sale.assets"