From 5ba0914068ca9e0a6f1f6387b3f2e30b737a5484 Mon Sep 17 00:00:00 2001 From: Quentin Dupont Date: Fri, 30 Aug 2019 14:18:04 +0200 Subject: [PATCH] [ADD] Web widget UX Choice for Number field --- web_widget_number_ux_choice/README.rst | 86 ++++ web_widget_number_ux_choice/__init__.py | 0 web_widget_number_ux_choice/__manifest__.py | 21 + web_widget_number_ux_choice/i18n/fr.po | 31 ++ .../readme/CONTRIBUTORS.rst | 3 + .../readme/DESCRIPTION.rst | 2 + web_widget_number_ux_choice/readme/USAGE.rst | 22 + .../static/description/add_two_buttons.png | Bin 0 -> 11411 bytes .../static/description/icon.png | Bin 0 -> 961 bytes .../static/description/index.html | 441 ++++++++++++++++++ .../static/description/step0,1.gif | Bin 0 -> 30849 bytes .../description/step10_with_onchange.gif | Bin 0 -> 40441 bytes .../static/src/js/number_ux_choice.js | 74 +++ .../static/src/scss/number_ux_choice.scss | 11 + .../static/src/xml/number_ux_choice.xml | 19 + .../view/web_widget_number_ux_choice.xml | 9 + 16 files changed, 719 insertions(+) create mode 100644 web_widget_number_ux_choice/README.rst create mode 100644 web_widget_number_ux_choice/__init__.py create mode 100644 web_widget_number_ux_choice/__manifest__.py create mode 100644 web_widget_number_ux_choice/i18n/fr.po create mode 100644 web_widget_number_ux_choice/readme/CONTRIBUTORS.rst create mode 100644 web_widget_number_ux_choice/readme/DESCRIPTION.rst create mode 100644 web_widget_number_ux_choice/readme/USAGE.rst create mode 100644 web_widget_number_ux_choice/static/description/add_two_buttons.png create mode 100644 web_widget_number_ux_choice/static/description/icon.png create mode 100644 web_widget_number_ux_choice/static/description/index.html create mode 100644 web_widget_number_ux_choice/static/description/step0,1.gif create mode 100644 web_widget_number_ux_choice/static/description/step10_with_onchange.gif create mode 100644 web_widget_number_ux_choice/static/src/js/number_ux_choice.js create mode 100644 web_widget_number_ux_choice/static/src/scss/number_ux_choice.scss create mode 100644 web_widget_number_ux_choice/static/src/xml/number_ux_choice.xml create mode 100644 web_widget_number_ux_choice/view/web_widget_number_ux_choice.xml diff --git a/web_widget_number_ux_choice/README.rst b/web_widget_number_ux_choice/README.rst new file mode 100644 index 000000000..7aee7a490 --- /dev/null +++ b/web_widget_number_ux_choice/README.rst @@ -0,0 +1,86 @@ +=========================== +Web Widget UX Number Choice +=========================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-quentinDupont%2Fgrap--odoo--incubator-lightgray.png?logo=github + :target: https://github.com/quentinDupont/grap-odoo-incubator/tree/12.0_ADD_web_widget_int_choice/web_widget_number_ux_choice + :alt: quentinDupont/grap-odoo-incubator + +|badge1| |badge2| |badge3| + +This widget changes input number field and make it easier to incremente the number thanks to 2 buttons (+ and -). +We can be parametred to choose the iteration step (0.1 for more precision etc.) + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +In your xml view, add ``widget="number_ux_choice"`` +This will add the 2 buttons +" and "-" just next to the input field in edit mode. +Iteration step by default is 1. + +.. figure:: https://raw.githubusercontent.com/quentinDupont/grap-odoo-incubator/12.0_ADD_web_widget_int_choice/web_widget_number_ux_choice/static/description/add_two_buttons.png + + +**Optional** +Add an option to choose the step iteration +Example for an 0.1 step : + +`` days`` + +**Examples** + +Iteration with 0.1 step + +.. figure:: https://raw.githubusercontent.com/quentinDupont/grap-odoo-incubator/12.0_ADD_web_widget_int_choice/web_widget_number_ux_choice/static/description/step0,1.gif + +Iteration with 10 step, with onchange + +.. figure:: https://raw.githubusercontent.com/quentinDupont/grap-odoo-incubator/12.0_ADD_web_widget_int_choice/web_widget_number_ux_choice/static/description/step10_with_onchange.gif + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +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 +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* GRAP + +Contributors +~~~~~~~~~~~~ + +* `GRAP `_: + + * Quentin DUPONT + +Maintainers +~~~~~~~~~~~ + +This module is part of the `quentinDupont/grap-odoo-incubator `_ project on GitHub. + +You are welcome to contribute. diff --git a/web_widget_number_ux_choice/__init__.py b/web_widget_number_ux_choice/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/web_widget_number_ux_choice/__manifest__.py b/web_widget_number_ux_choice/__manifest__.py new file mode 100644 index 000000000..83ca48ab1 --- /dev/null +++ b/web_widget_number_ux_choice/__manifest__.py @@ -0,0 +1,21 @@ +# Odoo, Open Source Web Widget Integer Choice +# +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).# +{ + 'name': "Web Widget UX Number Choice", + 'category': "web", + 'version': "12.0.1.0.0", + 'author': "GRAP, " + "Odoo Community Association (OCA)", + 'license': 'AGPL-3', + 'website': 'https://github.com/OCA/web', + 'depends': ['web'], + 'data': [ + 'view/web_widget_number_ux_choice.xml' + ], + 'qweb': [ + 'static/src/xml/number_ux_choice.xml', + ], + 'auto_install': False, + 'installable': True, +} diff --git a/web_widget_number_ux_choice/i18n/fr.po b/web_widget_number_ux_choice/i18n/fr.po new file mode 100644 index 000000000..3be7542a9 --- /dev/null +++ b/web_widget_number_ux_choice/i18n/fr.po @@ -0,0 +1,31 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * web_widget_number_ux_choice +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-08-30 12:07+0000\n" +"PO-Revision-Date: 2019-08-30 12:07+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: web_widget_number_ux_choice +#. openerp-web +#: code:addons/web_widget_number_ux_choice/static/src/xml/number_ux_choice.xml:12 +#, python-format +msgid "Minus" +msgstr "Moins" + +#. module: web_widget_number_ux_choice +#. openerp-web +#: code:addons/web_widget_number_ux_choice/static/src/xml/number_ux_choice.xml:12 +#, python-format +msgid "Plus" +msgstr "Plus" + diff --git a/web_widget_number_ux_choice/readme/CONTRIBUTORS.rst b/web_widget_number_ux_choice/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..65f8f81d1 --- /dev/null +++ b/web_widget_number_ux_choice/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* `GRAP `_: + + * Quentin DUPONT diff --git a/web_widget_number_ux_choice/readme/DESCRIPTION.rst b/web_widget_number_ux_choice/readme/DESCRIPTION.rst new file mode 100644 index 000000000..f1a22d2b4 --- /dev/null +++ b/web_widget_number_ux_choice/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This widget changes input number field and make it easier to incremente the number thanks to 2 buttons (+ and -). +We can be parametred to choose the iteration step (0.1 for more precision etc.) \ No newline at end of file diff --git a/web_widget_number_ux_choice/readme/USAGE.rst b/web_widget_number_ux_choice/readme/USAGE.rst new file mode 100644 index 000000000..c3fe11f50 --- /dev/null +++ b/web_widget_number_ux_choice/readme/USAGE.rst @@ -0,0 +1,22 @@ +In your xml view, add ``widget="number_ux_choice"`` +This will add the 2 buttons +" and "-" just next to the input field in edit mode. +Iteration step by default is 1. + +.. figure:: ../static/description/add_two_buttons.png + + +**Optional** +Add an option to choose the step iteration +Example for an 0.1 step : + +`` days`` + +**Examples** + +Iteration with 0.1 step + +.. figure:: ../static/description/step0,1.gif + +Iteration with 10 step, with onchange + +.. figure:: ../static/description/step10_with_onchange.gif diff --git a/web_widget_number_ux_choice/static/description/add_two_buttons.png b/web_widget_number_ux_choice/static/description/add_two_buttons.png new file mode 100644 index 0000000000000000000000000000000000000000..2670f06ec555114f5407c98751b009ca9adfa93f GIT binary patch literal 11411 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 Kmackl67pYJg;Kr% literal 0 HcmV?d00001 diff --git a/web_widget_number_ux_choice/static/description/icon.png b/web_widget_number_ux_choice/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a662b992dd695429c20ebcbb123fed8d7fc0765 GIT binary patch literal 961 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkEl47cW>To{{HNFC9!8|lar_yYAgv{KQY?d$m3*gXtCt2M32>x`n@wf zb3cA8^V5H4EWUN+&pK86Q=+VeMk-vQ>%oyJfB3Zn(6vPxkGmi{0J~!o>|80za-UZ$I#T!?lOiSI>uj zu6@(u{pOvzBXhy`e{(M77DTa6GD$1eUOL0GVQTlDFMl%qboGn>-F|a#HS;&w#Vu3g z`tJqon3v-4`2%x@#U@85w`RXNkDj<0oo+Y$c_Dd1b<5ld$3n`4z3X#(kKFrZa?AbM z%Wbd9W8B|JDtNE^_;Kg=okrh2P7b~1CdT#fRO{zGMJwATC)<>N<2|RN_u%dBT|Z}j zkE@&OeVAdr!P3cFwjEx%IsfxBZf}=+jEp^(=l}S0S^vjEX~7@9&#ZNAm|utQfA;8x z;k)Y}rpG@$dbCwjWmf6By82%E%*z_GJ`(*|Hear*RTe&v%stO=abkMq^UwT0b0d~l z{`WZVD{I3^T zUaO9t)Ms>4x9d=+u;9<(RrabPSH{treTLOZD&$%?qe*P<)cUph{f6YRp39A-s zaQ%Gz{_3UQzi+Yje9VjK-`B6+#8L78o=xRE%R9Rd_!izzw)y;J@}2wnpROohd~=mi zNVn+SV*h`WryaPX%n-bi<*eTNt*T|WpMJJyxN%d&NTQ3mqVCepCWQ}{9qy)Ui&=zs zMGF@@T*=!gsVR#ZF0R;YbWjOa(a>b_2s#(rw?zh3Mtz& zcQVhVQ?nPHb(?!9>X)ZiUaslsJD)oarLB}Li)P5}&}d-7g=9|sV4tSTuv2xu=3h`w N^mO%eS?83{1OW9UuonOT literal 0 HcmV?d00001 diff --git a/web_widget_number_ux_choice/static/description/index.html b/web_widget_number_ux_choice/static/description/index.html new file mode 100644 index 000000000..92dfe7ed4 --- /dev/null +++ b/web_widget_number_ux_choice/static/description/index.html @@ -0,0 +1,441 @@ + + + + + + +Web Widget UX Number Choice + + + +
+

Web Widget UX Number Choice

+ + +

Beta License: AGPL-3 quentinDupont/grap-odoo-incubator

+

This widget changes input number field and make it easier to incremente the number thanks to 2 buttons (+ and -). +We can be parametred to choose the iteration step (0.1 for more precision etc.)

+

Table of contents

+ +
+

Usage

+

In your xml view, add widget="number_ux_choice" +This will add the 2 buttons +” and “-” just next to the input field in edit mode. +Iteration step by default is 1.

+
+https://raw.githubusercontent.com/quentinDupont/grap-odoo-incubator/12.0_ADD_web_widget_int_choice/web_widget_number_ux_choice/static/description/add_two_buttons.png +
+

Optional +Add an option to choose the step iteration +Example for an 0.1 step :

+

<field name="sale_delay" widget="number_ux_choice" options="{'step': 0.1}" /> days

+

Examples

+

Iteration with 0.1 step

+
+https://raw.githubusercontent.com/quentinDupont/grap-odoo-incubator/12.0_ADD_web_widget_int_choice/web_widget_number_ux_choice/static/description/step0,1.gif +
+

Iteration with 10 step, with onchange

+
+https://raw.githubusercontent.com/quentinDupont/grap-odoo-incubator/12.0_ADD_web_widget_int_choice/web_widget_number_ux_choice/static/description/step10_with_onchange.gif +
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +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 +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • GRAP
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is part of the quentinDupont/grap-odoo-incubator project on GitHub.

+

You are welcome to contribute.

+
+
+
+ + diff --git a/web_widget_number_ux_choice/static/description/step0,1.gif b/web_widget_number_ux_choice/static/description/step0,1.gif new file mode 100644 index 0000000000000000000000000000000000000000..a2fc39acd487c73730ef7a4a0b9f6c0c9506b4b9 GIT binary patch literal 30849 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 z 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 literal 0 HcmV?d00001 diff --git a/web_widget_number_ux_choice/static/description/step10_with_onchange.gif b/web_widget_number_ux_choice/static/description/step10_with_onchange.gif new file mode 100644 index 0000000000000000000000000000000000000000..61645b282769dc5f3a429e6f1b65465c8b37f21c GIT binary patch literal 40441 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�|9}s6sW{ck&713K<7w*{~Zqnz(KlA8}&RuwS8Q!iQ7b)fP1lHM$zCm z>Ens;=aG~qG$-~84kdV;jafjj_acWP3w_pZL!@G(riecw=*#`f6wm7&;tJhwV_I@ZYWPlCMbOJ?53vmsOi4x z;^3t8m**XuiDo{r9f+CIV^H7A{P>r%W}e3vp2#m{bYN=urwFN!$~jx+BIsFm9~D(P zxAev5??jgo)omi0Oa*0bn22giAq}RrQHu7g5!&sU5fr(d8P2x#jApvkiwNX7SaWhh z5A2(W3$Ge^#%G9)K+CPWsN!hq)+?=xy>x&^UXHGRI3FRu-Z?+_cUG^%xd5v*)zp%p1W!PF7pkeE zE3lN+g-c(%eK&y9i3dOy;HsD%1Wz&3ep1)mB6GL8JF*eaJPK>HwFN1 zh!h4|>{e$n!@y%zY^|KGA){!kz*;Qks zbH%oCWWn3+7E;=w95lKyvyaLP8}HythFhmST;S9|lJPo^%rHhtf>Vk(<1bEXH#h*;_iJx}{~b;Ke}2O8Uuy^k9smFU literal 0 HcmV?d00001 diff --git a/web_widget_number_ux_choice/static/src/js/number_ux_choice.js b/web_widget_number_ux_choice/static/src/js/number_ux_choice.js new file mode 100644 index 000000000..f44871967 --- /dev/null +++ b/web_widget_number_ux_choice/static/src/js/number_ux_choice.js @@ -0,0 +1,74 @@ +/** +* Copyright (C) 2019 - Today: GRAP (http://www.grap.coop) +* @author: Quentin DUPONT +* License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) **/ + +odoo.define('web.web_widget_number_ux_choice', function(require) { + "use strict"; + + var basic_fields = require('web.basic_fields'); + var Registry = require('web.field_registry'); + // var session = require('web.session'); + // var rpc = require('web.rpc'); + // var pyUtils = require("web.py_utils"); + + /* + * Get precision for the @input field + */ + function getPrecision(input) { + if (!isFinite(input)) return 0; + var e = 1, p = 0; + while (Math.round(input * e) / e !== input) { e *= 10; p++; } + return p; + } + + /* + * @self : input field + * @step : must be Float + * @minusOrPlus : "minus" or "plus" + * + * set new value to @self */ + function addStep(self, step, minusOrPlus) { + var oldVal= parseFloat(self._getValue()); + var precision = Math.max(getPrecision(oldVal), getPrecision(step)) + if (minusOrPlus == "minus") { + step = -step + } + var newVal = oldVal + step; + var newVal_s = newVal.toFixed(precision).toString(); + self._setValue(newVal_s); + self.$input[0].value = newVal_s; + } + + var NumberUxChoice = basic_fields.FieldFloat.extend({ + template: 'NumberUxChoice', + + _render: function () { + var self = this; + this._super(); + this.$("button").parents().removeClass("o_field_integer o_field_number o_input o_required_modifier"); + this.$("button").click(function() { + var node = $(this).parent()[0]; + + // Get step option or default is 1 + if (typeof node.attributes['step'] !== 'undefined') { + var step = parseFloat(node.attributes['step'].value); + } else { + var step = 1; + } + // PLUS button + if ($(this).hasClass("btn_number_ux_choice_plus")) { + addStep(self, step, "plus") + // MINUS button + } else if ($(this).hasClass("btn_number_ux_choice_minus")){ + addStep(self, step, "minus") + + }; + }); + }, + + }); + + Registry.add('number_ux_choice', NumberUxChoice); + +}); diff --git a/web_widget_number_ux_choice/static/src/scss/number_ux_choice.scss b/web_widget_number_ux_choice/static/src/scss/number_ux_choice.scss new file mode 100644 index 000000000..303ca36be --- /dev/null +++ b/web_widget_number_ux_choice/static/src/scss/number_ux_choice.scss @@ -0,0 +1,11 @@ + +.input_number_ux_choice { + width: 71% !important; +} + +.btns_number_ux_choice { + width: 27% !important; + button { + height: 25px; + } +} diff --git a/web_widget_number_ux_choice/static/src/xml/number_ux_choice.xml b/web_widget_number_ux_choice/static/src/xml/number_ux_choice.xml new file mode 100644 index 000000000..00baada9d --- /dev/null +++ b/web_widget_number_ux_choice/static/src/xml/number_ux_choice.xml @@ -0,0 +1,19 @@ + + + + + + +
+
+
+ + + +
+
diff --git a/web_widget_number_ux_choice/view/web_widget_number_ux_choice.xml b/web_widget_number_ux_choice/view/web_widget_number_ux_choice.xml new file mode 100644 index 000000000..7c53bdd0f --- /dev/null +++ b/web_widget_number_ux_choice/view/web_widget_number_ux_choice.xml @@ -0,0 +1,9 @@ + + + +