mirror of https://github.com/OCA/web.git
[IMP] web_listview_range_select: black, isort, prettier
parent
72aaf5909f
commit
d6a5c32924
|
@ -0,0 +1 @@
|
|||
../../../../web_listview_range_select
|
|
@ -0,0 +1,6 @@
|
|||
import setuptools
|
||||
|
||||
setuptools.setup(
|
||||
setup_requires=['setuptools-odoo'],
|
||||
odoo_addon=True,
|
||||
)
|
|
@ -2,21 +2,17 @@
|
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
{
|
||||
'name': 'List Range Selection',
|
||||
'summary': """
|
||||
"name": "List Range Selection",
|
||||
"summary": """
|
||||
Enables selecting a range of records using the shift key
|
||||
""",
|
||||
'version': '12.0.1.0.0',
|
||||
'category': 'Web',
|
||||
'author': 'Onestein,Odoo Community Association (OCA)',
|
||||
'website': 'https://github.com/oca/web',
|
||||
'license': 'AGPL-3',
|
||||
'depends': [
|
||||
'web',
|
||||
],
|
||||
'data': [
|
||||
'templates/assets.xml'
|
||||
],
|
||||
'installable': True,
|
||||
'application': False,
|
||||
"version": "12.0.1.0.0",
|
||||
"category": "Web",
|
||||
"author": "Onestein,Odoo Community Association (OCA)",
|
||||
"website": "https://github.com/oca/web",
|
||||
"license": "AGPL-3",
|
||||
"depends": ["web",],
|
||||
"data": ["templates/assets.xml"],
|
||||
"installable": True,
|
||||
"application": False,
|
||||
}
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
/* Copyright 2017 Onestein
|
||||
* License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). */
|
||||
|
||||
odoo.define('web_listview_range_select', function (require) {
|
||||
odoo.define("web_listview_range_select", function(require) {
|
||||
"use strict";
|
||||
|
||||
var ListRenderer = require('web.ListRenderer');
|
||||
var ListRenderer = require("web.ListRenderer");
|
||||
|
||||
ListRenderer.include({
|
||||
_range_history: [],
|
||||
|
||||
_render: function() {
|
||||
var res = this._super.apply(this, arguments);
|
||||
this.$table = this.$el.find('.o_list_view');
|
||||
this.$table = this.$el.find(".o_list_view");
|
||||
return res;
|
||||
},
|
||||
|
||||
|
@ -22,10 +22,12 @@ odoo.define('web_listview_range_select', function (require) {
|
|||
var start = null,
|
||||
end = null;
|
||||
|
||||
this.$el.find('td.o_list_record_selector input').each(function (i, el) {
|
||||
var id = $(el).closest('tr').data('id');
|
||||
this.$el.find("td.o_list_record_selector input").each(function(i, el) {
|
||||
var id = $(el)
|
||||
.closest("tr")
|
||||
.data("id");
|
||||
var checked = self._range_history.indexOf(id) !== -1;
|
||||
if (checked && $(el).is(':checked')) {
|
||||
if (checked && $(el).is(":checked")) {
|
||||
if (start == null) {
|
||||
start = i;
|
||||
} else {
|
||||
|
@ -42,8 +44,11 @@ odoo.define('web_listview_range_select', function (require) {
|
|||
|
||||
_getSelectionByRange: function(start, end) {
|
||||
var result = [];
|
||||
this.$el.find('td.o_list_record_selector input').closest('tr').each(function (i, el) {
|
||||
var record_id = $(el).data('id');
|
||||
this.$el
|
||||
.find("td.o_list_record_selector input")
|
||||
.closest("tr")
|
||||
.each(function(i, el) {
|
||||
var record_id = $(el).data("id");
|
||||
if (start != null && end != null && i >= start && i <= end) {
|
||||
result.push(record_id);
|
||||
} else if (start != null && end == null && start == i) {
|
||||
|
@ -71,22 +76,26 @@ odoo.define('web_listview_range_select', function (require) {
|
|||
|
||||
// Firefox shift click fix
|
||||
if (/firefox/i.test(navigator.userAgent) && event.shiftKey) {
|
||||
el.find('input').prop('checked', !el.find('input').prop('checked'));
|
||||
el.find("input").prop("checked", !el.find("input").prop("checked"));
|
||||
}
|
||||
|
||||
if (el.find('input').prop('checked')) {
|
||||
this._pushRangeHistory(el.closest('tr').data('id'));
|
||||
if (el.find("input").prop("checked")) {
|
||||
this._pushRangeHistory(el.closest("tr").data("id"));
|
||||
}
|
||||
|
||||
if (event.shiftKey) {
|
||||
// Get selection
|
||||
var selection = this._getRangeSelection();
|
||||
var $rows = this.$el.find('td.o_list_record_selector input').closest('tr');
|
||||
var $rows = this.$el
|
||||
.find("td.o_list_record_selector input")
|
||||
.closest("tr");
|
||||
$rows.each(function() {
|
||||
// Check input visual
|
||||
var record_id = $(this).data('id');
|
||||
var record_id = $(this).data("id");
|
||||
if (selection.indexOf(record_id) !== -1) {
|
||||
$(this).find('td.o_list_record_selector input').prop('checked', true);
|
||||
$(this)
|
||||
.find("td.o_list_record_selector input")
|
||||
.prop("checked", true);
|
||||
}
|
||||
});
|
||||
// Update selection internally
|
||||
|
@ -94,6 +103,6 @@ odoo.define('web_listview_range_select', function (require) {
|
|||
this._deselectTable();
|
||||
}
|
||||
return res;
|
||||
}
|
||||
},
|
||||
});
|
||||
});
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!-- Copyright 2017 Onestein
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
||||
|
||||
<odoo>
|
||||
<template id="assets_backend" inherit_id="web.assets_backend">
|
||||
<xpath expr=".">
|
||||
<script type="text/javascript"
|
||||
src="/web_listview_range_select/static/src/js/web_listview_range_select.js"/>
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="/web_listview_range_select/static/src/js/web_listview_range_select.js"
|
||||
/>
|
||||
</xpath>
|
||||
</template>
|
||||
</odoo>
|
||||
|
|
Loading…
Reference in New Issue