Skip to Content
Menu
This question has been flagged

Hello, I've been working on an invoicing module. I have different actions set up for invoices: Reject, Approve with notes, Re-submit and Delete. Each action prompts a wizard window open where a manager can leave a reason for the action. I have these fields set up in form view: Rejection reason field, Approved w/notes field, Re-submit notes field and Delete notes field, where you can see the notes left with the reasoning for different action taken.

I created a button in tree view, called "notes" button. This button, upon a click, will open a pop up window while still in the tree view, where others can see the notes that were submitted by managers. I created a button and I'm able to click it. But I get an error when the button is clicked. 

I build the button action with JavaScript.
This is my JS code:

odoo.define('AP.notes_popup', function (require) {
"use strict";

var core = require('web.core');    
var Dialog = require('web.Dialog');    
var AbstractAction = require('web.AbstractAction');    
var rpc = require('web.rpc');
var DisplayNotesPopup = AbstractAction.extend({        
init: function (parent, context) {

this._super(parent, context);            

this.dialog = null;  },
willStart: function () {

return this._super(); },
start: function () {            

var self = this;
rpc.query({ 

model: 'vendor.bill',                 

method: 'action_show_notes',    

 args: [this.context.active_id],            

 }).then(function (result) {               

 var content = "

" + result.notes + "
";
self.dialog = new Dialog(self, {                    

title: "Notes",    size: 'large', $content: content,

 buttons: [{ text: "Close", close: true }], });
 self.dialog.open().on("closed", self, 

function () {                    

self.trigger_up('history_back'); 

}); });
return this._super(); 

}, });

core.action_registry.add('display_notes_popup', DisplayNotesPopup);
return DisplayNotesPopup;});




This is  the relevant part from my python code:

def action_show_notes(self):        

self.ensure_one()        

context = self.env.context.copy()        

context['active_id'] = self.id          

return {           

'name': 'Notes',            

'type': 'ir.actions.client',           

'tag': 'display_notes_popup',            

'target': 'new',            

'context': context, 
}




I get this error upon a click:
Uncaught Promise > The following error occurred in onWillStart: "Cannot read properties of undefined (reading 'active_id')"

OwlError: The following error occurred in onWillStart: "Cannot read properties of undefined (reading 'active_id')"

    at wrapError (https://dev\-p2p\.itac\-net\.com/web/assets/2281\-b82364b/web\.assets_common\.min\.js:1485:77\)

 \  \ at\ onWillStart\ \(https://dev\-p2p\.itac\-net\.com/web/assets/2281\-b82364b/web\.assets_common\.min\.js:1491:117\)

 \  \ at\ ClientActionAdapter\.setup\ \(https://dev\-p2p\.itac\-net\.com/web/assets/2695\-8e3fe76/web\.assets_backend\.min\.js:9092:401\)

 \  \ at\ ClientActionAdapter\.setup\ \(https://dev\-p2p\.itac\-net\.com/web/assets/2695\-8e3fe76/web\.assets_backend\.min\.js:6546:105\)

 \  \ at\ ClientActionAdapter\.setup\ \(https://dev\-p2p\.itac\-net\.com/web/assets/2695\-8e3fe76/web\.assets_backend\.min\.js:6560:119\)

 \  \ at\ new\ ComponentNode\ \(https://dev\-p2p\.itac\-net\.com/web/assets/2281\-b82364b/web\.assets_common\.min\.js:1446:202\)

 \  \ at\ https://dev\-p2p\.itac\-net\.com/web/assets/2281\-b82364b/web\.assets_common\.min\.js:1973:6

 \  \ at\ Action\.template\ \(eval\ at\ compile\ \(https://dev\-p2p\.itac\-net\.com/web/assets/2281\-b82364b/web\.assets_common\.min\.js:1938:370\),\ :10:12\)

 \  \ at\ Fiber\._render\ \(https://dev\-p2p\.itac\-net\.com/web/assets/2281\-b82364b/web\.assets_common\.min\.js:1384:96\)

 \  \ at\ Fiber\.render\ \(https://dev\-p2p\.itac\-net\.com/web/assets/2281\-b82364b/web\.assets_common\.min\.js:1383:6\)



Caused\ by:\ TypeError:\ Cannot\ read\ properties\ of\ undefined\ \(reading\ 'active_id'\)

 \  \ at\ Class\.start\ \(https://dev\-p2p\.itac\-net\.com/web/assets/2695\-8e3fe76/web\.assets_backend\.min\.js:14475:473\)

 \  \ at\ prototype\.\ \[as\ start\]\ \(https://dev\-p2p\.itac\-net\.com/web/assets/2281\-b82364b/web\.assets_common\.min\.js:5642:488\)

 \  \ at\ https://dev-p2p.itac-net.com/web/assets/2281-b82364b/web.assets_common.min.js:5982:52 


I'm new to implementing JS with Odoo environment and I'm not sure how to proceed at this point. 
Thank you for your help.

Avatar
Discard
Related Posts Replies Views Activity
3
Jul 24
13411
1
Jul 17
2799
0
Mar 15
4341
1
May 25
568
0
Mar 24
664