diff --git a/web_tree_many2one_clickable/static/src/css/web_tree_many2one_clickable.scss b/web_tree_many2one_clickable/static/src/css/web_tree_many2one_clickable.scss index de3216d00..67d2e41a1 100644 --- a/web_tree_many2one_clickable/static/src/css/web_tree_many2one_clickable.scss +++ b/web_tree_many2one_clickable/static/src/css/web_tree_many2one_clickable.scss @@ -1,10 +1,10 @@ td.o_many2one_cell { - a { - margin-left: 0.5em; - visibility: hidden; - } + a { + margin-left: 0.5em; + visibility: hidden; + } - &:hover a { - visibility: visible; - } + &:hover a { + visibility: visible; + } } diff --git a/web_tree_many2one_clickable/static/src/js/web_tree_many2one_clickable.js b/web_tree_many2one_clickable/static/src/js/web_tree_many2one_clickable.js index cbf68a4a0..0bfe7d70b 100644 --- a/web_tree_many2one_clickable/static/src/js/web_tree_many2one_clickable.js +++ b/web_tree_many2one_clickable/static/src/js/web_tree_many2one_clickable.js @@ -6,54 +6,58 @@ * Copyright 2019 Alexandre Díaz * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */ -odoo.define('web_tree_many2one_clickable.many2one_clickable', function (require) { - 'use strict'; +odoo.define("web_tree_many2one_clickable.many2one_clickable", function(require) { + "use strict"; - var ListRenderer = require('web.ListRenderer'); - var ListFieldMany2One = require('web.relational_fields').ListFieldMany2One; + var ListRenderer = require("web.ListRenderer"); + var ListFieldMany2One = require("web.relational_fields").ListFieldMany2One; ListRenderer.include({ - _renderBodyCell: function (record, node, colIndex, options) { - if (!node.attrs.widget && node.attrs.name && + _renderBodyCell: function(record, node, colIndex, options) { + if ( + !node.attrs.widget && + node.attrs.name && this.state.fields[node.attrs.name] && - this.state.fields[node.attrs.name].type === 'many2one') { + this.state.fields[node.attrs.name].type === "many2one" + ) { // No explicit widget provided on a many2one field, // force `many2one` widget - node.attrs.widget = 'many2one'; + node.attrs.widget = "many2one"; } return this._super(record, node, colIndex, options); }, }); ListFieldMany2One.include({ - _renderReadonly: function () { + _renderReadonly: function() { this._super.apply(this, arguments); var self = this; if (!this.noOpen && this.value) { // Replace '' element - this.$el.removeClass('o_form_uri'); - this.$el = $('', { + this.$el.removeClass("o_form_uri"); + this.$el = $("", { html: this.$el.html(), - class: this.$el.attr('class') + ' o_field_text', - name: this.$el.attr('name'), + class: this.$el.attr("class") + " o_field_text", + name: this.$el.attr("name"), }); // Append button - var $a = $('', { - href: '#', - class: 'o_form_uri btn btn-sm btn-secondary' + - ' fa fa-angle-double-right', - }).on('click', function (ev) { + var $a = $("", { + href: "#", + class: + "o_form_uri btn btn-sm btn-secondary" + + " fa fa-angle-double-right", + }).on("click", function(ev) { ev.preventDefault(); ev.stopPropagation(); self.do_action({ - type: 'ir.actions.act_window', + type: "ir.actions.act_window", res_model: self.field.relation, res_id: self.value.res_id, - views: [[false, 'form']], - target: 'target', + views: [[false, "form"]], + target: "target", }); }); this.$el.append($a); diff --git a/web_tree_many2one_clickable/views/assets.xml b/web_tree_many2one_clickable/views/assets.xml index cbb3a7876..a585eacc3 100644 --- a/web_tree_many2one_clickable/views/assets.xml +++ b/web_tree_many2one_clickable/views/assets.xml @@ -1,16 +1,23 @@ - + -