From 1bb2e13f0ec5fb0f7419587c554afa981cb588b9 Mon Sep 17 00:00:00 2001 From: DavidJForgeFlow Date: Wed, 26 Jun 2024 11:51:18 +0200 Subject: [PATCH 1/9] [ADD] mrp_production_back_to_draft Allows to return to draft a confirmed or cancelled MO. --- mrp_production_back_to_draft/README.rst | 76 ++++ mrp_production_back_to_draft/__init__.py | 4 + mrp_production_back_to_draft/__manifest__.py | 17 + .../i18n/mrp_production_back_to_draft.pot | 47 ++ .../models/__init__.py | 4 + .../models/mrp_production.py | 24 + .../readme/CONTRIBUTORS.rst | 1 + .../readme/DESCRIPTION.rst | 1 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 420 ++++++++++++++++++ .../tests/__init__.py | 4 + .../tests/test_mrp_return_to_draft.py | 88 ++++ .../views/mrp_production_views.xml | 24 + 13 files changed, 710 insertions(+) create mode 100644 mrp_production_back_to_draft/README.rst create mode 100644 mrp_production_back_to_draft/__init__.py create mode 100644 mrp_production_back_to_draft/__manifest__.py create mode 100644 mrp_production_back_to_draft/i18n/mrp_production_back_to_draft.pot create mode 100644 mrp_production_back_to_draft/models/__init__.py create mode 100644 mrp_production_back_to_draft/models/mrp_production.py create mode 100644 mrp_production_back_to_draft/readme/CONTRIBUTORS.rst create mode 100644 mrp_production_back_to_draft/readme/DESCRIPTION.rst create mode 100644 mrp_production_back_to_draft/static/description/icon.png create mode 100644 mrp_production_back_to_draft/static/description/index.html create mode 100644 mrp_production_back_to_draft/tests/__init__.py create mode 100644 mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py create mode 100644 mrp_production_back_to_draft/views/mrp_production_views.xml diff --git a/mrp_production_back_to_draft/README.rst b/mrp_production_back_to_draft/README.rst new file mode 100644 index 00000000000..f7647d577ea --- /dev/null +++ b/mrp_production_back_to_draft/README.rst @@ -0,0 +1,76 @@ +============================ +MRP Production Back to Draft +============================ + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:6315dac1650b1261af8b4c3a8071f794337647dad41a31f8bd15dfbe29573a99 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Fmanufacture-lightgray.png?logo=github + :target: https://github.com/OCA/manufacture/tree/14.0/mrp_production_back_to_draft + :alt: OCA/manufacture +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/manufacture-14-0/manufacture-14-0-mrp_production_back_to_draft + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/manufacture&target_branch=14.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to return to draft a confirmed or cancelled MO. + +**Table of contents** + +.. contents:: + :local: + +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 to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* ForgeFlow + +Contributors +~~~~~~~~~~~~ + +* David Jiménez + +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/manufacture `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mrp_production_back_to_draft/__init__.py b/mrp_production_back_to_draft/__init__.py new file mode 100644 index 00000000000..638f0c9a4cd --- /dev/null +++ b/mrp_production_back_to_draft/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2024 ForgeFlow S.L. (http://www.forgeflow.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import models diff --git a/mrp_production_back_to_draft/__manifest__.py b/mrp_production_back_to_draft/__manifest__.py new file mode 100644 index 00000000000..8bb2bc6f2bd --- /dev/null +++ b/mrp_production_back_to_draft/__manifest__.py @@ -0,0 +1,17 @@ +# Copyright 2024 ForgeFlow S.L. (https://www.forgeflow.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +{ + "name": "MRP Production Back to Draft", + "version": "14.0.1.0.0", + "author": "ForgeFlow, Odoo Community Association (OCA)", + "summary": "Allows to return to draft a confirmed or cancelled MO.", + "website": "https://github.com/OCA/manufacture", + "category": "Manufacturing/Manufacturing", + "license": "AGPL-3", + "depends": ["mrp"], + "data": [ + "views/mrp_production_views.xml", + ], + "installable": True, +} diff --git a/mrp_production_back_to_draft/i18n/mrp_production_back_to_draft.pot b/mrp_production_back_to_draft/i18n/mrp_production_back_to_draft.pot new file mode 100644 index 00000000000..3afe3eac2db --- /dev/null +++ b/mrp_production_back_to_draft/i18n/mrp_production_back_to_draft.pot @@ -0,0 +1,47 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mrp_production_back_to_draft +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.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: mrp_production_back_to_draft +#: model:ir.model.fields,field_description:mrp_production_back_to_draft.field_mrp_production__display_name +msgid "Display Name" +msgstr "" + +#. module: mrp_production_back_to_draft +#: model:ir.model.fields,field_description:mrp_production_back_to_draft.field_mrp_production__id +msgid "ID" +msgstr "" + +#. module: mrp_production_back_to_draft +#: model:ir.model.fields,field_description:mrp_production_back_to_draft.field_mrp_production____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mrp_production_back_to_draft +#: model:ir.model,name:mrp_production_back_to_draft.model_mrp_production +msgid "Production Order" +msgstr "" + +#. module: mrp_production_back_to_draft +#: model_terms:ir.ui.view,arch_db:mrp_production_back_to_draft.mrp_production_form_view_return_to_draft +msgid "Return to Draft" +msgstr "" + +#. module: mrp_production_back_to_draft +#: code:addons/mrp_production_back_to_draft/models/mrp_production.py:0 +#, python-format +msgid "" +"You cannot return to draft the following MO: %s. Only confirmed or cancelled" +" MO can be returned to draft." +msgstr "" diff --git a/mrp_production_back_to_draft/models/__init__.py b/mrp_production_back_to_draft/models/__init__.py new file mode 100644 index 00000000000..59d2f0e1c9d --- /dev/null +++ b/mrp_production_back_to_draft/models/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2024 ForgeFlow S.L. (http://www.forgeflow.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import mrp_production diff --git a/mrp_production_back_to_draft/models/mrp_production.py b/mrp_production_back_to_draft/models/mrp_production.py new file mode 100644 index 00000000000..57c18204de7 --- /dev/null +++ b/mrp_production_back_to_draft/models/mrp_production.py @@ -0,0 +1,24 @@ +# Copyright 2024 ForgeFlow S.L. (http://www.forgeflow.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from odoo import _, models +from odoo.exceptions import UserError + + +class MrpProduction(models.Model): + _inherit = "mrp.production" + + def action_return_to_draft(self): + self._check_company() + for rec in self: + if rec.state not in ["confirmed", "cancel"]: + raise UserError( + _( + "You cannot return to draft the following MO: %s. " + "Only confirmed or cancelled MO can be returned to draft." + ) + % rec.name + ) + else: + rec.move_raw_ids._action_cancel() + rec.move_raw_ids.write({"state": "draft"}) diff --git a/mrp_production_back_to_draft/readme/CONTRIBUTORS.rst b/mrp_production_back_to_draft/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..fcd08101846 --- /dev/null +++ b/mrp_production_back_to_draft/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* David Jiménez diff --git a/mrp_production_back_to_draft/readme/DESCRIPTION.rst b/mrp_production_back_to_draft/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..2553875609f --- /dev/null +++ b/mrp_production_back_to_draft/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module allows to return to draft a confirmed or cancelled MO. diff --git a/mrp_production_back_to_draft/static/description/icon.png b/mrp_production_back_to_draft/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z z?n?eq1XP>p-IM$Z^C;2L3itnbJZAip*Zo0aw2bs8@(s^~*8T9go!%dHcAz2lM;`yp zD=7&xjFV$S&5uDaiScyD?B-i1ze`+CoRtz`Wn+Zl&#s4&}MO{@N!ufrzjG$B79)Y2d3tBk&)TxUTw@QS0TEL_?njX|@vq?Uz(nBFK5Pq7*xj#u*R&i|?7+6# z+|r_n#SW&LXhtheZdah{ZVoqwyT{D>MC3nkFF#N)xLi{p7J1jXlmVeb;cP5?e(=f# zuT7fvjSbjS781v?7{)-X3*?>tq?)Yd)~|1{BDS(pqC zC}~H#WXlkUW*H5CDOo<)#x7%RY)A;ShGhI5s*#cRDA8YgqG(HeKDx+#(ZQ?386dv! zlXCO)w91~Vw4AmOcATuV653fa9R$fyK8ul%rG z-wfS zihugoZyr38Im?Zuh6@RcF~t1anQu7>#lPpb#}4cOA!EM11`%f*07RqOVkmX{p~KJ9 z^zP;K#|)$`^Rb{rnHGH{~>1(fawV0*Z#)}M`m8-?ZJV<+e}s9wE# z)l&az?w^5{)`S(%MRzxdNqrs1n*-=jS^_jqE*5XDrA0+VE`5^*p3CuM<&dZEeCjoz zR;uu_H9ZPZV|fQq`Cyw4nscrVwi!fE6ciMmX$!_hN7uF;jjKG)d2@aC4ropY)8etW=xJvni)8eHi`H$%#zn^WJ5NLc-rqk|u&&4Z6fD_m&JfSI1Bvb?b<*n&sfl0^t z=HnmRl`XrFvMKB%9}>PaA`m-fK6a0(8=qPkWS5bb4=v?XcWi&hRY?O5HdulRi4?fN zlsJ*N-0Qw+Yic@s0(2uy%F@ib;GjXt01Fmx5XbRo6+n|pP(&nodMoap^z{~q ziEeaUT@Mxe3vJSfI6?uLND(CNr=#^W<1b}jzW58bIfyWTDle$mmS(|x-0|2UlX+9k zQ^EX7Nw}?EzVoBfT(-LT|=9N@^hcn-_p&sqG z&*oVs2JSU+N4ZD`FhCAWaS;>|wH2G*Id|?pa#@>tyxX`+4HyIArWDvVrX)2WAOQff z0qyHu&-S@i^MS-+j--!pr4fPBj~_8({~e1bfcl0wI1kaoN>mJL6KUPQm5N7lB(ui1 zE-o%kq)&djzWJ}ob<-GfDlkB;F31j-VHKvQUGQ3sp`CwyGJk_i!y^sD0fqC@$9|jO zOqN!r!8-p==F@ZVP=U$qSpY(gQ0)59P1&t@y?5rvg<}E+GB}26NYPp4f2YFQrQtot5mn3wu_qprZ=>Ig-$ zbW26Ws~IgY>}^5w`vTB(G`PTZaDiGBo5o(tp)qli|NeV( z@H_=R8V39rt5J5YB2Ky?4eJJ#b`_iBe2ot~6%7mLt5t8Vwi^Jy7|jWXqa3amOIoRb zOr}WVFP--DsS`1WpN%~)t3R!arKF^Q$e12KEqU36AWwnCBICpH4XCsfnyrHr>$I$4 z!DpKX$OKLWarN7nv@!uIA+~RNO)l$$w}p(;b>mx8pwYvu;dD_unryX_NhT8*Tj>BTrTTL&!?O+%Rv;b?B??gSzdp?6Uug9{ zd@V08Z$BdI?fpoCS$)t4mg4rT8Q_I}h`0d-vYZ^|dOB*Q^S|xqTV*vIg?@fVFSmMpaw0qtTRbx} z({Pg?#{2`sc9)M5N$*N|4;^t$+QP?#mov zGVC@I*lBVrOU-%2y!7%)fAKjpEFsgQc4{amtiHb95KQEwvf<(3T<9-Zm$xIew#P22 zc2Ix|App^>v6(3L_MCU0d3W##AB0M~3D00EWoKZqsJYT(#@w$Y_H7G22M~ApVFTRHMI_3be)Lkn#0F*V8Pq zc}`Cjy$bE;FJ6H7p=0y#R>`}-m4(0F>%@P|?7fx{=R^uFdISRnZ2W_xQhD{YuR3t< z{6yxu=4~JkeA;|(J6_nv#>Nvs&FuLA&PW^he@t(UwFFE8)|a!R{`E`K`i^ZnyE4$k z;(749Ix|oi$c3QbEJ3b~D_kQsPz~fIUKym($a_7dJ?o+40*OLl^{=&oq$<#Q(yyrp z{J-FAniyAw9tPbe&IhQ|a`DqFTVQGQ&Gq3!C2==4x{6EJwiPZ8zub-iXoUtkJiG{} zPaR&}_fn8_z~(=;5lD-aPWD3z8PZS@AaUiomF!G8I}Mf>e~0g#BelA-5#`cj;O5>N Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/mrp_production_back_to_draft/static/description/index.html b/mrp_production_back_to_draft/static/description/index.html new file mode 100644 index 00000000000..82c1ba7ed3b --- /dev/null +++ b/mrp_production_back_to_draft/static/description/index.html @@ -0,0 +1,420 @@ + + + + + +MRP Production Back to Draft + + + +
+

MRP Production Back to Draft

+ + +

Beta License: AGPL-3 OCA/manufacture Translate me on Weblate Try me on Runboat

+

This module allows to return to draft a confirmed or cancelled MO.

+

Table of contents

+ +
+

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 to smash it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • ForgeFlow
  • +
+
+
+

Contributors

+ +
+
+

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/manufacture project on GitHub.

+

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

+
+
+
+ + diff --git a/mrp_production_back_to_draft/tests/__init__.py b/mrp_production_back_to_draft/tests/__init__.py new file mode 100644 index 00000000000..c7804649840 --- /dev/null +++ b/mrp_production_back_to_draft/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2024 ForgeFlow S.L. (http://www.forgeflow.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import test_mrp_return_to_draft diff --git a/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py b/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py new file mode 100644 index 00000000000..98edd0a19bc --- /dev/null +++ b/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py @@ -0,0 +1,88 @@ +# Copyright 2024 ForgeFlow S.L. (https://www.forgeflow.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api +from odoo.exceptions import UserError +from odoo.tests import common, tagged + + +@tagged("post_install", "-at_install") +class TestMrpProductionAutovalidate(common.SavepointCase): + @classmethod + def setUpClass(cls): + super(TestMrpProductionAutovalidate, cls).setUpClass() + cls.user_admin = cls.env.ref("base.user_admin") + cls.env = api.Environment(cls.cr, cls.user_admin.id, {}) + cls.env.user.tz = False # Make sure there's no timezone in user + cls.warehouse = cls.env.ref("stock.warehouse0") + cls.location = cls.env.ref("stock.stock_location_stock") + cls.env.user.write( + { + "groups_id": [ + (6, 0, cls.env.user.groups_id.ids), + (4, cls.env.ref("stock.group_stock_manager").id), + ], + } + ) + cls.prod_tp1 = cls.env["product.product"].create( + { + "name": "Test Product 1", + "type": "product", + } + ) + cls.prod_ti1 = cls.env["product.product"].create( + { + "name": "Test Product Intermediate 1", + "type": "product", + } + ) + # Create BoMs: + cls.test_bom_1 = cls.env["mrp.bom"].create( + { + "product_id": cls.prod_tp1.id, + "product_tmpl_id": cls.prod_tp1.product_tmpl_id.id, + "product_uom_id": cls.prod_tp1.uom_id.id, + "product_qty": 1.0, + "type": "normal", + } + ) + cls.env["mrp.bom.line"].create( + { + "bom_id": cls.test_bom_1.id, + "product_id": cls.prod_ti1.id, + "product_qty": 1.0, + } + ) + cls.mo_1 = cls.env["mrp.production"].create( + { + "name": "MO ABC", + "product_id": cls.prod_tp1.id, + "product_uom_id": cls.prod_tp1.uom_id.id, + "product_qty": 2, + "bom_id": cls.test_bom_1.id, + } + ) + + def test_01_mrp_return_to_draft(self): + self.env["stock.quant"]._update_available_quantity( + self.prod_ti1, self.location, 2 + ) + self.assertEqual(self.mo_1.state, "draft") + self.mo_1._onchange_move_raw() + self.mo_1.action_confirm() + self.assertEqual(self.mo_1.state, "confirmed") + self.mo_1.action_return_to_draft() + self.assertEqual(self.mo_1.state, "draft") + self.mo_1._onchange_move_raw() + self.mo_1.action_confirm() + self.assertEqual(self.mo_1.state, "confirmed") + self.mo_1.action_cancel() + self.assertEqual(self.mo_1.state, "cancel") + self.mo_1.action_return_to_draft() + self.assertEqual(self.mo_1.state, "draft") + self.mo_1._onchange_move_raw() + self.mo_1.action_confirm() + self.mo_1.qty_producing = 2 + self.assertEqual(self.mo_1.state, "to_close") + with self.assertRaises(UserError): + self.mo_1.action_return_to_draft() diff --git a/mrp_production_back_to_draft/views/mrp_production_views.xml b/mrp_production_back_to_draft/views/mrp_production_views.xml new file mode 100644 index 00000000000..27cfe8b8b88 --- /dev/null +++ b/mrp_production_back_to_draft/views/mrp_production_views.xml @@ -0,0 +1,24 @@ + + + + + mrp.production.form - return_to_draft + mrp.production + + + + + + + From ae9077fa09fa04e108f273a84583b63f531242f9 Mon Sep 17 00:00:00 2001 From: DavidJForgeFlow Date: Fri, 13 Sep 2024 11:35:52 +0200 Subject: [PATCH 2/9] [FIX] mrp_production_back_to_draft: include finished moves. --- mrp_production_back_to_draft/README.rst | 2 +- mrp_production_back_to_draft/__manifest__.py | 2 +- .../models/mrp_production.py | 4 ++-- .../static/description/index.html | 13 ++++++++----- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/mrp_production_back_to_draft/README.rst b/mrp_production_back_to_draft/README.rst index f7647d577ea..42eb81dce64 100644 --- a/mrp_production_back_to_draft/README.rst +++ b/mrp_production_back_to_draft/README.rst @@ -7,7 +7,7 @@ MRP Production Back to Draft !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:6315dac1650b1261af8b4c3a8071f794337647dad41a31f8bd15dfbe29573a99 + !! source digest: sha256:759dd0cf5f18855c3a050e5796eda3ee2f65ed6df213e9a88b8991303e53a33b !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/mrp_production_back_to_draft/__manifest__.py b/mrp_production_back_to_draft/__manifest__.py index 8bb2bc6f2bd..b9eeff503b0 100644 --- a/mrp_production_back_to_draft/__manifest__.py +++ b/mrp_production_back_to_draft/__manifest__.py @@ -3,7 +3,7 @@ { "name": "MRP Production Back to Draft", - "version": "14.0.1.0.0", + "version": "14.0.1.0.1", "author": "ForgeFlow, Odoo Community Association (OCA)", "summary": "Allows to return to draft a confirmed or cancelled MO.", "website": "https://github.com/OCA/manufacture", diff --git a/mrp_production_back_to_draft/models/mrp_production.py b/mrp_production_back_to_draft/models/mrp_production.py index 57c18204de7..b78c8535403 100644 --- a/mrp_production_back_to_draft/models/mrp_production.py +++ b/mrp_production_back_to_draft/models/mrp_production.py @@ -20,5 +20,5 @@ def action_return_to_draft(self): % rec.name ) else: - rec.move_raw_ids._action_cancel() - rec.move_raw_ids.write({"state": "draft"}) + (rec.move_raw_ids + rec.move_finished_ids)._action_cancel() + (rec.move_raw_ids + rec.move_finished_ids).write({"state": "draft"}) diff --git a/mrp_production_back_to_draft/static/description/index.html b/mrp_production_back_to_draft/static/description/index.html index 82c1ba7ed3b..b5f845c7b48 100644 --- a/mrp_production_back_to_draft/static/description/index.html +++ b/mrp_production_back_to_draft/static/description/index.html @@ -8,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -274,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -300,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -366,7 +367,7 @@

MRP Production Back to Draft

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:6315dac1650b1261af8b4c3a8071f794337647dad41a31f8bd15dfbe29573a99 +!! source digest: sha256:759dd0cf5f18855c3a050e5796eda3ee2f65ed6df213e9a88b8991303e53a33b !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/manufacture Translate me on Weblate Try me on Runboat

This module allows to return to draft a confirmed or cancelled MO.

@@ -407,7 +408,9 @@

Contributors

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +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.

From 1f50031d43766e8249db4d365be2fd166dc67578 Mon Sep 17 00:00:00 2001 From: mymage Date: Tue, 10 Dec 2024 07:52:44 +0000 Subject: [PATCH 3/9] Added translation using Weblate (Italian) --- mrp_production_back_to_draft/i18n/it.po | 48 +++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 mrp_production_back_to_draft/i18n/it.po diff --git a/mrp_production_back_to_draft/i18n/it.po b/mrp_production_back_to_draft/i18n/it.po new file mode 100644 index 00000000000..22b3d426b12 --- /dev/null +++ b/mrp_production_back_to_draft/i18n/it.po @@ -0,0 +1,48 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mrp_production_back_to_draft +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: it\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: mrp_production_back_to_draft +#: model:ir.model.fields,field_description:mrp_production_back_to_draft.field_mrp_production__display_name +msgid "Display Name" +msgstr "" + +#. module: mrp_production_back_to_draft +#: model:ir.model.fields,field_description:mrp_production_back_to_draft.field_mrp_production__id +msgid "ID" +msgstr "" + +#. module: mrp_production_back_to_draft +#: model:ir.model.fields,field_description:mrp_production_back_to_draft.field_mrp_production____last_update +msgid "Last Modified on" +msgstr "" + +#. module: mrp_production_back_to_draft +#: model:ir.model,name:mrp_production_back_to_draft.model_mrp_production +msgid "Production Order" +msgstr "" + +#. module: mrp_production_back_to_draft +#: model_terms:ir.ui.view,arch_db:mrp_production_back_to_draft.mrp_production_form_view_return_to_draft +msgid "Return to Draft" +msgstr "" + +#. module: mrp_production_back_to_draft +#: code:addons/mrp_production_back_to_draft/models/mrp_production.py:0 +#, python-format +msgid "" +"You cannot return to draft the following MO: %s. Only confirmed or cancelled" +" MO can be returned to draft." +msgstr "" From fbd99582a0d2cf4d2d9fdab227e9149e496b1d52 Mon Sep 17 00:00:00 2001 From: Meritxell Abellan Date: Tue, 17 Dec 2024 09:43:17 +0100 Subject: [PATCH 4/9] [IMP] mrp_production_back_to_draft: pre-commit auto fixes --- mrp_production_back_to_draft/README.rst | 18 +++++++++--------- mrp_production_back_to_draft/pyproject.toml | 3 +++ .../readme/CONTRIBUTORS.md | 1 + .../readme/CONTRIBUTORS.rst | 1 - .../readme/{DESCRIPTION.rst => DESCRIPTION.md} | 0 .../static/description/index.html | 17 +++++++---------- .../tests/test_mrp_return_to_draft.py | 2 +- 7 files changed, 21 insertions(+), 21 deletions(-) create mode 100644 mrp_production_back_to_draft/pyproject.toml create mode 100644 mrp_production_back_to_draft/readme/CONTRIBUTORS.md delete mode 100644 mrp_production_back_to_draft/readme/CONTRIBUTORS.rst rename mrp_production_back_to_draft/readme/{DESCRIPTION.rst => DESCRIPTION.md} (100%) diff --git a/mrp_production_back_to_draft/README.rst b/mrp_production_back_to_draft/README.rst index 42eb81dce64..fa3c717f7b8 100644 --- a/mrp_production_back_to_draft/README.rst +++ b/mrp_production_back_to_draft/README.rst @@ -17,13 +17,13 @@ MRP Production Back to Draft :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmanufacture-lightgray.png?logo=github - :target: https://github.com/OCA/manufacture/tree/14.0/mrp_production_back_to_draft + :target: https://github.com/OCA/manufacture/tree/17.0/mrp_production_back_to_draft :alt: OCA/manufacture .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/manufacture-14-0/manufacture-14-0-mrp_production_back_to_draft + :target: https://translation.odoo-community.org/projects/manufacture-17-0/manufacture-17-0-mrp_production_back_to_draft :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/manufacture&target_branch=14.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/manufacture&target_branch=17.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -41,7 +41,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 to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -49,17 +49,17 @@ Credits ======= Authors -~~~~~~~ +------- * ForgeFlow Contributors -~~~~~~~~~~~~ +------------ -* David Jiménez +- David Jiménez Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -71,6 +71,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/manufacture `_ project on GitHub. +This module is part of the `OCA/manufacture `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mrp_production_back_to_draft/pyproject.toml b/mrp_production_back_to_draft/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/mrp_production_back_to_draft/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/mrp_production_back_to_draft/readme/CONTRIBUTORS.md b/mrp_production_back_to_draft/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..ac18283b854 --- /dev/null +++ b/mrp_production_back_to_draft/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +- David Jiménez \<\> diff --git a/mrp_production_back_to_draft/readme/CONTRIBUTORS.rst b/mrp_production_back_to_draft/readme/CONTRIBUTORS.rst deleted file mode 100644 index fcd08101846..00000000000 --- a/mrp_production_back_to_draft/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1 +0,0 @@ -* David Jiménez diff --git a/mrp_production_back_to_draft/readme/DESCRIPTION.rst b/mrp_production_back_to_draft/readme/DESCRIPTION.md similarity index 100% rename from mrp_production_back_to_draft/readme/DESCRIPTION.rst rename to mrp_production_back_to_draft/readme/DESCRIPTION.md diff --git a/mrp_production_back_to_draft/static/description/index.html b/mrp_production_back_to_draft/static/description/index.html index b5f845c7b48..9cd9f74e053 100644 --- a/mrp_production_back_to_draft/static/description/index.html +++ b/mrp_production_back_to_draft/static/description/index.html @@ -8,11 +8,10 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ +:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. -Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -275,7 +274,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: gray; } /* line numbers */ +pre.code .ln { color: grey; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -301,7 +300,7 @@ span.pre { white-space: pre } -span.problematic, pre.problematic { +span.problematic { color: red } span.section-subtitle { @@ -369,7 +368,7 @@

MRP Production Back to Draft

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:759dd0cf5f18855c3a050e5796eda3ee2f65ed6df213e9a88b8991303e53a33b !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/manufacture Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/manufacture Translate me on Weblate Try me on Runboat

This module allows to return to draft a confirmed or cancelled MO.

Table of contents

@@ -388,7 +387,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 to smash it by providing a detailed and welcomed -feedback.

+feedback.

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

@@ -408,13 +407,11 @@

Contributors

Maintainers

This module is maintained by the OCA.

- -Odoo Community Association - +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/manufacture project on GitHub.

+

This module is part of the OCA/manufacture project on GitHub.

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

diff --git a/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py b/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py index 98edd0a19bc..2a9067af281 100644 --- a/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py +++ b/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py @@ -10,7 +10,7 @@ class TestMrpProductionAutovalidate(common.SavepointCase): @classmethod def setUpClass(cls): - super(TestMrpProductionAutovalidate, cls).setUpClass() + super().setUpClass() cls.user_admin = cls.env.ref("base.user_admin") cls.env = api.Environment(cls.cr, cls.user_admin.id, {}) cls.env.user.tz = False # Make sure there's no timezone in user From 99a0931f5586d7434b26f1f6ce8081d9355bbd89 Mon Sep 17 00:00:00 2001 From: Meritxell Abellan Date: Tue, 17 Dec 2024 13:32:48 +0100 Subject: [PATCH 5/9] [MIG] mrp_production_back_to_draft: Migration to 17.0 --- mrp_production_back_to_draft/README.rst | 2 +- mrp_production_back_to_draft/__manifest__.py | 2 +- .../i18n/mrp_production_back_to_draft.pot | 19 ++++++------------- .../models/mrp_production.py | 18 +++++++++++++++++- .../static/description/index.html | 13 ++++++++----- .../tests/test_mrp_return_to_draft.py | 9 ++++----- .../views/mrp_production_views.xml | 2 +- 7 files changed, 38 insertions(+), 27 deletions(-) diff --git a/mrp_production_back_to_draft/README.rst b/mrp_production_back_to_draft/README.rst index fa3c717f7b8..abb109e916c 100644 --- a/mrp_production_back_to_draft/README.rst +++ b/mrp_production_back_to_draft/README.rst @@ -7,7 +7,7 @@ MRP Production Back to Draft !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:759dd0cf5f18855c3a050e5796eda3ee2f65ed6df213e9a88b8991303e53a33b + !! source digest: sha256:08cbd81c049ee4f4b818d59d4bfa0d0bff3e0ac4cc0fdb985a61d12bbb9caa4e !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/mrp_production_back_to_draft/__manifest__.py b/mrp_production_back_to_draft/__manifest__.py index b9eeff503b0..56ee943a8c9 100644 --- a/mrp_production_back_to_draft/__manifest__.py +++ b/mrp_production_back_to_draft/__manifest__.py @@ -3,7 +3,7 @@ { "name": "MRP Production Back to Draft", - "version": "14.0.1.0.1", + "version": "17.0.1.0.0", "author": "ForgeFlow, Odoo Community Association (OCA)", "summary": "Allows to return to draft a confirmed or cancelled MO.", "website": "https://github.com/OCA/manufacture", diff --git a/mrp_production_back_to_draft/i18n/mrp_production_back_to_draft.pot b/mrp_production_back_to_draft/i18n/mrp_production_back_to_draft.pot index 3afe3eac2db..4eceac3964b 100644 --- a/mrp_production_back_to_draft/i18n/mrp_production_back_to_draft.pot +++ b/mrp_production_back_to_draft/i18n/mrp_production_back_to_draft.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 17.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -14,18 +14,10 @@ msgstr "" "Plural-Forms: \n" #. module: mrp_production_back_to_draft -#: model:ir.model.fields,field_description:mrp_production_back_to_draft.field_mrp_production__display_name -msgid "Display Name" -msgstr "" - -#. module: mrp_production_back_to_draft -#: model:ir.model.fields,field_description:mrp_production_back_to_draft.field_mrp_production__id -msgid "ID" -msgstr "" - -#. module: mrp_production_back_to_draft -#: model:ir.model.fields,field_description:mrp_production_back_to_draft.field_mrp_production____last_update -msgid "Last Modified on" +#. odoo-python +#: code:addons/mrp_production_back_to_draft/models/mrp_production.py:0 +#, python-format +msgid "Could not set the production order back to draft" msgstr "" #. module: mrp_production_back_to_draft @@ -39,6 +31,7 @@ msgid "Return to Draft" msgstr "" #. module: mrp_production_back_to_draft +#. odoo-python #: code:addons/mrp_production_back_to_draft/models/mrp_production.py:0 #, python-format msgid "" diff --git a/mrp_production_back_to_draft/models/mrp_production.py b/mrp_production_back_to_draft/models/mrp_production.py index b78c8535403..500d6e4a739 100644 --- a/mrp_production_back_to_draft/models/mrp_production.py +++ b/mrp_production_back_to_draft/models/mrp_production.py @@ -1,7 +1,7 @@ # Copyright 2024 ForgeFlow S.L. (http://www.forgeflow.com) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo import _, models +from odoo import _, api, models from odoo.exceptions import UserError @@ -22,3 +22,19 @@ def action_return_to_draft(self): else: (rec.move_raw_ids + rec.move_finished_ids)._action_cancel() (rec.move_raw_ids + rec.move_finished_ids).write({"state": "draft"}) + if rec.state != "draft": + raise UserError( + _("Could not set the production order back to draft") + ) + + @api.depends("move_raw_ids.state", "move_finished_ids.state") + def _compute_state(self): + super()._compute_state() + for production in self: + if ( + production.state == "cancel" + and all(m.state == "draft" for m in production.move_raw_ids) + and all(m.state == "draft" for m in production.move_finished_ids) + ): + production.state = "draft" + return diff --git a/mrp_production_back_to_draft/static/description/index.html b/mrp_production_back_to_draft/static/description/index.html index 9cd9f74e053..a3a0d3391a4 100644 --- a/mrp_production_back_to_draft/static/description/index.html +++ b/mrp_production_back_to_draft/static/description/index.html @@ -8,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -274,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -300,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -366,7 +367,7 @@

MRP Production Back to Draft

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:759dd0cf5f18855c3a050e5796eda3ee2f65ed6df213e9a88b8991303e53a33b +!! source digest: sha256:08cbd81c049ee4f4b818d59d4bfa0d0bff3e0ac4cc0fdb985a61d12bbb9caa4e !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/manufacture Translate me on Weblate Try me on Runboat

This module allows to return to draft a confirmed or cancelled MO.

@@ -407,7 +408,9 @@

Contributors

Maintainers

This module is maintained by the OCA.

-Odoo Community Association + +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.

diff --git a/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py b/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py index 2a9067af281..1505b75983e 100644 --- a/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py +++ b/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py @@ -7,13 +7,12 @@ @tagged("post_install", "-at_install") -class TestMrpProductionAutovalidate(common.SavepointCase): +class TestMrpProductionAutovalidate(common.TransactionCase): @classmethod def setUpClass(cls): super().setUpClass() cls.user_admin = cls.env.ref("base.user_admin") cls.env = api.Environment(cls.cr, cls.user_admin.id, {}) - cls.env.user.tz = False # Make sure there's no timezone in user cls.warehouse = cls.env.ref("stock.warehouse0") cls.location = cls.env.ref("stock.stock_location_stock") cls.env.user.write( @@ -68,19 +67,19 @@ def test_01_mrp_return_to_draft(self): self.prod_ti1, self.location, 2 ) self.assertEqual(self.mo_1.state, "draft") - self.mo_1._onchange_move_raw() + self.mo_1._compute_move_raw_ids() self.mo_1.action_confirm() self.assertEqual(self.mo_1.state, "confirmed") self.mo_1.action_return_to_draft() self.assertEqual(self.mo_1.state, "draft") - self.mo_1._onchange_move_raw() + self.mo_1._compute_move_raw_ids() self.mo_1.action_confirm() self.assertEqual(self.mo_1.state, "confirmed") self.mo_1.action_cancel() self.assertEqual(self.mo_1.state, "cancel") self.mo_1.action_return_to_draft() self.assertEqual(self.mo_1.state, "draft") - self.mo_1._onchange_move_raw() + self.mo_1._compute_move_raw_ids() self.mo_1.action_confirm() self.mo_1.qty_producing = 2 self.assertEqual(self.mo_1.state, "to_close") diff --git a/mrp_production_back_to_draft/views/mrp_production_views.xml b/mrp_production_back_to_draft/views/mrp_production_views.xml index 27cfe8b8b88..9f6dca02496 100644 --- a/mrp_production_back_to_draft/views/mrp_production_views.xml +++ b/mrp_production_back_to_draft/views/mrp_production_views.xml @@ -15,7 +15,7 @@ type="object" class="oe_stat_button" string="Return to Draft" - attrs="{'invisible': [('state', 'not in', ['confirmed', 'cancel'])]}" + invisible="state not in ['confirmed', 'cancel']" > From 629f2fe0c28ae766dfbc60dd63463fe9964bb3d9 Mon Sep 17 00:00:00 2001 From: mymage Date: Thu, 19 Dec 2024 07:22:26 +0000 Subject: [PATCH 6/9] Translated using Weblate (Italian) Currently translated at 100.0% (6 of 6 strings) Translation: manufacture-17.0/manufacture-17.0-mrp_production_back_to_draft Translate-URL: https://translation.odoo-community.org/projects/manufacture-17-0/manufacture-17-0-mrp_production_back_to_draft/it/ --- mrp_production_back_to_draft/i18n/it.po | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/mrp_production_back_to_draft/i18n/it.po b/mrp_production_back_to_draft/i18n/it.po index 22b3d426b12..9d8c985e4fc 100644 --- a/mrp_production_back_to_draft/i18n/it.po +++ b/mrp_production_back_to_draft/i18n/it.po @@ -6,38 +6,40 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2024-12-19 10:06+0000\n" +"Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\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 5.6.2\n" #. module: mrp_production_back_to_draft #: model:ir.model.fields,field_description:mrp_production_back_to_draft.field_mrp_production__display_name msgid "Display Name" -msgstr "" +msgstr "Nome visualizzato" #. module: mrp_production_back_to_draft #: model:ir.model.fields,field_description:mrp_production_back_to_draft.field_mrp_production__id msgid "ID" -msgstr "" +msgstr "ID" #. module: mrp_production_back_to_draft #: model:ir.model.fields,field_description:mrp_production_back_to_draft.field_mrp_production____last_update msgid "Last Modified on" -msgstr "" +msgstr "Ultima modifica il" #. module: mrp_production_back_to_draft #: model:ir.model,name:mrp_production_back_to_draft.model_mrp_production msgid "Production Order" -msgstr "" +msgstr "Ordine di produzione" #. module: mrp_production_back_to_draft #: model_terms:ir.ui.view,arch_db:mrp_production_back_to_draft.mrp_production_form_view_return_to_draft msgid "Return to Draft" -msgstr "" +msgstr "Riporta a bozza" #. module: mrp_production_back_to_draft #: code:addons/mrp_production_back_to_draft/models/mrp_production.py:0 @@ -46,3 +48,5 @@ msgid "" "You cannot return to draft the following MO: %s. Only confirmed or cancelled" " MO can be returned to draft." msgstr "" +"Non si può riportare a bozza il seguente OP: %s. Solo OP confermati o " +"annullati possono essere riportati a bozza." From 3d47db2c2962a2dceb78da3f506f72249251fd82 Mon Sep 17 00:00:00 2001 From: Meritxell Abellan Date: Fri, 20 Dec 2024 11:36:05 +0100 Subject: [PATCH 7/9] [IMP] mrp_production_back_to_draft: workorders back to draft Now workorders are reset when an MO gets back to draft --- mrp_production_back_to_draft/README.rst | 1 + .../models/mrp_production.py | 1 + .../readme/CONTRIBUTORS.md | 1 + .../static/description/index.html | 1 + .../tests/test_mrp_return_to_draft.py | 23 ++++++++++++++++++- 5 files changed, 26 insertions(+), 1 deletion(-) diff --git a/mrp_production_back_to_draft/README.rst b/mrp_production_back_to_draft/README.rst index abb109e916c..c3443af8b7c 100644 --- a/mrp_production_back_to_draft/README.rst +++ b/mrp_production_back_to_draft/README.rst @@ -57,6 +57,7 @@ Contributors ------------ - David Jiménez +- Meritxell Abellan Maintainers ----------- diff --git a/mrp_production_back_to_draft/models/mrp_production.py b/mrp_production_back_to_draft/models/mrp_production.py index 500d6e4a739..1b79e1ba553 100644 --- a/mrp_production_back_to_draft/models/mrp_production.py +++ b/mrp_production_back_to_draft/models/mrp_production.py @@ -22,6 +22,7 @@ def action_return_to_draft(self): else: (rec.move_raw_ids + rec.move_finished_ids)._action_cancel() (rec.move_raw_ids + rec.move_finished_ids).write({"state": "draft"}) + rec.workorder_ids.write({"state": "waiting"}) if rec.state != "draft": raise UserError( _("Could not set the production order back to draft") diff --git a/mrp_production_back_to_draft/readme/CONTRIBUTORS.md b/mrp_production_back_to_draft/readme/CONTRIBUTORS.md index ac18283b854..c172ebacf58 100644 --- a/mrp_production_back_to_draft/readme/CONTRIBUTORS.md +++ b/mrp_production_back_to_draft/readme/CONTRIBUTORS.md @@ -1 +1,2 @@ - David Jiménez \<\> +- Meritxell Abellan \<\> diff --git a/mrp_production_back_to_draft/static/description/index.html b/mrp_production_back_to_draft/static/description/index.html index a3a0d3391a4..5df8c2a9382 100644 --- a/mrp_production_back_to_draft/static/description/index.html +++ b/mrp_production_back_to_draft/static/description/index.html @@ -403,6 +403,7 @@

Authors

Contributors

diff --git a/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py b/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py index 1505b75983e..a770deb5366 100644 --- a/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py +++ b/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py @@ -61,27 +61,48 @@ def setUpClass(cls): "bom_id": cls.test_bom_1.id, } ) + cls.workcenter_id = cls.env["mrp.workcenter"].create( + { + "name": "Workcenter 01", + } + ) + cls.test_workorder_1 = cls.env["mrp.workorder"].create( + { + "name": "Workorder Test", + "product_uom_id": cls.prod_tp1.uom_id.id, + "production_id": cls.mo_1.id, + "workcenter_id": cls.workcenter_id.id, + "qty_remaining": 1, + "qty_produced": 0, + } + ) def test_01_mrp_return_to_draft(self): self.env["stock.quant"]._update_available_quantity( self.prod_ti1, self.location, 2 ) self.assertEqual(self.mo_1.state, "draft") + self.assertEqual(self.mo_1.workorder_ids.state, "waiting") self.mo_1._compute_move_raw_ids() self.mo_1.action_confirm() self.assertEqual(self.mo_1.state, "confirmed") + self.assertEqual(self.mo_1.workorder_ids.state, "ready") self.mo_1.action_return_to_draft() self.assertEqual(self.mo_1.state, "draft") + self.assertEqual(self.mo_1.workorder_ids.state, "waiting") self.mo_1._compute_move_raw_ids() self.mo_1.action_confirm() self.assertEqual(self.mo_1.state, "confirmed") + self.assertEqual(self.mo_1.workorder_ids.state, "ready") self.mo_1.action_cancel() self.assertEqual(self.mo_1.state, "cancel") + self.assertEqual(self.mo_1.workorder_ids.state, "cancel") self.mo_1.action_return_to_draft() self.assertEqual(self.mo_1.state, "draft") + self.assertNotIn(self.mo_1.workorder_ids.state, ["cancel"]) self.mo_1._compute_move_raw_ids() self.mo_1.action_confirm() self.mo_1.qty_producing = 2 - self.assertEqual(self.mo_1.state, "to_close") + self.mo_1.workorder_ids.action_mark_as_done() with self.assertRaises(UserError): self.mo_1.action_return_to_draft() From a19f17f5ce436e19c455b5946fb40af322371275 Mon Sep 17 00:00:00 2001 From: Gil Arasa Verge Date: Fri, 20 Dec 2024 22:01:04 +0100 Subject: [PATCH 8/9] [IMP] mrp_production_back_to_draft: pre-commit stuff --- mrp_production_back_to_draft/README.rst | 14 +++++++------- .../static/description/index.html | 6 +++--- .../odoo/addons/mrp_production_back_to_draft | 1 + setup/mrp_production_back_to_draft/setup.py | 6 ++++++ 4 files changed, 17 insertions(+), 10 deletions(-) create mode 120000 setup/mrp_production_back_to_draft/odoo/addons/mrp_production_back_to_draft create mode 100644 setup/mrp_production_back_to_draft/setup.py diff --git a/mrp_production_back_to_draft/README.rst b/mrp_production_back_to_draft/README.rst index c3443af8b7c..beca8277455 100644 --- a/mrp_production_back_to_draft/README.rst +++ b/mrp_production_back_to_draft/README.rst @@ -17,13 +17,13 @@ MRP Production Back to Draft :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmanufacture-lightgray.png?logo=github - :target: https://github.com/OCA/manufacture/tree/17.0/mrp_production_back_to_draft + :target: https://github.com/OCA/manufacture/tree/16.0/mrp_production_back_to_draft :alt: OCA/manufacture .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/manufacture-17-0/manufacture-17-0-mrp_production_back_to_draft + :target: https://translation.odoo-community.org/projects/manufacture-16-0/manufacture-16-0-mrp_production_back_to_draft :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/manufacture&target_branch=17.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/manufacture&target_branch=16.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -41,7 +41,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 to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -56,8 +56,8 @@ Authors Contributors ------------ -- David Jiménez -- Meritxell Abellan +- David Jiménez +- Meritxell Abellan Maintainers ----------- @@ -72,6 +72,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/manufacture `_ project on GitHub. +This module is part of the `OCA/manufacture `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mrp_production_back_to_draft/static/description/index.html b/mrp_production_back_to_draft/static/description/index.html index 5df8c2a9382..1b118d4b91e 100644 --- a/mrp_production_back_to_draft/static/description/index.html +++ b/mrp_production_back_to_draft/static/description/index.html @@ -369,7 +369,7 @@

MRP Production Back to Draft

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:08cbd81c049ee4f4b818d59d4bfa0d0bff3e0ac4cc0fdb985a61d12bbb9caa4e !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/manufacture Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/manufacture Translate me on Weblate Try me on Runboat

This module allows to return to draft a confirmed or cancelled MO.

Table of contents

@@ -388,7 +388,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 to smash it by providing a detailed and welcomed -feedback.

+feedback.

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

@@ -415,7 +415,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/manufacture project on GitHub.

+

This module is part of the OCA/manufacture project on GitHub.

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

diff --git a/setup/mrp_production_back_to_draft/odoo/addons/mrp_production_back_to_draft b/setup/mrp_production_back_to_draft/odoo/addons/mrp_production_back_to_draft new file mode 120000 index 00000000000..c1e2d0fe63e --- /dev/null +++ b/setup/mrp_production_back_to_draft/odoo/addons/mrp_production_back_to_draft @@ -0,0 +1 @@ +../../../../mrp_production_back_to_draft \ No newline at end of file diff --git a/setup/mrp_production_back_to_draft/setup.py b/setup/mrp_production_back_to_draft/setup.py new file mode 100644 index 00000000000..28c57bb6403 --- /dev/null +++ b/setup/mrp_production_back_to_draft/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) From c266e9209ce68055697bd328b6714de5d7197064 Mon Sep 17 00:00:00 2001 From: Gil Arasa Verge Date: Fri, 20 Dec 2024 22:07:00 +0100 Subject: [PATCH 9/9] [MIG] mrp_production_back_to_draft: Migration to 16.0 --- mrp_production_back_to_draft/__manifest__.py | 2 +- .../tests/test_mrp_return_to_draft.py | 4 ++-- mrp_production_back_to_draft/views/mrp_production_views.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mrp_production_back_to_draft/__manifest__.py b/mrp_production_back_to_draft/__manifest__.py index 56ee943a8c9..61f4ee9ffbe 100644 --- a/mrp_production_back_to_draft/__manifest__.py +++ b/mrp_production_back_to_draft/__manifest__.py @@ -3,7 +3,7 @@ { "name": "MRP Production Back to Draft", - "version": "17.0.1.0.0", + "version": "16.0.1.0.0", "author": "ForgeFlow, Odoo Community Association (OCA)", "summary": "Allows to return to draft a confirmed or cancelled MO.", "website": "https://github.com/OCA/manufacture", diff --git a/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py b/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py index a770deb5366..5d22721804d 100644 --- a/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py +++ b/mrp_production_back_to_draft/tests/test_mrp_return_to_draft.py @@ -89,7 +89,7 @@ def test_01_mrp_return_to_draft(self): self.assertEqual(self.mo_1.workorder_ids.state, "ready") self.mo_1.action_return_to_draft() self.assertEqual(self.mo_1.state, "draft") - self.assertEqual(self.mo_1.workorder_ids.state, "waiting") + self.assertEqual(self.mo_1.workorder_ids.state, "ready") self.mo_1._compute_move_raw_ids() self.mo_1.action_confirm() self.assertEqual(self.mo_1.state, "confirmed") @@ -103,6 +103,6 @@ def test_01_mrp_return_to_draft(self): self.mo_1._compute_move_raw_ids() self.mo_1.action_confirm() self.mo_1.qty_producing = 2 - self.mo_1.workorder_ids.action_mark_as_done() + self.mo_1.workorder_ids.button_finish() with self.assertRaises(UserError): self.mo_1.action_return_to_draft() diff --git a/mrp_production_back_to_draft/views/mrp_production_views.xml b/mrp_production_back_to_draft/views/mrp_production_views.xml index 9f6dca02496..27cfe8b8b88 100644 --- a/mrp_production_back_to_draft/views/mrp_production_views.xml +++ b/mrp_production_back_to_draft/views/mrp_production_views.xml @@ -15,7 +15,7 @@ type="object" class="oe_stat_button" string="Return to Draft" - invisible="state not in ['confirmed', 'cancel']" + attrs="{'invisible': [('state', 'not in', ['confirmed', 'cancel'])]}" >