gpt4 book ai didi

javascript - Odoo 更改基本 JavaScript 方法

转载 作者:行者123 更新时间:2023-12-03 02:04:15 28 4
gpt4 key购买 nike

Odoo中有一个文件:addons/mail/static/src/js/chatter.js 。它包含一个我想更改的方法:message_get_suggested_recipients .

为此,我创建了一个带有文件的插件:

chatter.xml

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

chatter.js

odoo.define('addon1.chatter', function(require){
'use strict';

var OdooChatter = require('mail.Chatter');

OdooChatter.include({
message_get_suggested_recipients: function () {
var self = this;
var email_addresses = _.pluck(this.suggested_partners, 'email_address');
return this.thread_dataset
.call('message_get_suggested_recipients', [[this.context.default_res_id], this.context])
.done(function (suggested_recipients) {
var thread_recipients = suggested_recipients[self.context.default_res_id];
_.each(thread_recipients, function (recipient) {
var parsed_email = utils.parse_email(recipient[1]);
if (_.indexOf(email_addresses, parsed_email[1]) === -1) {
self.suggested_partners.push({
checked: recipient[3] || true,
partner_id: recipient[0],
full_name: recipient[1],
name: parsed_email[0],
email_address: parsed_email[1],
reason: recipient[2],
});
}
});
});
}
});
});

我可以看到 Odoo 网站打开时加载了 javascript,但是断点没有捕捉到正确的位置,这意味着加载的 javascript 无效。

由于未调用我提供的方法(而是调用原始方法),如何更改方法?

最佳答案

将 chatter.xml 文件修改为:

<template id="your_module.assets_backend" inherit_id="web.assets_backend" name="Your custome name">
<xpath expr="//script[@src='/mail/static/src/js/chatter.js']" position="after">
<script type="text/javascript" src="/addon1/static/src/js/chatter.js"></script>
</xpath>
</template>

这对于我在 Odoo 11 上的情况有效。对于您的情况 (Odoo 10),它也应该有效。

<小时/>

重新查看 Odoo 的源代码后,因为您想覆盖 message_get_suggested_recipients ,它是 mail.composer.BasicComposer 的支柱(而不是mail.Chatter)我认为你的include应该是:

var composer = require('mail.composer');

var ChatterComposer = composer.BasicComposer.include(
// This goes your work of message_get_suggested_recipients rewrite.
);

关于javascript - Odoo 更改基本 JavaScript 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49875355/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com