From 01fbf68de8a9d7d8cb9516d0d7dec6b1d4198ede Mon Sep 17 00:00:00 2001 From: Carlos Roca Date: Mon, 25 Jan 2021 08:57:03 +0100 Subject: [PATCH] [IMP] web_widget_numeric_step: black, isort, prettier --- web_widget_numeric_step/__manifest__.py | 31 ++-- .../demo/res_users_view.xml | 9 +- .../static/src/js/numeric_step.js | 139 ++++++++++-------- .../static/src/xml/numeric_step.xml | 30 ++-- web_widget_numeric_step/view/assets.xml | 14 +- 5 files changed, 125 insertions(+), 98 deletions(-) diff --git a/web_widget_numeric_step/__manifest__.py b/web_widget_numeric_step/__manifest__.py index 88552ec1f..9ec7a8ba2 100644 --- a/web_widget_numeric_step/__manifest__.py +++ b/web_widget_numeric_step/__manifest__.py @@ -3,23 +3,16 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) { - 'name': "Web Widget Numeric Step", - 'category': "web", - 'version': "12.0.1.2.0", - 'author': "GRAP, Tecnativa, " - "Odoo Community Association (OCA)", - 'license': 'AGPL-3', - 'website': 'https://github.com/OCA/web', - 'depends': ['web'], - 'data': [ - 'view/assets.xml' - ], - 'qweb': [ - 'static/src/xml/numeric_step.xml', - ], - 'demo': [ - 'demo/res_users_view.xml' - ], - 'auto_install': False, - 'installable': True, + "name": "Web Widget Numeric Step", + "category": "web", + "version": "12.0.1.2.0", + "author": "GRAP, Tecnativa, " "Odoo Community Association (OCA)", + "license": "AGPL-3", + "website": "https://github.com/OCA/web", + "depends": ["web"], + "data": ["view/assets.xml"], + "qweb": ["static/src/xml/numeric_step.xml",], + "demo": ["demo/res_users_view.xml"], + "auto_install": False, + "installable": True, } diff --git a/web_widget_numeric_step/demo/res_users_view.xml b/web_widget_numeric_step/demo/res_users_view.xml index 521affed0..c57e1c7a9 100644 --- a/web_widget_numeric_step/demo/res_users_view.xml +++ b/web_widget_numeric_step/demo/res_users_view.xml @@ -1,15 +1,18 @@ - res.users - + - + diff --git a/web_widget_numeric_step/static/src/js/numeric_step.js b/web_widget_numeric_step/static/src/js/numeric_step.js index 398de554f..a3cd48332 100644 --- a/web_widget_numeric_step/static/src/js/numeric_step.js +++ b/web_widget_numeric_step/static/src/js/numeric_step.js @@ -2,28 +2,27 @@ * Copyright 2020 Tecnativa - Alexandre Díaz * License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) */ -odoo.define('web_widget_numeric_step.field', function (require) { +odoo.define("web_widget_numeric_step.field", function(require) { "use strict"; - var field_utils = require('web.field_utils'); - var Registry = require('web.field_registry'); - var FieldFloat = require('web.basic_fields').FieldFloat; - + var field_utils = require("web.field_utils"); + var Registry = require("web.field_registry"); + var FieldFloat = require("web.basic_fields").FieldFloat; var NumericStep = FieldFloat.extend({ - template: 'web_widget_numeric_step', - className: 'o_field_numeric_step o_field_number', - events: _.extend({}, _.omit(FieldFloat.prototype.events, ['change', 'input']), { - 'mousedown .btn_numeric_step': '_onStepMouseDown', - 'touchstart .btn_numeric_step': '_onStepMouseDown', - 'click .btn_numeric_step': '_onStepClick', - 'wheel .input_numeric_step': '_onWheel', - 'keydown .input_numeric_step': '_onKeyDown', - 'change .input_numeric_step': '_onChange', - 'input .input_numeric_step': '_onInput', - 'onfocusout .widget_numeric_step': '_onFocusOut', + template: "web_widget_numeric_step", + className: "o_field_numeric_step o_field_number", + events: _.extend({}, _.omit(FieldFloat.prototype.events, ["change", "input"]), { + "mousedown .btn_numeric_step": "_onStepMouseDown", + "touchstart .btn_numeric_step": "_onStepMouseDown", + "click .btn_numeric_step": "_onStepClick", + "wheel .input_numeric_step": "_onWheel", + "keydown .input_numeric_step": "_onKeyDown", + "change .input_numeric_step": "_onChange", + "input .input_numeric_step": "_onInput", + "onfocusout .widget_numeric_step": "_onFocusOut", }), - supportedFieldTypes: ['float', 'integer'], + supportedFieldTypes: ["float", "integer"], // Values in milliseconds used for mouse down smooth speed feature DEF_CLICK_DELAY: 400, @@ -32,25 +31,28 @@ odoo.define('web_widget_numeric_step.field', function (require) { DELAY_THROTTLE_CHANGE: 200, - /** * @override */ - init: function () { + init: function() { this._super.apply(this, arguments); // Widget config var max_val = this.nodeOptions.max; var min_val = this.nodeOptions.min; - if (!_.isUndefined(min_val) && !_.isUndefined(max_val) && min_val > max_val) { + if ( + !_.isUndefined(min_val) && + !_.isUndefined(max_val) && + min_val > max_val + ) { min_val = this.nodeOptions.max; max_val = this.nodeOptions.min; } this._config = { - 'step': Number(this.nodeOptions.step) || 1, - 'min': Number(min_val), - 'max': Number(max_val), + step: Number(this.nodeOptions.step) || 1, + min: Number(min_val), + max: Number(max_val), }; var self = this; @@ -65,15 +67,21 @@ odoo.define('web_widget_numeric_step.field', function (require) { * * @override */ - start: function () { + start: function() { var self = this; this._click_delay = this.DEF_CLICK_DELAY; this._autoStep = false; - return this._super.apply(this, arguments).then(function () { + return this._super.apply(this, arguments).then(function() { document.addEventListener( - 'mouseup', $.proxy(self, "_onMouseUp"), false); + "mouseup", + $.proxy(self, "_onMouseUp"), + false + ); document.addEventListener( - 'touchend', $.proxy(self, "_onMouseUp"), false); + "touchend", + $.proxy(self, "_onMouseUp"), + false + ); }); }, @@ -82,8 +90,8 @@ odoo.define('web_widget_numeric_step.field', function (require) { * * @override */ - _formatValue: function (value) { - if (this.mode === 'edit') { + _formatValue: function(value) { + if (this.mode === "edit") { return this._sanitizeNumberValue(value); } return this._super.apply(this, arguments); @@ -94,9 +102,9 @@ odoo.define('web_widget_numeric_step.field', function (require) { * * @override */ - _parseValue: function () { + _parseValue: function() { var parsedVal = this._super.apply(this, arguments); - if (this.mode === 'edit') { + if (this.mode === "edit") { return Number(parsedVal) || 0; } return parsedVal; @@ -107,9 +115,9 @@ odoo.define('web_widget_numeric_step.field', function (require) { * * @override */ - _prepareInput: function () { + _prepareInput: function() { var result = this._super.apply(this, arguments); - this.$input.attr(_.pick(this.nodeOptions, ['placeholder'])); + this.$input.attr(_.pick(this.nodeOptions, ["placeholder"])); // InputField hard set the input type to 'text' or 'password', // we force it again to be 'tel'. // The widget uses 'tel' type because offers a good layout on @@ -118,7 +126,7 @@ odoo.define('web_widget_numeric_step.field', function (require) { // features like the minus and plus buttons, steps, min and max... // Perhaps in a near future this can be improved to have the best of // two types without hacky developments. - this.$input.attr('type', 'tel'); + this.$input.attr("type", "tel"); return result; }, @@ -127,11 +135,15 @@ odoo.define('web_widget_numeric_step.field', function (require) { * * @override */ - _renderEdit: function () { - _.defer(function () { - this.$el.parents("td.o_numeric_step_cell").addClass("numeric_step_editing_cell"); - }.bind(this)); - this._prepareInput(this.$el.find('input.input_numeric_step')); + _renderEdit: function() { + _.defer( + function() { + this.$el + .parents("td.o_numeric_step_cell") + .addClass("numeric_step_editing_cell"); + }.bind(this) + ); + this._prepareInput(this.$el.find("input.input_numeric_step")); }, /** @@ -139,8 +151,10 @@ odoo.define('web_widget_numeric_step.field', function (require) { * * @override */ - _renderReadonly: function () { - this.$el.parents("td.numeric_step_editing_cell").removeClass("numeric_step_editing_cell"); + _renderReadonly: function() { + this.$el + .parents("td.numeric_step_editing_cell") + .removeClass("numeric_step_editing_cell"); this._super.apply(this, arguments); }, @@ -149,18 +163,18 @@ odoo.define('web_widget_numeric_step.field', function (require) { * * @param {String} mode can be "plus" or "minus" */ - _doStep: function (mode) { + _doStep: function(mode) { var cval = 0; try { var field = this.record.fields[this.name]; - cval = field_utils.parse[field.type](this.$input.val()) + cval = field_utils.parse[field.type](this.$input.val()); } catch { cval = this.value; mode = false; // Only set the value in this case } - if (mode === 'plus') { + if (mode === "plus") { cval += this._config.step; - } else if (mode === 'minus') { + } else if (mode === "minus") { cval -= this._config.step; } var nval = this._sanitizeNumberValue(cval); @@ -175,7 +189,7 @@ odoo.define('web_widget_numeric_step.field', function (require) { /** * @private */ - _clearStepInterval: function () { + _clearStepInterval: function() { clearTimeout(this._auto_step_interval); this._auto_step_interval = false; this._click_delay = this.DEF_CLICK_DELAY; @@ -187,7 +201,7 @@ odoo.define('web_widget_numeric_step.field', function (require) { * @private * @param {MouseClickEvent} ev */ - _onStepClick: function (ev) { + _onStepClick: function(ev) { if (!this._autoStep) { var mode = ev.target.dataset.mode; this._doStep(mode); @@ -199,10 +213,12 @@ odoo.define('web_widget_numeric_step.field', function (require) { * @private * @param {MouseClickEvent} ev */ - _onStepMouseDown: function (ev) { + _onStepMouseDown: function(ev) { if (ev.button === 0 && !this._auto_step_interval) { this._auto_step_interval = setTimeout( - $.proxy(this, "_whileMouseDown", ev), this._click_delay); + $.proxy(this, "_whileMouseDown", ev), + this._click_delay + ); } }, @@ -210,7 +226,7 @@ odoo.define('web_widget_numeric_step.field', function (require) { * @private * @param {FocusoutEvent} ev */ - _onFocusOut: function (evt) { + _onFocusOut: function(evt) { if (this._auto_step_interval) { this._clearStepInterval(); } @@ -219,7 +235,7 @@ odoo.define('web_widget_numeric_step.field', function (require) { /** * @private */ - _onMouseUp: function () { + _onMouseUp: function() { this._clearStepInterval(); }, @@ -227,7 +243,7 @@ odoo.define('web_widget_numeric_step.field', function (require) { * @private * @param {MouseClickEvent} ev */ - _whileMouseDown: function (ev) { + _whileMouseDown: function(ev) { this._autoStep = true; var mode = ev.target.dataset.mode; this._doStep(mode); @@ -244,12 +260,12 @@ odoo.define('web_widget_numeric_step.field', function (require) { * * @param {WheelEvent} ev */ - _onWheel: function (ev) { + _onWheel: function(ev) { ev.preventDefault(); if (ev.originalEvent.deltaY > 0) { - this._doStep('minus'); + this._doStep("minus"); } else { - this._doStep('plus'); + this._doStep("plus"); } }, @@ -258,11 +274,11 @@ odoo.define('web_widget_numeric_step.field', function (require) { * * @param {KeyEvent} ev */ - _onKeyDown: function (ev) { + _onKeyDown: function(ev) { if (ev.keyCode === $.ui.keyCode.UP) { - this._doStep('plus'); + this._doStep("plus"); } else if (ev.keyCode === $.ui.keyCode.DOWN) { - this._doStep('minus'); + this._doStep("minus"); } }, @@ -271,7 +287,7 @@ odoo.define('web_widget_numeric_step.field', function (require) { * * @override */ - _onChange: function (ev) { + _onChange: function(ev) { ev.target.value = this._sanitizeNumberValue(ev.target.value); return this._super.apply(this, arguments); }, @@ -285,7 +301,7 @@ odoo.define('web_widget_numeric_step.field', function (require) { * @param {Number} value * @returns {Number} */ - _sanitizeNumberValue: function (value) { + _sanitizeNumberValue: function(value) { var cval = Number(value); if (_.isNaN(cval)) { return value; @@ -307,8 +323,7 @@ odoo.define('web_widget_numeric_step.field', function (require) { }, }); - Registry.add('numeric_step', NumericStep); + Registry.add("numeric_step", NumericStep); return NumericStep; - }); diff --git a/web_widget_numeric_step/static/src/xml/numeric_step.xml b/web_widget_numeric_step/static/src/xml/numeric_step.xml index 08867f25c..b184d2e95 100644 --- a/web_widget_numeric_step/static/src/xml/numeric_step.xml +++ b/web_widget_numeric_step/static/src/xml/numeric_step.xml @@ -1,28 +1,40 @@ - + -
-
- +
-
- +
-
diff --git a/web_widget_numeric_step/view/assets.xml b/web_widget_numeric_step/view/assets.xml index e8093acb0..0e0ac9501 100644 --- a/web_widget_numeric_step/view/assets.xml +++ b/web_widget_numeric_step/view/assets.xml @@ -1,11 +1,15 @@ - + -