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

pull/3035/head
Carlos Roca 2023-01-16 08:23:21 +01:00
parent f31af38338
commit 513dec0dfd
6 changed files with 84 additions and 73 deletions

View File

@ -14,13 +14,13 @@ Clickable many2one fields for tree views
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3 :alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
:target: https://github.com/OCA/web/tree/14.0/web_tree_many2one_clickable :target: https://github.com/OCA/web/tree/15.0/web_tree_many2one_clickable
:alt: OCA/web :alt: OCA/web
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/web-14-0/web-14-0-web_tree_many2one_clickable :target: https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_tree_many2one_clickable
:alt: Translate me on Weblate :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/162/14.0 :target: https://runbot.odoo-community.org/runbot/162/15.0
:alt: Try me on Runbot :alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5| |badge1| |badge2| |badge3| |badge4| |badge5|
@ -39,12 +39,16 @@ Usage
Put the mouse pointer over a many2one cell and click the button. Put the mouse pointer over a many2one cell and click the button.
.. image:: https://raw.githubusercontent.com/OCA/web/14.0/web_tree_many2one_clickable/static/img/clickable.gif .. image:: https://raw.githubusercontent.com/OCA/web/15.0/web_tree_many2one_clickable/static/img/clickable.gif
Known issues / Roadmap Known issues / Roadmap
====================== ======================
This widget is currently not working on the product field in the lines tree of the sale order form, see https://github.com/OCA/web/pull/1438 for further details. This widget is currently not working on the product field in the lines tree of the
sale order form, see https://github.com/OCA/web/pull/1438 for further details.
To add this functionality to lines of sales, purchases and invoices, as they are
special views, is required a glue module that add this feature.
Bug Tracker Bug Tracker
=========== ===========
@ -52,7 +56,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_. Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
In case of trouble, please check there if your issue has already been reported. In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_tree_many2one_clickable%0Aversion:%2014.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. `feedback <https://github.com/OCA/web/issues/new?body=module:%20web_tree_many2one_clickable%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues. Do not contact contributors directly about support or help with technical issues.
@ -90,6 +94,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and mission is to support the collaborative development of Odoo features and
promote its widespread use. promote its widespread use.
This module is part of the `OCA/web <https://github.com/OCA/web/tree/14.0/web_tree_many2one_clickable>`_ project on GitHub. This module is part of the `OCA/web <https://github.com/OCA/web/tree/15.0/web_tree_many2one_clickable>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@ -3,7 +3,7 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 14.0\n" "Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"

View File

@ -1 +1,5 @@
This widget is currently not working on the product field in the lines tree of the sale order form, see https://github.com/OCA/web/pull/1438 for further details. This widget is currently not working on the product field in the lines tree of the
sale order form, see https://github.com/OCA/web/pull/1438 for further details.
To add this functionality to lines of sales, purchases and invoices, as they are
special views, is required a glue module that add this feature.

View File

@ -367,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !! !! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !! !! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/web/tree/14.0/web_tree_many2one_clickable"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/web-14-0/web-14-0-web_tree_many2one_clickable"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/162/14.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p> <p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/web/tree/15.0/web_tree_many2one_clickable"><img alt="OCA/web" src="https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/web-15-0/web-15-0-web_tree_many2one_clickable"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/162/15.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>This addon forces Odoo to use many2one widget on a many2one fields in <p>This addon forces Odoo to use many2one widget on a many2one fields in
tree views. This allows users to open linked resources from trees directly, tree views. This allows users to open linked resources from trees directly,
using a button without accessing the form.</p> using a button without accessing the form.</p>
@ -388,18 +388,21 @@ using a button without accessing the form.</p>
<div class="section" id="usage"> <div class="section" id="usage">
<h1><a class="toc-backref" href="#id1">Usage</a></h1> <h1><a class="toc-backref" href="#id1">Usage</a></h1>
<p>Put the mouse pointer over a many2one cell and click the button.</p> <p>Put the mouse pointer over a many2one cell and click the button.</p>
<img alt="https://raw.githubusercontent.com/OCA/web/14.0/web_tree_many2one_clickable/static/img/clickable.gif" src="https://raw.githubusercontent.com/OCA/web/14.0/web_tree_many2one_clickable/static/img/clickable.gif" /> <img alt="https://raw.githubusercontent.com/OCA/web/15.0/web_tree_many2one_clickable/static/img/clickable.gif" src="https://raw.githubusercontent.com/OCA/web/15.0/web_tree_many2one_clickable/static/img/clickable.gif" />
</div> </div>
<div class="section" id="known-issues-roadmap"> <div class="section" id="known-issues-roadmap">
<h1><a class="toc-backref" href="#id2">Known issues / Roadmap</a></h1> <h1><a class="toc-backref" href="#id2">Known issues / Roadmap</a></h1>
<p>This widget is currently not working on the product field in the lines tree of the sale order form, see <a class="reference external" href="https://github.com/OCA/web/pull/1438">https://github.com/OCA/web/pull/1438</a> for further details.</p> <p>This widget is currently not working on the product field in the lines tree of the
sale order form, see <a class="reference external" href="https://github.com/OCA/web/pull/1438">https://github.com/OCA/web/pull/1438</a> for further details.</p>
<p>To add this functionality to lines of sales, purchases and invoices, as they are
special views, is required a glue module that add this feature.</p>
</div> </div>
<div class="section" id="bug-tracker"> <div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#id3">Bug Tracker</a></h1> <h1><a class="toc-backref" href="#id3">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/web/issues">GitHub Issues</a>. <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/web/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported. In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed If you spotted it first, help us smashing it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_tree_many2one_clickable%0Aversion:%2014.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p> <a class="reference external" href="https://github.com/OCA/web/issues/new?body=module:%20web_tree_many2one_clickable%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p> <p>Do not contact contributors directly about support or help with technical issues.</p>
</div> </div>
<div class="section" id="credits"> <div class="section" id="credits">
@ -431,7 +434,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose <p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and mission is to support the collaborative development of Odoo features and
promote its widespread use.</p> promote its widespread use.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/web/tree/14.0/web_tree_many2one_clickable">OCA/web</a> project on GitHub.</p> <p>This module is part of the <a class="reference external" href="https://github.com/OCA/web/tree/15.0/web_tree_many2one_clickable">OCA/web</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p> <p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div> </div>
</div> </div>

View File

@ -1,10 +1,10 @@
td.o_many2one_cell { td.o_many2one_cell {
a { a {
margin-left: 0.5em; margin-left: 0.5em;
visibility: hidden; visibility: hidden;
} }
&:hover a { &:hover a {
visibility: visible; visibility: visible;
} }
} }

View File

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