[MIG] web_listview_range_select: Migration to 13.0

pull/1741/head
Ernesto Tejeda 2020-11-19 09:53:24 -05:00
parent d6a5c32924
commit bcc3a365ce
6 changed files with 46 additions and 27 deletions

View File

@ -14,13 +14,13 @@ List Range Selection
: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/12.0/web_listview_range_select :target: https://github.com/OCA/web/tree/13.0/web_listview_range_select
: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-12-0/web-12-0-web_listview_range_select :target: https://translation.odoo-community.org/projects/web-13-0/web-13-0-web_listview_range_select
: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/12.0 :target: https://runbot.odoo-community.org/runbot/162/13.0
:alt: Try me on Runbot :alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5| |badge1| |badge2| |badge3| |badge4| |badge5|
@ -37,9 +37,10 @@ Usage
To use this module, you need to: To use this module, you need to:
#. click a record; #. Go to some list view.
#. hold shift and click another record; #. Click a record.
#. you can repeat this operation as many times as you want. #. Hold shift and click another record.
#. You can repeat this operation as many times as you want.
Known issues / Roadmap Known issues / Roadmap
====================== ======================
@ -54,7 +55,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_listview_range_select%0Aversion:%2012.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_listview_range_select%0Aversion:%2013.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.
@ -71,6 +72,9 @@ Contributors
* Dennis Sluijk <d.sluijk@onestein.nl> * Dennis Sluijk <d.sluijk@onestein.nl>
* Aldo Soares <soares_aldo@hotmail.com> * Aldo Soares <soares_aldo@hotmail.com>
* `Tecnativa <https://www.tecnativa.com>`_:
* Ernesto Tejeda
Maintainers Maintainers
~~~~~~~~~~~ ~~~~~~~~~~~
@ -85,6 +89,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/12.0/web_listview_range_select>`_ project on GitHub. This module is part of the `OCA/web <https://github.com/OCA/web/tree/13.0/web_listview_range_select>`_ 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

@ -6,12 +6,12 @@
"summary": """ "summary": """
Enables selecting a range of records using the shift key Enables selecting a range of records using the shift key
""", """,
"version": "12.0.1.0.0", "version": "13.0.1.0.0",
"category": "Web", "category": "Web",
"author": "Onestein,Odoo Community Association (OCA)", "author": "Onestein, Odoo Community Association (OCA)",
"website": "https://github.com/oca/web", "website": "https://github.com/oca/web",
"license": "AGPL-3", "license": "AGPL-3",
"depends": ["web",], "depends": ["web"],
"data": ["templates/assets.xml"], "data": ["templates/assets.xml"],
"installable": True, "installable": True,
"application": False, "application": False,

View File

@ -1,2 +1,5 @@
* Dennis Sluijk <d.sluijk@onestein.nl> * Dennis Sluijk <d.sluijk@onestein.nl>
* Aldo Soares <soares_aldo@hotmail.com> * Aldo Soares <soares_aldo@hotmail.com>
* `Tecnativa <https://www.tecnativa.com>`_:
* Ernesto Tejeda

View File

@ -1,5 +1,6 @@
To use this module, you need to: To use this module, you need to:
#. click a record; #. Go to some list view.
#. hold shift and click another record; #. Click a record.
#. you can repeat this operation as many times as you want. #. Hold shift and click another record.
#. You can repeat this operation as many times as you want.

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/12.0/web_listview_range_select"><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-12-0/web-12-0-web_listview_range_select"><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/12.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/13.0/web_listview_range_select"><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-13-0/web-13-0-web_listview_range_select"><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/13.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>Enables selecting a range of records using the shift key.</p> <p>Enables selecting a range of records using the shift key.</p>
<p><strong>Table of contents</strong></p> <p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents"> <div class="contents local topic" id="contents">
@ -387,9 +387,10 @@ ul.auto-toc {
<h1><a class="toc-backref" href="#id1">Usage</a></h1> <h1><a class="toc-backref" href="#id1">Usage</a></h1>
<p>To use this module, you need to:</p> <p>To use this module, you need to:</p>
<ol class="arabic simple"> <ol class="arabic simple">
<li>click a record;</li> <li>Go to some list view.</li>
<li>hold shift and click another record;</li> <li>Click a record.</li>
<li>you can repeat this operation as many times as you want.</li> <li>Hold shift and click another record.</li>
<li>You can repeat this operation as many times as you want.</li>
</ol> </ol>
</div> </div>
<div class="section" id="known-issues-roadmap"> <div class="section" id="known-issues-roadmap">
@ -405,7 +406,7 @@ ul.auto-toc {
<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_listview_range_select%0Aversion:%2012.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_listview_range_select%0Aversion:%2013.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">
@ -421,6 +422,10 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
<ul class="simple"> <ul class="simple">
<li>Dennis Sluijk &lt;<a class="reference external" href="mailto:d.sluijk&#64;onestein.nl">d.sluijk&#64;onestein.nl</a>&gt;</li> <li>Dennis Sluijk &lt;<a class="reference external" href="mailto:d.sluijk&#64;onestein.nl">d.sluijk&#64;onestein.nl</a>&gt;</li>
<li>Aldo Soares &lt;<a class="reference external" href="mailto:soares_aldo&#64;hotmail.com">soares_aldo&#64;hotmail.com</a>&gt;</li> <li>Aldo Soares &lt;<a class="reference external" href="mailto:soares_aldo&#64;hotmail.com">soares_aldo&#64;hotmail.com</a>&gt;</li>
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
<li>Ernesto Tejeda</li>
</ul>
</li>
</ul> </ul>
</div> </div>
<div class="section" id="maintainers"> <div class="section" id="maintainers">
@ -430,7 +435,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/12.0/web_listview_range_select">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/13.0/web_listview_range_select">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

@ -7,6 +7,15 @@ odoo.define("web_listview_range_select", function(require) {
var ListRenderer = require("web.ListRenderer"); var ListRenderer = require("web.ListRenderer");
ListRenderer.include({ ListRenderer.include({
/*
I extend 'events' because in v13 Odoo catches 'change' event instead
of the 'click' event for the selector .o_list_record_selector ",
so shift + [click] is not caught.
https://github.com/OCA/OCB/blob/13.0/addons/web/static/src/js/views/list/list_renderer.js#L42:L42
*/
events: _.extend({}, ListRenderer.prototype.events, {
"click tbody .o_list_record_selector": "_onClickSelectRecord",
}),
_range_history: [], _range_history: [],
_render: function() { _render: function() {
@ -17,7 +26,6 @@ odoo.define("web_listview_range_select", function(require) {
_getRangeSelection: function() { _getRangeSelection: function() {
var self = this; var self = this;
// Get start and end // Get start and end
var start = null, var start = null,
end = null; end = null;
@ -28,7 +36,7 @@ odoo.define("web_listview_range_select", function(require) {
.data("id"); .data("id");
var checked = self._range_history.indexOf(id) !== -1; var checked = self._range_history.indexOf(id) !== -1;
if (checked && $(el).is(":checked")) { if (checked && $(el).is(":checked")) {
if (start == null) { if (start === null) {
start = i; start = i;
} else { } else {
end = i; end = i;
@ -49,9 +57,9 @@ odoo.define("web_listview_range_select", function(require) {
.closest("tr") .closest("tr")
.each(function(i, el) { .each(function(i, el) {
var record_id = $(el).data("id"); var record_id = $(el).data("id");
if (start != null && end != null && i >= start && i <= end) { if (start !== null && end !== null && i >= start && i <= end) {
result.push(record_id); result.push(record_id);
} else if (start != null && end == null && start == i) { } else if (start !== null && end === null && start === i) {
result.push(record_id); result.push(record_id);
} }
}); });
@ -70,9 +78,8 @@ odoo.define("web_listview_range_select", function(require) {
window.getSelection().removeAllRanges(); window.getSelection().removeAllRanges();
}, },
_onSelectRecord: function(event) { _onClickSelectRecord: function(event) {
var el = $(event.currentTarget); var el = $(event.currentTarget);
var res = this._super(event);
// Firefox shift click fix // Firefox shift click fix
if (/firefox/i.test(navigator.userAgent) && event.shiftKey) { if (/firefox/i.test(navigator.userAgent) && event.shiftKey) {
@ -102,7 +109,6 @@ odoo.define("web_listview_range_select", function(require) {
this._updateSelection(); this._updateSelection();
this._deselectTable(); this._deselectTable();
} }
return res;
}, },
}); });
}); });