From c0666dd5f69963bd4c5089ba982bee4aacb64640 Mon Sep 17 00:00:00 2001 From: clementmbr Date: Fri, 20 Mar 2020 12:34:39 -0300 Subject: [PATCH 01/20] [12.0] Add product_packaging_dimension --- product_packaging_dimension/__init__.py | 1 + product_packaging_dimension/__manifest__.py | 18 ++++++++++++ .../models/__init__.py | 1 + .../models/product_packaging.py | 28 +++++++++++++++++++ .../readme/CONTRIBUTORS.rst | 2 ++ .../readme/DESCRIPTION.rst | 3 ++ .../readme/ROADMAP.rst | 1 + .../views/product_packaging.xml | 19 +++++++++++++ 8 files changed, 73 insertions(+) create mode 100644 product_packaging_dimension/__init__.py create mode 100644 product_packaging_dimension/__manifest__.py create mode 100644 product_packaging_dimension/models/__init__.py create mode 100644 product_packaging_dimension/models/product_packaging.py create mode 100644 product_packaging_dimension/readme/CONTRIBUTORS.rst create mode 100644 product_packaging_dimension/readme/DESCRIPTION.rst create mode 100644 product_packaging_dimension/readme/ROADMAP.rst create mode 100644 product_packaging_dimension/views/product_packaging.xml diff --git a/product_packaging_dimension/__init__.py b/product_packaging_dimension/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/product_packaging_dimension/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/product_packaging_dimension/__manifest__.py b/product_packaging_dimension/__manifest__.py new file mode 100644 index 00000000000..83357b4f6ab --- /dev/null +++ b/product_packaging_dimension/__manifest__.py @@ -0,0 +1,18 @@ +# Copyright 2019 Camptocamp SA +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +{ + 'name': 'Product Packaging Dimension', + 'summary': 'Manage packaging dimensions and weight', + 'version': '12.0.1.0.0', + 'category': 'Product', + 'author': 'Camptocamp, Odoo Community Association (OCA)', + 'license': 'AGPL-3', + 'depends': [ + 'product', + ], + 'website': 'https://github.com/OCA/product-attribute', + 'data': [ + 'views/product_packaging.xml', + ], + 'installable': True, +} diff --git a/product_packaging_dimension/models/__init__.py b/product_packaging_dimension/models/__init__.py new file mode 100644 index 00000000000..2c4d9a88a37 --- /dev/null +++ b/product_packaging_dimension/models/__init__.py @@ -0,0 +1 @@ +from . import product_packaging diff --git a/product_packaging_dimension/models/product_packaging.py b/product_packaging_dimension/models/product_packaging.py new file mode 100644 index 00000000000..64c6973b28d --- /dev/null +++ b/product_packaging_dimension/models/product_packaging.py @@ -0,0 +1,28 @@ +# Copyright 2019-2020 Camptocamp SA +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo import api, fields, models + + +class ProductPackaging(models.Model): + _inherit = "product.packaging" + + max_weight = fields.Float("Weight (kg)") + # lngth IS NOT A TYPO https://github.com/odoo/odoo/issues/41353 + lngth = fields.Integer("Length (mm)", help="length in millimeters") + # Although it feels weird to use Integer in millimeters, we use Int to + # override the fields from delivery module instead of defining new ones + width = fields.Integer("Width (mm)", help="width in millimeters") + height = fields.Integer("Height (mm)", help="height in millimeters") + volume = fields.Float( + "Volume (m³)", + digits=(8, 4), + compute="_compute_volume", + readonly=True, + store=False, + help="volume in cubic meters", + ) + + @api.depends("lngth", "width", "height") + def _compute_volume(self): + for pack in self: + pack.volume = (pack.lngth * pack.width * pack.height) / 1000.0 ** 3 diff --git a/product_packaging_dimension/readme/CONTRIBUTORS.rst b/product_packaging_dimension/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..eafe874a259 --- /dev/null +++ b/product_packaging_dimension/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* Patrick Tombez +* Akim Juillerat diff --git a/product_packaging_dimension/readme/DESCRIPTION.rst b/product_packaging_dimension/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..ceae3b3f731 --- /dev/null +++ b/product_packaging_dimension/readme/DESCRIPTION.rst @@ -0,0 +1,3 @@ +This module allows to store dimensions (length, width, height), weight and +volume of product packagings. + diff --git a/product_packaging_dimension/readme/ROADMAP.rst b/product_packaging_dimension/readme/ROADMAP.rst new file mode 100644 index 00000000000..07abef0a88f --- /dev/null +++ b/product_packaging_dimension/readme/ROADMAP.rst @@ -0,0 +1 @@ +* Resolve conflict with delivery module diff --git a/product_packaging_dimension/views/product_packaging.xml b/product_packaging_dimension/views/product_packaging.xml new file mode 100644 index 00000000000..4fc776f7fb5 --- /dev/null +++ b/product_packaging_dimension/views/product_packaging.xml @@ -0,0 +1,19 @@ + + + + product.packaging.form.view.inherit + product.packaging + + + + + + + + + + + + + + From 0ff126c5945fcb530913b70d90214afaddfc002c Mon Sep 17 00:00:00 2001 From: oca-travis Date: Tue, 1 Dec 2020 18:39:57 +0000 Subject: [PATCH 02/20] [UPD] Update product_packaging_dimension.pot --- .../i18n/product_packaging_dimension.pot | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 product_packaging_dimension/i18n/product_packaging_dimension.pot diff --git a/product_packaging_dimension/i18n/product_packaging_dimension.pot b/product_packaging_dimension/i18n/product_packaging_dimension.pot new file mode 100644 index 00000000000..80cdab0392f --- /dev/null +++ b/product_packaging_dimension/i18n/product_packaging_dimension.pot @@ -0,0 +1,65 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_packaging_dimension +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \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: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__height +msgid "Height (mm)" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__lngth +msgid "Length (mm)" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model,name:product_packaging_dimension.model_product_packaging +msgid "Product Packaging" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__volume +msgid "Volume (m³)" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__max_weight +msgid "Weight (kg)" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__width +msgid "Width (mm)" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__height +msgid "height in millimeters" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__lngth +msgid "length in millimeters" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__volume +msgid "volume in cubic meters" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__width +msgid "width in millimeters" +msgstr "" + From e105a0f9a208e347b586643d7e908f3f38debf32 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 1 Dec 2020 19:08:24 +0000 Subject: [PATCH 03/20] [UPD] README.rst --- product_packaging_dimension/README.rst | 81 ++++ .../static/description/index.html | 428 ++++++++++++++++++ 2 files changed, 509 insertions(+) create mode 100644 product_packaging_dimension/README.rst create mode 100644 product_packaging_dimension/static/description/index.html diff --git a/product_packaging_dimension/README.rst b/product_packaging_dimension/README.rst new file mode 100644 index 00000000000..c751cd7f04b --- /dev/null +++ b/product_packaging_dimension/README.rst @@ -0,0 +1,81 @@ +=========================== +Product Packaging Dimension +=========================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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-OCA%2Fproduct--attribute-lightgray.png?logo=github + :target: https://github.com/OCA/product-attribute/tree/12.0/product_packaging_dimension + :alt: OCA/product-attribute +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/product-attribute-12-0/product-attribute-12-0-product_packaging_dimension + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/135/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to store dimensions (length, width, height), weight and +volume of product packagings. + + +**Table of contents** + +.. contents:: + :local: + +Known issues / Roadmap +====================== + +* Resolve conflict with delivery module + +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 +~~~~~~~ + +* Camptocamp + +Contributors +~~~~~~~~~~~~ + +* Patrick Tombez +* Akim Juillerat + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/product-attribute `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/product_packaging_dimension/static/description/index.html b/product_packaging_dimension/static/description/index.html new file mode 100644 index 00000000000..19ccc077fd5 --- /dev/null +++ b/product_packaging_dimension/static/description/index.html @@ -0,0 +1,428 @@ + + + + + + +Product Packaging Dimension + + + +
+

Product Packaging Dimension

+ + +

Beta License: AGPL-3 OCA/product-attribute Translate me on Weblate Try me on Runbot

+

This module allows to store dimensions (length, width, height), weight and +volume of product packagings.

+

Table of contents

+ +
+

Known issues / Roadmap

+
    +
  • Resolve conflict with delivery module
  • +
+
+
+

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

+
    +
  • Camptocamp
  • +
+
+ +
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/product-attribute project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + From 66d4020b6b3222d3ec4131bcfc6042dda78c3a8b Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 1 Dec 2020 19:08:24 +0000 Subject: [PATCH 04/20] [ADD] icon.png --- .../static/description/icon.png | Bin 0 -> 9455 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 product_packaging_dimension/static/description/icon.png diff --git a/product_packaging_dimension/static/description/icon.png b/product_packaging_dimension/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~! zVpnB`o+K7|Al`Q_U;eD$B zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__ zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_ zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)( z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9 zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz# z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K= z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C zuVl&0duN<;uOsB3%T9Fp8t{ED108<+W(nOZd?gDnfNBC3>M8WE61$So|P zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1 zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_ zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8 zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ> zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD z#z-)AXwSRY?OPefw^iI+ z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$ z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6 zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+ z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC) zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x! zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8 z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n= z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@ zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y< zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6 zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6% z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(| z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6 z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d} z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 From 75fdce0fabf579a6407c59a3bd88eea9e182e575 Mon Sep 17 00:00:00 2001 From: claudiagn Date: Mon, 15 Feb 2021 16:31:59 +0000 Subject: [PATCH 05/20] Added translation using Weblate (Spanish) --- product_packaging_dimension/i18n/es.po | 65 ++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 product_packaging_dimension/i18n/es.po diff --git a/product_packaging_dimension/i18n/es.po b/product_packaging_dimension/i18n/es.po new file mode 100644 index 00000000000..054187007a7 --- /dev/null +++ b/product_packaging_dimension/i18n/es.po @@ -0,0 +1,65 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_packaging_dimension +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__height +msgid "Height (mm)" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__lngth +msgid "Length (mm)" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model,name:product_packaging_dimension.model_product_packaging +msgid "Product Packaging" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__volume +msgid "Volume (m³)" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__max_weight +msgid "Weight (kg)" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__width +msgid "Width (mm)" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__height +msgid "height in millimeters" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__lngth +msgid "length in millimeters" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__volume +msgid "volume in cubic meters" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__width +msgid "width in millimeters" +msgstr "" From ead982c14a8b2e4bb54bc1c47165a5ff530ef338 Mon Sep 17 00:00:00 2001 From: claudiagn Date: Mon, 15 Feb 2021 16:33:21 +0000 Subject: [PATCH 06/20] Translated using Weblate (Spanish) Currently translated at 100.0% (10 of 10 strings) Translation: product-attribute-12.0/product-attribute-12.0-product_packaging_dimension Translate-URL: https://translation.odoo-community.org/projects/product-attribute-12-0/product-attribute-12-0-product_packaging_dimension/es/ --- product_packaging_dimension/i18n/es.po | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/product_packaging_dimension/i18n/es.po b/product_packaging_dimension/i18n/es.po index 054187007a7..222514a5563 100644 --- a/product_packaging_dimension/i18n/es.po +++ b/product_packaging_dimension/i18n/es.po @@ -6,60 +6,62 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2021-02-15 17:45+0000\n" +"Last-Translator: claudiagn \n" "Language-Team: none\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.3.2\n" #. module: product_packaging_dimension #: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__height msgid "Height (mm)" -msgstr "" +msgstr "Altura (mm)" #. module: product_packaging_dimension #: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__lngth msgid "Length (mm)" -msgstr "" +msgstr "Longitud(mm)" #. module: product_packaging_dimension #: model:ir.model,name:product_packaging_dimension.model_product_packaging msgid "Product Packaging" -msgstr "" +msgstr "Empaquetado de producto" #. module: product_packaging_dimension #: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__volume msgid "Volume (m³)" -msgstr "" +msgstr "Volumen(m³)" #. module: product_packaging_dimension #: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__max_weight msgid "Weight (kg)" -msgstr "" +msgstr "Peso (kg)" #. module: product_packaging_dimension #: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__width msgid "Width (mm)" -msgstr "" +msgstr "Amplitud (mm)" #. module: product_packaging_dimension #: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__height msgid "height in millimeters" -msgstr "" +msgstr "altura en milímetros" #. module: product_packaging_dimension #: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__lngth msgid "length in millimeters" -msgstr "" +msgstr "longitud en milímetros" #. module: product_packaging_dimension #: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__volume msgid "volume in cubic meters" -msgstr "" +msgstr "volumen en metros cúbicos" #. module: product_packaging_dimension #: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__width msgid "width in millimeters" -msgstr "" +msgstr "amplitud en milímetros" From f43a6db11c6e60dc24c4d726c762a42fc04b5cc2 Mon Sep 17 00:00:00 2001 From: claudiagn Date: Tue, 16 Feb 2021 16:08:59 +0000 Subject: [PATCH 07/20] Added translation using Weblate (Catalan) --- product_packaging_dimension/i18n/ca.po | 65 ++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 product_packaging_dimension/i18n/ca.po diff --git a/product_packaging_dimension/i18n/ca.po b/product_packaging_dimension/i18n/ca.po new file mode 100644 index 00000000000..be1ee605c0a --- /dev/null +++ b/product_packaging_dimension/i18n/ca.po @@ -0,0 +1,65 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * product_packaging_dimension +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ca\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__height +msgid "Height (mm)" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__lngth +msgid "Length (mm)" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model,name:product_packaging_dimension.model_product_packaging +msgid "Product Packaging" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__volume +msgid "Volume (m³)" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__max_weight +msgid "Weight (kg)" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__width +msgid "Width (mm)" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__height +msgid "height in millimeters" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__lngth +msgid "length in millimeters" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__volume +msgid "volume in cubic meters" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__width +msgid "width in millimeters" +msgstr "" From ebecae24757a9e96b92754e620bc12aa739011d2 Mon Sep 17 00:00:00 2001 From: claudiagn Date: Tue, 16 Feb 2021 16:10:36 +0000 Subject: [PATCH 08/20] Translated using Weblate (Catalan) Currently translated at 90.0% (9 of 10 strings) Translation: product-attribute-12.0/product-attribute-12.0-product_packaging_dimension Translate-URL: https://translation.odoo-community.org/projects/product-attribute-12-0/product-attribute-12-0-product_packaging_dimension/ca/ --- product_packaging_dimension/i18n/ca.po | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/product_packaging_dimension/i18n/ca.po b/product_packaging_dimension/i18n/ca.po index be1ee605c0a..884528c4ac4 100644 --- a/product_packaging_dimension/i18n/ca.po +++ b/product_packaging_dimension/i18n/ca.po @@ -6,38 +6,40 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2021-02-16 18:45+0000\n" +"Last-Translator: claudiagn \n" "Language-Team: none\n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.3.2\n" #. module: product_packaging_dimension #: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__height msgid "Height (mm)" -msgstr "" +msgstr "Alçacada (mm)" #. module: product_packaging_dimension #: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__lngth msgid "Length (mm)" -msgstr "" +msgstr "Longitud (mm)" #. module: product_packaging_dimension #: model:ir.model,name:product_packaging_dimension.model_product_packaging msgid "Product Packaging" -msgstr "" +msgstr "Empaquetat de producte" #. module: product_packaging_dimension #: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__volume msgid "Volume (m³)" -msgstr "" +msgstr "Volum (m³)" #. module: product_packaging_dimension #: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__max_weight msgid "Weight (kg)" -msgstr "" +msgstr "Pes (kg)" #. module: product_packaging_dimension #: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__width @@ -47,19 +49,19 @@ msgstr "" #. module: product_packaging_dimension #: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__height msgid "height in millimeters" -msgstr "" +msgstr "alçada en milímetres" #. module: product_packaging_dimension #: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__lngth msgid "length in millimeters" -msgstr "" +msgstr "longitud en milímetres" #. module: product_packaging_dimension #: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__volume msgid "volume in cubic meters" -msgstr "" +msgstr "volum en metres cúbics" #. module: product_packaging_dimension #: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__width msgid "width in millimeters" -msgstr "" +msgstr "amplada en milímetres" From ae117b52cdd7cfa9d25b210c6a6a8aa64880edac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Roche?= Date: Sun, 25 Apr 2021 15:48:21 +0200 Subject: [PATCH 09/20] [IMP] product_packaging_dimension: black, isort, prettier --- product_packaging_dimension/__manifest__.py | 24 +++++++++---------- .../readme/DESCRIPTION.rst | 1 - .../views/product_packaging.xml | 2 +- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/product_packaging_dimension/__manifest__.py b/product_packaging_dimension/__manifest__.py index 83357b4f6ab..197fc68312c 100644 --- a/product_packaging_dimension/__manifest__.py +++ b/product_packaging_dimension/__manifest__.py @@ -1,18 +1,18 @@ # Copyright 2019 Camptocamp SA # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) { - 'name': 'Product Packaging Dimension', - 'summary': 'Manage packaging dimensions and weight', - 'version': '12.0.1.0.0', - 'category': 'Product', - 'author': 'Camptocamp, Odoo Community Association (OCA)', - 'license': 'AGPL-3', - 'depends': [ - 'product', + "name": "Product Packaging Dimension", + "summary": "Manage packaging dimensions and weight", + "version": "14.0.1.0.0", + "category": "Product", + "author": "Camptocamp, Odoo Community Association (OCA)", + "license": "AGPL-3", + "depends": [ + "product", ], - 'website': 'https://github.com/OCA/product-attribute', - 'data': [ - 'views/product_packaging.xml', + "website": "https://github.com/OCA/product-attribute", + "data": [ + "views/product_packaging.xml", ], - 'installable': True, + "installable": True, } diff --git a/product_packaging_dimension/readme/DESCRIPTION.rst b/product_packaging_dimension/readme/DESCRIPTION.rst index ceae3b3f731..a59a6549a27 100644 --- a/product_packaging_dimension/readme/DESCRIPTION.rst +++ b/product_packaging_dimension/readme/DESCRIPTION.rst @@ -1,3 +1,2 @@ This module allows to store dimensions (length, width, height), weight and volume of product packagings. - diff --git a/product_packaging_dimension/views/product_packaging.xml b/product_packaging_dimension/views/product_packaging.xml index 4fc776f7fb5..ae82b40f0bc 100644 --- a/product_packaging_dimension/views/product_packaging.xml +++ b/product_packaging_dimension/views/product_packaging.xml @@ -1,4 +1,4 @@ - + product.packaging.form.view.inherit From c7246fb15670c094a0539a5968903bea790caf99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Roche?= Date: Sun, 25 Apr 2021 22:37:54 +0200 Subject: [PATCH 10/20] [MIG] product_packaging_dimension: Migration to 14.0 --- product_packaging_dimension/__manifest__.py | 5 +- .../models/product_packaging.py | 127 ++++++++++++++++-- product_packaging_dimension/tests/__init__.py | 2 + .../tests/test_packaging_volume.py | 107 +++++++++++++++ .../views/product_packaging.xml | 42 +++++- 5 files changed, 263 insertions(+), 20 deletions(-) create mode 100644 product_packaging_dimension/tests/__init__.py create mode 100644 product_packaging_dimension/tests/test_packaging_volume.py diff --git a/product_packaging_dimension/__manifest__.py b/product_packaging_dimension/__manifest__.py index 197fc68312c..b3a8aacdc6e 100644 --- a/product_packaging_dimension/__manifest__.py +++ b/product_packaging_dimension/__manifest__.py @@ -1,14 +1,15 @@ -# Copyright 2019 Camptocamp SA +# Copyright 2021 Camptocamp SA # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) { "name": "Product Packaging Dimension", "summary": "Manage packaging dimensions and weight", "version": "14.0.1.0.0", "category": "Product", - "author": "Camptocamp, Odoo Community Association (OCA)", + "author": "Camptocamp, Akretion, Odoo Community Association (OCA)", "license": "AGPL-3", "depends": [ "product", + "product_logistics_uom", ], "website": "https://github.com/OCA/product-attribute", "data": [ diff --git a/product_packaging_dimension/models/product_packaging.py b/product_packaging_dimension/models/product_packaging.py index 64c6973b28d..8640e53fd08 100644 --- a/product_packaging_dimension/models/product_packaging.py +++ b/product_packaging_dimension/models/product_packaging.py @@ -1,28 +1,129 @@ -# Copyright 2019-2020 Camptocamp SA +# Copyright 2019-2021 Camptocamp SA # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) from odoo import api, fields, models class ProductPackaging(models.Model): _inherit = "product.packaging" + # Constraints and dimensional field names are identical + # to product_packaging.py in delivery. + # The redundancy here avoids unnecessary dependencies on sale modules. + + _sql_constraints = [ + ("positive_height", "CHECK(height>=0.0)", "Height must be positive"), + ("positive_width", "CHECK(width>=0.0)", "Width must be positive"), + ("positive_length", "CHECK(packaging_length>=0.0)", "Length must be positive"), + ( + "positive_max_weight", + "CHECK(max_weight>=0.0)", + "Max Weight must be positive", + ), + ] + height = fields.Float("Height") + width = fields.Float("Width") + packaging_length = fields.Float("Length") + + length_uom_id = fields.Many2one( + "uom.uom", + "Dimensions", + domain=lambda self: [ + ("category_id", "=", self.env.ref("uom.uom_categ_length").id) + ], + help="UoM for packaging length, height, width (based on lenght UoM)", + default=lambda self: self.env[ + "product.template" + ]._get_length_uom_id_from_ir_config_parameter(), + ) + length_uom_name = fields.Char( + string="Length unit of measure label", + related="length_uom_id.name", + readonly=True, + ) + + weight = fields.Float("Weight") + max_weight = fields.Float("Maximum Weight") + weight_uom_id = fields.Many2one( + "uom.uom", + string="Weight", + domain=lambda self: [ + ("category_id", "=", self.env.ref("uom.product_uom_categ_kgm").id) + ], + help="Weight Unit of Measure", + compute=False, + default=lambda self: self.env[ + "product.template" + ]._get_weight_uom_id_from_ir_config_parameter(), + ) + + weight_uom_name = fields.Char( + string="Weight unit of measure label", + related="weight_uom_id.name", + readonly=True, + ) - max_weight = fields.Float("Weight (kg)") - # lngth IS NOT A TYPO https://github.com/odoo/odoo/issues/41353 - lngth = fields.Integer("Length (mm)", help="length in millimeters") - # Although it feels weird to use Integer in millimeters, we use Int to - # override the fields from delivery module instead of defining new ones - width = fields.Integer("Width (mm)", help="width in millimeters") - height = fields.Integer("Height (mm)", help="height in millimeters") volume = fields.Float( - "Volume (m³)", + "Volume", digits=(8, 4), compute="_compute_volume", readonly=True, store=False, - help="volume in cubic meters", + help="The Packaging volume", ) - @api.depends("lngth", "width", "height") + volume_uom_id = fields.Many2one( + "uom.uom", + string="Volume", + domain=lambda self: [ + ("category_id", "=", self.env.ref("uom.product_uom_categ_vol").id) + ], + help="Packaging volume unit of measure", + default=lambda self: self.env[ + "product.template" + ]._get_volume_uom_id_from_ir_config_parameter(), + ) + + volume_uom_name = fields.Char( + string="Volume Unit of Measure label", + related="volume_uom_id.name", + readonly=True, + ) + + @api.depends( + "packaging_length", "width", "height", "length_uom_id", "volume_uom_id" + ) def _compute_volume(self): - for pack in self: - pack.volume = (pack.lngth * pack.width * pack.height) / 1000.0 ** 3 + self.volume = self._calculate_volume( + self.packaging_length, + self.height, + self.width, + self.length_uom_id, + self.volume_uom_id, + ) + + def _calculate_volume( + self, packaging_length, height, width, length_uom_id, volume_uom_id + ): + volume_m3 = 0 + if packaging_length and height and width and length_uom_id: + length_m = self.convert_to_meters(packaging_length, length_uom_id) + height_m = self.convert_to_meters(height, length_uom_id) + width_m = self.convert_to_meters(width, length_uom_id) + volume_m3 = length_m * height_m * width_m + volume_in_volume_uom = self.convert_to_volume_uom(volume_m3, volume_uom_id) + return volume_in_volume_uom + + def convert_to_meters(self, measure, length_uom_id): + uom_meters = self.env.ref("uom.product_uom_meter") + return length_uom_id._compute_quantity( + qty=measure, + to_unit=uom_meters, + round=False, + ) + + def convert_to_volume_uom(self, measure, volume_uom_id): + uom_m3 = self.env.ref("uom.product_uom_cubic_meter") + return uom_m3._compute_quantity( + qty=measure, + to_unit=volume_uom_id, + round=False, + ) diff --git a/product_packaging_dimension/tests/__init__.py b/product_packaging_dimension/tests/__init__.py new file mode 100644 index 00000000000..029b8144157 --- /dev/null +++ b/product_packaging_dimension/tests/__init__.py @@ -0,0 +1,2 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from . import test_packaging_volume diff --git a/product_packaging_dimension/tests/test_packaging_volume.py b/product_packaging_dimension/tests/test_packaging_volume.py new file mode 100644 index 00000000000..50340afff35 --- /dev/null +++ b/product_packaging_dimension/tests/test_packaging_volume.py @@ -0,0 +1,107 @@ +# Copyright (C) 2021 Akretion (). +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo.tests.common import TransactionCase + + +class TestPackagingVolumeCompute(TransactionCase): + def setUp(self): + super(TestPackagingVolumeCompute, self).setUp() + + self.packaging = self.env["product.packaging"].new() + self.packaging2 = self.env["product.packaging"].new() + self.packaging3 = self.env["product.packaging"].new() + + self.uom_m = self.env["uom.uom"].search([("name", "=", "m")]) + self.uom_cm = self.env["uom.uom"].search([("name", "=", "cm")]) + self.uom_L = self.env["uom.uom"].search([("name", "=", "L")]) + self.uom_m3 = self.env["uom.uom"].search([("name", "=", "m³")]) + self.uom_ft = self.env["uom.uom"].search([("name", "=", "ft")]) + self.uom_ft3 = self.env["uom.uom"].search([("name", "=", "ft³")]) + + def test_input_uom(self): + # Volume always in m3 (using default parameter), but with different initial UoM. + + # Initial dimensions in meter + self.packaging.packaging_length = 10.0 + self.packaging.height = 10.0 + self.packaging.width = 10.0 + self.packaging.length_uom_id = self.uom_m + self.packaging.volume_uom_id = self.uom_m3 + self.packaging._compute_volume() + self.assertEqual(1000, self.packaging.volume) + + # Initial dimensions in cm + self.packaging2.packaging_length = 10.0 + self.packaging2.height = 10.0 + self.packaging2.width = 10.0 + self.packaging2.length_uom_id = self.uom_cm + self.packaging2.volume_uom_id = self.uom_m3 + self.packaging2._compute_volume() + self.assertEqual(0.001, self.packaging2.volume) + + # Initial dimensions in feet + self.packaging3.packaging_length = 10.0 + self.packaging3.height = 10.0 + self.packaging3.width = 10.0 + self.packaging3.length_uom_id = self.uom_ft + self.packaging3.volume_uom_id = self.uom_m3 + self.packaging3._compute_volume() + self.assertEqual(28.3168, self.packaging3.volume) + + def test_compute_volume(self): + # initial UoM always in meters and Volume in m3, but with different dimensions. + + self.packaging.packaging_length = 10 + self.packaging.height = 8.0 + self.packaging.width = 10.8 + self.packaging.length_uom_id = self.uom_m + self.packaging.volume_uom_id = self.uom_m3 + self.packaging._compute_volume() + self.assertEqual(864, self.packaging.volume) + + self.packaging2.packaging_length = 6.0 + self.packaging2.height = 14.0 + self.packaging2.width = 1.2 + self.packaging2.length_uom_id = self.uom_m + self.packaging2.volume_uom_id = self.uom_m3 + self.packaging2._compute_volume() + self.assertAlmostEqual(100.8, self.packaging2.volume) + + self.packaging3.packaging_length = 100.0 + self.packaging3.height = 50.5 + self.packaging3.width = 80.0 + self.packaging3.length_uom_id = self.uom_m + self.packaging3.volume_uom_id = self.uom_m3 + self.packaging3._compute_volume() + self.assertEqual(404000, self.packaging3.volume) + + def test_output_uom(self): + # Tests with both different initial and volume UoMs. + + # feet to Liters + self.packaging.packaging_length = 10.0 + self.packaging.height = 10.0 + self.packaging.width = 10.0 + self.packaging.length_uom_id = self.uom_ft + self.packaging.volume_uom_id = self.uom_L + self.packaging._compute_volume() + self.assertAlmostEqual(28316.8439, self.packaging.volume) + + # cm to cubic feet + self.packaging2.packaging_length = 10.0 + self.packaging2.height = 10.0 + self.packaging2.width = 10.0 + self.packaging2.length_uom_id = self.uom_cm + self.packaging2.volume_uom_id = self.uom_ft3 + self.packaging2._compute_volume() + self.assertAlmostEqual(0.0353, self.packaging2.volume) + + # meters to cubic feet + self.packaging3.packaging_length = 10.0 + self.packaging3.height = 10.0 + self.packaging3.width = 10.0 + self.packaging3.length_uom_id = self.uom_m + self.packaging3.volume_uom_id = self.uom_ft3 + self.packaging3._compute_volume() + self.assertAlmostEqual(35314.7248, self.packaging3.volume) diff --git a/product_packaging_dimension/views/product_packaging.xml b/product_packaging_dimension/views/product_packaging.xml index ae82b40f0bc..98dcc210c42 100644 --- a/product_packaging_dimension/views/product_packaging.xml +++ b/product_packaging_dimension/views/product_packaging.xml @@ -6,12 +6,44 @@ - - - - + + + + + + + + From 7784f4f2997df091904cea865c7831f3edeba078 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Roche?= Date: Mon, 26 Apr 2021 15:01:38 +0200 Subject: [PATCH 11/20] fix runbot error and add pre-migrate script --- .../migrations/14.0.1.0.0/pre-migrate.py | 22 +++++++++++++++++++ .../models/product_packaging.py | 6 ++--- .../readme/CONTRIBUTORS.rst | 1 + 3 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 product_packaging_dimension/migrations/14.0.1.0.0/pre-migrate.py diff --git a/product_packaging_dimension/migrations/14.0.1.0.0/pre-migrate.py b/product_packaging_dimension/migrations/14.0.1.0.0/pre-migrate.py new file mode 100644 index 00000000000..aa1de7a1c17 --- /dev/null +++ b/product_packaging_dimension/migrations/14.0.1.0.0/pre-migrate.py @@ -0,0 +1,22 @@ +# Copyright 2021 Akretion +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo.tools.sql import column_exists, rename_column + + +def migrate(cr, version): + # Rename lnght into packaging_length + if column_exists(cr, "product_packaging", "lnght"): + rename_column(cr, "product_packaging", "lnght", "packaging_length") + + # Convert old hard-coded uom values (mm) + # into new default uom values (m) + cr.execute( + """ + UPDATE product_packaging + SET + packaging_length = packaging_length/1000, + height = height/1000, + width = width/1000, + """ + ) diff --git a/product_packaging_dimension/models/product_packaging.py b/product_packaging_dimension/models/product_packaging.py index 8640e53fd08..0af8b290744 100644 --- a/product_packaging_dimension/models/product_packaging.py +++ b/product_packaging_dimension/models/product_packaging.py @@ -25,7 +25,7 @@ class ProductPackaging(models.Model): length_uom_id = fields.Many2one( "uom.uom", - "Dimensions", + "Dimensions Units of Measure", domain=lambda self: [ ("category_id", "=", self.env.ref("uom.uom_categ_length").id) ], @@ -44,7 +44,7 @@ class ProductPackaging(models.Model): max_weight = fields.Float("Maximum Weight") weight_uom_id = fields.Many2one( "uom.uom", - string="Weight", + string="Weight Units of Measure", domain=lambda self: [ ("category_id", "=", self.env.ref("uom.product_uom_categ_kgm").id) ], @@ -72,7 +72,7 @@ class ProductPackaging(models.Model): volume_uom_id = fields.Many2one( "uom.uom", - string="Volume", + string="Volume Units of Measure", domain=lambda self: [ ("category_id", "=", self.env.ref("uom.product_uom_categ_vol").id) ], diff --git a/product_packaging_dimension/readme/CONTRIBUTORS.rst b/product_packaging_dimension/readme/CONTRIBUTORS.rst index eafe874a259..409a54ad273 100644 --- a/product_packaging_dimension/readme/CONTRIBUTORS.rst +++ b/product_packaging_dimension/readme/CONTRIBUTORS.rst @@ -1,2 +1,3 @@ * Patrick Tombez * Akim Juillerat +* Kévin Roche From 0372be21054d4ec5bfce870bea8f7358c7c3013a Mon Sep 17 00:00:00 2001 From: oca-travis Date: Tue, 25 May 2021 13:57:36 +0000 Subject: [PATCH 12/20] [UPD] Update product_packaging_dimension.pot --- .../i18n/product_packaging_dimension.pot | 118 +++++++++++++++--- 1 file changed, 99 insertions(+), 19 deletions(-) diff --git a/product_packaging_dimension/i18n/product_packaging_dimension.pot b/product_packaging_dimension/i18n/product_packaging_dimension.pot index 80cdab0392f..47de5f07349 100644 --- a/product_packaging_dimension/i18n/product_packaging_dimension.pot +++ b/product_packaging_dimension/i18n/product_packaging_dimension.pot @@ -1,26 +1,81 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * product_packaging_dimension +# * product_packaging_dimension # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: <>\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: product_packaging_dimension +#: model_terms:ir.ui.view,arch_db:product_packaging_dimension.product_packaging_form_view_inherit +msgid "Dimensions" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__length_uom_id +msgid "Dimensions Units of Measure" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__display_name +msgid "Display Name" +msgstr "" + #. module: product_packaging_dimension #: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__height -msgid "Height (mm)" +msgid "Height" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.constraint,message:product_packaging_dimension.constraint_product_packaging_positive_height +msgid "Height must be positive" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__id +msgid "ID" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging____last_update +msgid "Last Modified on" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__packaging_length +msgid "Length" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.constraint,message:product_packaging_dimension.constraint_product_packaging_positive_length +msgid "Length must be positive" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__length_uom_name +msgid "Length unit of measure label" msgstr "" #. module: product_packaging_dimension -#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__lngth -msgid "Length (mm)" +#: model:ir.model.constraint,message:product_packaging_dimension.constraint_product_packaging_positive_max_weight +msgid "Max Weight must be positive" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__max_weight +msgid "Maximum Weight" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__volume_uom_id +msgid "Packaging volume unit of measure" msgstr "" #. module: product_packaging_dimension @@ -28,38 +83,63 @@ msgstr "" msgid "Product Packaging" msgstr "" +#. module: product_packaging_dimension +#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__volume +msgid "The Packaging volume" +msgstr "" + +#. module: product_packaging_dimension +#: model_terms:ir.ui.view,arch_db:product_packaging_dimension.product_packaging_form_view_inherit +msgid "Units of Measure" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__length_uom_id +msgid "UoM for packaging length, height, width (based on lenght UoM)" +msgstr "" + #. module: product_packaging_dimension #: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__volume -msgid "Volume (m³)" +msgid "Volume" msgstr "" #. module: product_packaging_dimension -#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__max_weight -msgid "Weight (kg)" +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__volume_uom_name +msgid "Volume Unit of Measure label" msgstr "" #. module: product_packaging_dimension -#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__width -msgid "Width (mm)" +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__volume_uom_id +msgid "Volume Units of Measure" msgstr "" #. module: product_packaging_dimension -#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__height -msgid "height in millimeters" +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__weight +#: model_terms:ir.ui.view,arch_db:product_packaging_dimension.product_packaging_form_view_inherit +msgid "Weight" msgstr "" #. module: product_packaging_dimension -#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__lngth -msgid "length in millimeters" +#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__weight_uom_id +msgid "Weight Unit of Measure" msgstr "" #. module: product_packaging_dimension -#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__volume -msgid "volume in cubic meters" +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__weight_uom_id +msgid "Weight Units of Measure" msgstr "" #. module: product_packaging_dimension -#: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__width -msgid "width in millimeters" +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__weight_uom_name +msgid "Weight unit of measure label" msgstr "" +#. module: product_packaging_dimension +#: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__width +msgid "Width" +msgstr "" + +#. module: product_packaging_dimension +#: model:ir.model.constraint,message:product_packaging_dimension.constraint_product_packaging_positive_width +msgid "Width must be positive" +msgstr "" From 5d17164fd0da3271252af5cc2c8dc21898e85da0 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 25 May 2021 14:24:48 +0000 Subject: [PATCH 13/20] [UPD] README.rst --- product_packaging_dimension/README.rst | 13 +++++++------ .../static/description/index.html | 8 +++++--- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/product_packaging_dimension/README.rst b/product_packaging_dimension/README.rst index c751cd7f04b..79eb1eb125a 100644 --- a/product_packaging_dimension/README.rst +++ b/product_packaging_dimension/README.rst @@ -14,13 +14,13 @@ Product Packaging Dimension :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fproduct--attribute-lightgray.png?logo=github - :target: https://github.com/OCA/product-attribute/tree/12.0/product_packaging_dimension + :target: https://github.com/OCA/product-attribute/tree/14.0/product_packaging_dimension :alt: OCA/product-attribute .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/product-attribute-12-0/product-attribute-12-0-product_packaging_dimension + :target: https://translation.odoo-community.org/projects/product-attribute-14-0/product-attribute-14-0-product_packaging_dimension :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/135/12.0 + :target: https://runbot.odoo-community.org/runbot/135/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -28,7 +28,6 @@ Product Packaging Dimension This module allows to store dimensions (length, width, height), weight and volume of product packagings. - **Table of contents** .. contents:: @@ -45,7 +44,7 @@ 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -56,12 +55,14 @@ Authors ~~~~~~~ * Camptocamp +* Akretion Contributors ~~~~~~~~~~~~ * Patrick Tombez * Akim Juillerat +* Kévin Roche Maintainers ~~~~~~~~~~~ @@ -76,6 +77,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/product-attribute `_ project on GitHub. +This module is part of the `OCA/product-attribute `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/product_packaging_dimension/static/description/index.html b/product_packaging_dimension/static/description/index.html index 19ccc077fd5..b65f991cb6d 100644 --- a/product_packaging_dimension/static/description/index.html +++ b/product_packaging_dimension/static/description/index.html @@ -367,7 +367,7 @@

Product Packaging Dimension

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/product-attribute Translate me on Weblate Try me on Runbot

+

Beta License: AGPL-3 OCA/product-attribute Translate me on Weblate Try me on Runbot

This module allows to store dimensions (length, width, height), weight and volume of product packagings.

Table of contents

@@ -394,7 +394,7 @@

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.

+feedback.

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

@@ -403,6 +403,7 @@

Credits

Authors

  • Camptocamp
  • +
  • Akretion
@@ -410,6 +411,7 @@

Contributors

@@ -419,7 +421,7 @@

Maintainers

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

-

This module is part of the OCA/product-attribute project on GitHub.

+

This module is part of the OCA/product-attribute project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

From 6c99108b19151b5793acc8bcda692b2e588e3488 Mon Sep 17 00:00:00 2001 From: Hai Lang Date: Fri, 10 Sep 2021 08:27:12 +0700 Subject: [PATCH 14/20] [14.0][FIX] product_packaging_dimension: _compute_volume for multi records --- .../models/product_packaging.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/product_packaging_dimension/models/product_packaging.py b/product_packaging_dimension/models/product_packaging.py index 0af8b290744..12384868e64 100644 --- a/product_packaging_dimension/models/product_packaging.py +++ b/product_packaging_dimension/models/product_packaging.py @@ -92,13 +92,14 @@ class ProductPackaging(models.Model): "packaging_length", "width", "height", "length_uom_id", "volume_uom_id" ) def _compute_volume(self): - self.volume = self._calculate_volume( - self.packaging_length, - self.height, - self.width, - self.length_uom_id, - self.volume_uom_id, - ) + for packaging in self: + packaging.volume = packaging._calculate_volume( + packaging.packaging_length, + packaging.height, + packaging.width, + packaging.length_uom_id, + packaging.volume_uom_id, + ) def _calculate_volume( self, packaging_length, height, width, length_uom_id, volume_uom_id From b5ce7afeae2cb20f0831a9b8add2cdf9178b8c7c Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 14 Sep 2021 11:44:20 +0000 Subject: [PATCH 15/20] product_packaging_dimension 14.0.1.0.1 --- product_packaging_dimension/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_packaging_dimension/__manifest__.py b/product_packaging_dimension/__manifest__.py index b3a8aacdc6e..a743956bc2f 100644 --- a/product_packaging_dimension/__manifest__.py +++ b/product_packaging_dimension/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Product Packaging Dimension", "summary": "Manage packaging dimensions and weight", - "version": "14.0.1.0.0", + "version": "14.0.1.0.1", "category": "Product", "author": "Camptocamp, Akretion, Odoo Community Association (OCA)", "license": "AGPL-3", From 57fe71378a36d65964bb9f27767b218265ac5a3e Mon Sep 17 00:00:00 2001 From: Iryna Vyshnevska Date: Fri, 10 Dec 2021 10:54:56 +0200 Subject: [PATCH 16/20] [FIX] restore initial type for fields fix migration step --- .../migrations/14.0.1.0.0/pre-migrate.py | 19 +++++-------------- .../models/product_packaging.py | 14 +++++++------- .../tests/test_packaging_volume.py | 16 ++++++++-------- 3 files changed, 20 insertions(+), 29 deletions(-) diff --git a/product_packaging_dimension/migrations/14.0.1.0.0/pre-migrate.py b/product_packaging_dimension/migrations/14.0.1.0.0/pre-migrate.py index aa1de7a1c17..b1c282b3da7 100644 --- a/product_packaging_dimension/migrations/14.0.1.0.0/pre-migrate.py +++ b/product_packaging_dimension/migrations/14.0.1.0.0/pre-migrate.py @@ -5,18 +5,9 @@ def migrate(cr, version): - # Rename lnght into packaging_length - if column_exists(cr, "product_packaging", "lnght"): - rename_column(cr, "product_packaging", "lnght", "packaging_length") - # Convert old hard-coded uom values (mm) - # into new default uom values (m) - cr.execute( - """ - UPDATE product_packaging - SET - packaging_length = packaging_length/1000, - height = height/1000, - width = width/1000, - """ - ) + # Rename lngth into packaging_length + if column_exists(cr, "product_packaging", "packaging_length"): + cr.execute("UPDATE product_packaging SET packaging_length = lngth") + elif column_exists(cr, "product_packaging", "lngth"): + rename_column(cr, "product_packaging", "lngth", "packaging_length") diff --git a/product_packaging_dimension/models/product_packaging.py b/product_packaging_dimension/models/product_packaging.py index 12384868e64..42f64fb23bc 100644 --- a/product_packaging_dimension/models/product_packaging.py +++ b/product_packaging_dimension/models/product_packaging.py @@ -10,18 +10,18 @@ class ProductPackaging(models.Model): # The redundancy here avoids unnecessary dependencies on sale modules. _sql_constraints = [ - ("positive_height", "CHECK(height>=0.0)", "Height must be positive"), - ("positive_width", "CHECK(width>=0.0)", "Width must be positive"), - ("positive_length", "CHECK(packaging_length>=0.0)", "Length must be positive"), + ("positive_height", "CHECK(height>=0)", "Height must be positive"), + ("positive_width", "CHECK(width>=0)", "Width must be positive"), + ("positive_length", "CHECK(packaging_length>=0)", "Length must be positive"), ( "positive_max_weight", - "CHECK(max_weight>=0.0)", + "CHECK(max_weight>=0)", "Max Weight must be positive", ), ] - height = fields.Float("Height") - width = fields.Float("Width") - packaging_length = fields.Float("Length") + height = fields.Integer("Height") + width = fields.Integer("Width") + packaging_length = fields.Integer("Length") length_uom_id = fields.Many2one( "uom.uom", diff --git a/product_packaging_dimension/tests/test_packaging_volume.py b/product_packaging_dimension/tests/test_packaging_volume.py index 50340afff35..4a1d5c78030 100644 --- a/product_packaging_dimension/tests/test_packaging_volume.py +++ b/product_packaging_dimension/tests/test_packaging_volume.py @@ -53,28 +53,28 @@ def test_compute_volume(self): # initial UoM always in meters and Volume in m3, but with different dimensions. self.packaging.packaging_length = 10 - self.packaging.height = 8.0 - self.packaging.width = 10.8 + self.packaging.height = 8 + self.packaging.width = 10 self.packaging.length_uom_id = self.uom_m self.packaging.volume_uom_id = self.uom_m3 self.packaging._compute_volume() - self.assertEqual(864, self.packaging.volume) + self.assertEqual(800, self.packaging.volume) self.packaging2.packaging_length = 6.0 self.packaging2.height = 14.0 - self.packaging2.width = 1.2 + self.packaging2.width = 1.0 self.packaging2.length_uom_id = self.uom_m self.packaging2.volume_uom_id = self.uom_m3 self.packaging2._compute_volume() - self.assertAlmostEqual(100.8, self.packaging2.volume) + self.assertEqual(84.0, self.packaging2.volume) self.packaging3.packaging_length = 100.0 - self.packaging3.height = 50.5 - self.packaging3.width = 80.0 + self.packaging3.height = 50 + self.packaging3.width = 80 self.packaging3.length_uom_id = self.uom_m self.packaging3.volume_uom_id = self.uom_m3 self.packaging3._compute_volume() - self.assertEqual(404000, self.packaging3.volume) + self.assertEqual(400000, self.packaging3.volume) def test_output_uom(self): # Tests with both different initial and volume UoMs. From 5a1701b298df24540d32244905d283653a299d45 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Fri, 21 Jan 2022 10:37:51 +0000 Subject: [PATCH 17/20] product_packaging_dimension 14.0.1.0.2 --- product_packaging_dimension/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/product_packaging_dimension/__manifest__.py b/product_packaging_dimension/__manifest__.py index a743956bc2f..a91af8a1d66 100644 --- a/product_packaging_dimension/__manifest__.py +++ b/product_packaging_dimension/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Product Packaging Dimension", "summary": "Manage packaging dimensions and weight", - "version": "14.0.1.0.1", + "version": "14.0.1.0.2", "category": "Product", "author": "Camptocamp, Akretion, Odoo Community Association (OCA)", "license": "AGPL-3", From 3c2670beadf382eac8299b89cb3a6b72e4894e29 Mon Sep 17 00:00:00 2001 From: Noel estudillo Date: Tue, 22 Mar 2022 11:03:39 +0000 Subject: [PATCH 18/20] Translated using Weblate (Catalan) Currently translated at 100.0% (10 of 10 strings) Translation: product-attribute-14.0/product-attribute-14.0-product_packaging_dimension Translate-URL: https://translation.odoo-community.org/projects/product-attribute-14-0/product-attribute-14-0-product_packaging_dimension/ca/ --- product_packaging_dimension/i18n/ca.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/product_packaging_dimension/i18n/ca.po b/product_packaging_dimension/i18n/ca.po index 884528c4ac4..d541e3410a7 100644 --- a/product_packaging_dimension/i18n/ca.po +++ b/product_packaging_dimension/i18n/ca.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2021-02-16 18:45+0000\n" -"Last-Translator: claudiagn \n" +"PO-Revision-Date: 2022-03-22 13:17+0000\n" +"Last-Translator: Noel estudillo \n" "Language-Team: none\n" "Language: ca\n" "MIME-Version: 1.0\n" @@ -44,7 +44,7 @@ msgstr "Pes (kg)" #. module: product_packaging_dimension #: model:ir.model.fields,field_description:product_packaging_dimension.field_product_packaging__width msgid "Width (mm)" -msgstr "" +msgstr "Amplada (mm)" #. module: product_packaging_dimension #: model:ir.model.fields,help:product_packaging_dimension.field_product_packaging__height From 5d76ffd6972b8f94a561b3558f65f507c3f89608 Mon Sep 17 00:00:00 2001 From: Fernando La Chica Date: Thu, 29 Sep 2022 09:19:46 +0200 Subject: [PATCH 19/20] [IMP] product_packaging_dimension: black, isort --- .../odoo/addons/product_packaging_dimension | 1 + setup/product_packaging_dimension/setup.py | 6 ++++++ 2 files changed, 7 insertions(+) create mode 120000 setup/product_packaging_dimension/odoo/addons/product_packaging_dimension create mode 100644 setup/product_packaging_dimension/setup.py diff --git a/setup/product_packaging_dimension/odoo/addons/product_packaging_dimension b/setup/product_packaging_dimension/odoo/addons/product_packaging_dimension new file mode 120000 index 00000000000..764fda789f0 --- /dev/null +++ b/setup/product_packaging_dimension/odoo/addons/product_packaging_dimension @@ -0,0 +1 @@ +../../../../product_packaging_dimension \ No newline at end of file diff --git a/setup/product_packaging_dimension/setup.py b/setup/product_packaging_dimension/setup.py new file mode 100644 index 00000000000..28c57bb6403 --- /dev/null +++ b/setup/product_packaging_dimension/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) From 2b7f8983fdea80411170005d7280c21284540680 Mon Sep 17 00:00:00 2001 From: Fernando La Chica Date: Thu, 29 Sep 2022 09:24:39 +0200 Subject: [PATCH 20/20] [MIG] product_packaging_dimension: 15.0 --- product_packaging_dimension/__manifest__.py | 2 +- .../migrations/14.0.1.0.0/pre-migrate.py | 13 ------------- .../models/product_packaging.py | 9 ++++----- product_packaging_dimension/readme/CONTRIBUTORS.rst | 1 + 4 files changed, 6 insertions(+), 19 deletions(-) delete mode 100644 product_packaging_dimension/migrations/14.0.1.0.0/pre-migrate.py diff --git a/product_packaging_dimension/__manifest__.py b/product_packaging_dimension/__manifest__.py index a91af8a1d66..be25639ac0c 100644 --- a/product_packaging_dimension/__manifest__.py +++ b/product_packaging_dimension/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Product Packaging Dimension", "summary": "Manage packaging dimensions and weight", - "version": "14.0.1.0.2", + "version": "15.0.1.0.0", "category": "Product", "author": "Camptocamp, Akretion, Odoo Community Association (OCA)", "license": "AGPL-3", diff --git a/product_packaging_dimension/migrations/14.0.1.0.0/pre-migrate.py b/product_packaging_dimension/migrations/14.0.1.0.0/pre-migrate.py deleted file mode 100644 index b1c282b3da7..00000000000 --- a/product_packaging_dimension/migrations/14.0.1.0.0/pre-migrate.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright 2021 Akretion -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). - -from odoo.tools.sql import column_exists, rename_column - - -def migrate(cr, version): - - # Rename lngth into packaging_length - if column_exists(cr, "product_packaging", "packaging_length"): - cr.execute("UPDATE product_packaging SET packaging_length = lngth") - elif column_exists(cr, "product_packaging", "lngth"): - rename_column(cr, "product_packaging", "lngth", "packaging_length") diff --git a/product_packaging_dimension/models/product_packaging.py b/product_packaging_dimension/models/product_packaging.py index 42f64fb23bc..e248f1173b1 100644 --- a/product_packaging_dimension/models/product_packaging.py +++ b/product_packaging_dimension/models/product_packaging.py @@ -19,9 +19,9 @@ class ProductPackaging(models.Model): "Max Weight must be positive", ), ] - height = fields.Integer("Height") - width = fields.Integer("Width") - packaging_length = fields.Integer("Length") + height = fields.Integer() + width = fields.Integer() + packaging_length = fields.Integer() length_uom_id = fields.Many2one( "uom.uom", @@ -40,7 +40,7 @@ class ProductPackaging(models.Model): readonly=True, ) - weight = fields.Float("Weight") + weight = fields.Float() max_weight = fields.Float("Maximum Weight") weight_uom_id = fields.Many2one( "uom.uom", @@ -62,7 +62,6 @@ class ProductPackaging(models.Model): ) volume = fields.Float( - "Volume", digits=(8, 4), compute="_compute_volume", readonly=True, diff --git a/product_packaging_dimension/readme/CONTRIBUTORS.rst b/product_packaging_dimension/readme/CONTRIBUTORS.rst index 409a54ad273..e8de7e6a166 100644 --- a/product_packaging_dimension/readme/CONTRIBUTORS.rst +++ b/product_packaging_dimension/readme/CONTRIBUTORS.rst @@ -1,3 +1,4 @@ * Patrick Tombez * Akim Juillerat * Kévin Roche +* Fernando La Chica