Hola chicos, estoy tratando de modificar la ventana de error que muestra odoo cuando ocurre un error para que solo muestre el botón ver detalles y copiar al portapapeles para grupos de usuarios específicos, traté de cambiar el archivo crash_manager.xml en el módulo web, pero los cambios se hicieron solo se puede ver cuando estoy en modo desarrollador en odoo, y no tengo un buen conocimiento de JavaScript para cambiar el archivo crash_manager.js, pero si me puede dar una idea de cómo lograrlo, me ayudará mucho.
Para parchear la clase crash_manager , deberá comprender cómo Odoo administra los activos .
Debe incluir el script en web.assets_backend que contiene el código específico del cliente web.
<template id="assets_backend" name="My assets" inherit_id="web.assets_backend"> <xpath expr="." position="inside"> <script type="text/javascript" src="/<Module name>/static/src/js/crash_manager.js"></script> </xpath> </template> En el siguiente código, definiremos una nueva visibility de atributo de widget que podemos usar más adelante en la plantilla para controlar la visibilidad de los botones:
odoo.define('<Module name>.CrashManager', function (require) { "use strict"; var ErrorDialog = require('web.CrashManager').ErrorDialog; var session = require('web.session'); ErrorDialog.include({ init: function (parent, options, error) { var self = this; this._super.apply(this, [parent, options, error]); // this.visibility = session.is_system?'visible': "hidden"; session.user_has_group('base.group_system').then(function(has_group){ self.visibility = has_group?'visible': "hidden"; }); }, }); }); Ocultar los botones Details y Copy hará que el mensaje quede obsoleto, por lo que deberá cambiarlo.
En el siguiente ejemplo, modificamos la plantilla CrashManager.error para definir un atributo de style para los botones Copy the full error to clipboard y See details :
<t t-extend="CrashManager.error"> <t t-jquery="div.float-right" t-operation="attributes"> <attribute name="t-att-style">'visibility: ' + widget.visibility</attribute> </t> <t t-jquery="button" t-operation="attributes"> <attribute name="t-att-style">'visibility: ' + widget.visibility</attribute> </t> </t>