Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ

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.

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
3
thg 7 24
13591
1
thg 7 17
2912
0
thg 3 15
4467
1
thg 5 25
770
0
thg 3 24
771