2017-10-26 1 views
1

Ich versuche, ein JavaScript-Ereignis auf eine Kopfschaltfläche (die Workflow-Schaltfläche) ausgelöst haben.JavaScript-Ereignis auf Odoos Header-Schaltfläche

Das ist mein js

var _t = instance.web._t, QWeb = instance.web.qweb; 

    instance.web.FormView.include({ 

     init: function() { 
      this._super.apply(this, arguments); 
     }, 

     events: { 
      "click .resume_consultation": "resume_consultation", 
     }, 

     resume_consultation : function(ev) { 
      ev.preventDefault(); 
      ev.stopPropagation(); 

     } 

    }) 

Die xml für Taste

<header> 
    <button type="object" class="resume_consultation" 
     name="testonly" 
     string="Test Only"/> 
</header> 

Die Python

@api.multi 
def testonly(self): 
    return False 

Die Veranstaltung nicht genannt wird. Aber ich weiß, dass die init aus der FormView ausgeführt wird. Es ist nur, dass das Ereignis nicht ist.

Wer weiß, wie man es für die Workflow-Schaltflächen macht?

+0

Prüfen Sie zuerst, ob Ihr Event mit Ihrem Element verbunden wird oder nicht. –

Antwort

0

allererst fügen Sie Ihre js Datei folgenden Code:

odoo.define('Modulename.filename', function (require) { 
"use strict"; 

var form_widget = require('web.form_widgets'); 
var core = require('web.core'); 
var _t = core._t; 
var QWeb = core.qweb; 

form_widget.WidgetButton.include({ 
    on_click: function() { 
     if(this.node.attrs.custom === "click"){ 
      //code// 
     } 
     this._super(); 
    }, 
}); 
}); 

danach Ihre js Datei in xml hinzufügen:

<?xml version="1.0" encoding="utf-8"?> <odoo> 
     <template id="assets_backend" name="project assets" inherit_id="web.assets_backend"> 
      <xpath expr="." position="inside"> 
         <script type="text/javascript" src="/product_pack/static/src/js/product_pack.js"></script> 
      </xpath> 
     </template> </odoo> 

ather, die Ihre Click-Ereignis-Funktion in Ihrer py-Datei definieren

class SalePetOrder(models.Model): 
    _inherit = "xyz" 

    def java_script(self): 
     return {"hello": "world"} 

nach definieren Sie Ihre Funktion in Ihrem xml:

<data> 
    <header> 
    <button name="java_script" string="Java Script" type="object" custom="click"/> 
    </header> 
</data> 

und ja Ihre js Datei und xml-Datei in Ihrer Manifest/OpenERP Datei definieren.

Ich hoffe, es hilft Ihnen.

+0

Von Ihrem Javascript Ich rate das ist für odoo 10? Weil odoo 8 immer noch openerp als Bezeichner verwendet. –