Skip to Content
Menu
This question has been flagged
3 Replies
5603 Views

In Odoo 15 below, this bellow code works properly:


odoo.define('module_name.print_button', function(require){
"use strict";

var FormController = require('web.FormController');

FormController.include({
_onButtonClicked: function(event){
console.log(event);

if(event.data.attrs.custom == "print"){
var printer_data = event.data.record.data.printer_data;
if (!printer_data){
alert('No printer data! Please click the Refresh Printer Data button');
return;
}
console.log(printer_data);

var url = "http://localhost:8000/dotmatrix/print";
$.ajax({
type:"POST",
url: url,
data: {
printer_data: printer_data
},
success: function(data){
alert('Print successfull!');
},
error: function(data){
alert('Dotmatrix print failed! Is Proxy Running ?')
console.log(data);
}
});
}

this._super(event);
}
});
});

In Odoo15 and below, the code will send a javascript event on the browser console.


But on Odoo 16, the code above is not readable by Odoo, any code that I enter doesn't show results in the browser console.

e.g. If I create to like this:


FormController.include({
_onButtonClicked: function(event){
console.log('test 123);


The console.log('test 123'); result doesn't appear on the web browser console.


So, what is the conversation of the code in Odoo16, especially in FormController and _onButtonClicked.


Any help, source, or tutorial on how to code the above in Odoo16 will be very appreciated.


Thanks,

Tri

Avatar
Discard

@Tri Nanda

any update?

Author

I haven't find the solution @Bhavin

Best Answer

Hi,

In odoo 16 the FormController is written using OWL framework. so if you have to modify it you have to use the patch function.

/** @odoo-module */

import { patch } from "@web/core/utils/patch";

import FormController from "web.FormController";

patch(FormController.prototype, "file_path or something unique", {
// Here you can add your functions here
})

The _onButtonClicked function is no longer available.

Regards

Avatar
Discard

Thank, but I have a button , with event.data.attrs.custom == "print" how this can work, in every button that has this custom. to being called.

Author

Hi Jeffry, do you already found the solution?

Best Answer

Solution please, i haven't find the solution too :(


Avatar
Discard
Best Answer

No I still struggling......

Avatar
Discard
Related Posts Replies Views Activity
2
Jul 23
3021
1
Jun 24
2046
1
Jun 24
1350
0
Jan 24
952
1
Apr 24
1338