You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.9 KiB
59 lines
1.9 KiB
/** @odoo-module */
|
|
import {
|
|
FormArchParser
|
|
} from "@web/views/form/form_arch_parser";
|
|
import {
|
|
patch
|
|
} from "@web/core/utils/patch";
|
|
import {
|
|
archParseBoolean
|
|
} from "@web/views/utils";
|
|
var rpc = require('web.rpc');
|
|
|
|
patch(FormArchParser.prototype, "parse", {
|
|
/**
|
|
* Patched version of the 'parse' method in 'FormArchParser'.
|
|
* Modifies the parsing behavior by removing the chatter node from the XML if the model is configured to hide the chatter.
|
|
*
|
|
* @param {string} arch - The XML architecture to parse.
|
|
* @param {Object} models - The model definitions.
|
|
* @param {string} modelName - The name of the model being parsed.
|
|
* @returns {Object} - The parsed result.
|
|
*/
|
|
parse(arch, models, modelName) {
|
|
const parsedResult = this._super.apply(this, arguments);
|
|
rpc.query({
|
|
model: "ir.model",
|
|
method: "search",
|
|
args: [
|
|
[
|
|
["model", "=", modelName]
|
|
]
|
|
],
|
|
kwargs: {
|
|
limit: 1
|
|
},
|
|
}).then((result) => {
|
|
const resModelId = result;
|
|
rpc.query({
|
|
model: "ir.config_parameter",
|
|
method: "get_param",
|
|
args: ["chatter_enable.model_ids"],
|
|
}).then((result) => {
|
|
const modelIds = JSON.parse(result);
|
|
if (modelIds){
|
|
if (modelIds.includes(resModelId[0])) {
|
|
const {
|
|
xmlDoc
|
|
} = parsedResult;
|
|
const chatterNode = xmlDoc.querySelector("div.oe_chatter");
|
|
if (chatterNode && chatterNode.parentElement) {
|
|
chatterNode.parentElement.removeChild(chatterNode);
|
|
}
|
|
}
|
|
}
|
|
})
|
|
})
|
|
return parsedResult;
|
|
},
|
|
});
|
|
|