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

/** @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;
},
});