[IMP] web_tree_many2one_clickable: Fix pre-commit + improve readme

This commit is contained in:
Carlos Roca
2023-01-16 08:23:21 +01:00
parent 7176c70877
commit 3b375c23e8
5 changed files with 86 additions and 75 deletions

View File

@@ -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;
}
}

View File

@@ -7,62 +7,62 @@
* License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
odoo.define("web_tree_many2one_clickable.many2one_clickable", function (require) {
"use strict";
"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 &&
this.state.fields[node.attrs.name] &&
this.state.fields[node.attrs.name].type === "many2one"
) {
// No explicit widget provided on a many2one field,
// force `many2one` widget
node.attrs.widget = "many2one";
}
return this._super(record, node, colIndex, options);
},
});
ListRenderer.include({
_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"
) {
// No explicit widget provided on a many2one field,
// force `many2one` widget
node.attrs.widget = "many2one";
}
return this._super(record, node, colIndex, options);
},
});
ListFieldMany2One.include({
_renderReadonly: function () {
this._super.apply(this, arguments);
var self = this;
ListFieldMany2One.include({
_renderReadonly: function () {
this._super.apply(this, arguments);
var self = this;
if (!this.noOpen && this.value) {
// Replace '<a>' element
this.$el.removeClass("o_form_uri");
this.$el = $("<span/>", {
html: this.$el.html(),
class: this.$el.attr("class") + " o_field_text",
name: this.$el.attr("name"),
});
if (!this.noOpen && this.value) {
// Replace '<a>' element
this.$el.removeClass("o_form_uri");
this.$el = $("<span/>", {
html: this.$el.html(),
class: this.$el.attr("class") + " o_field_text",
name: this.$el.attr("name"),
});
// Append button
var $a = $("<a/>", {
href: "#",
class: "o_form_uri btn btn-sm btn-secondary fa fa-angle-double-right",
}).on("click", function (ev) {
ev.preventDefault();
ev.stopPropagation();
// Append button
var $a = $("<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",
res_model: self.field.relation,
res_id: self.value.res_id,
views: [[false, "form"]],
target: "target",
context: self.record.getContext({
additionalContext: self.attrs.context || {},
}),
});
});
this.$el.append($a);
}
},
});
self.do_action({
type: "ir.actions.act_window",
res_model: self.field.relation,
res_id: self.value.res_id,
views: [[false, "form"]],
target: "target",
context: self.record.getContext({
additionalContext: self.attrs.context || {},
}),
});
});
this.$el.append($a);
}
},
});
});