From e4b605e520be8f9daf962bb51c40fa8cc155338e Mon Sep 17 00:00:00 2001
From: Patryk Pyczko
Date: Thu, 28 Nov 2024 14:49:31 +0100
Subject: [PATCH 1/7] [17.0][ADD] repair_type_product_destination: New module
repair_type_product_destination
---
repair_type_product_destination/README.rst | 114 +++++
repair_type_product_destination/__init__.py | 3 +
.../__manifest__.py | 16 +
repair_type_product_destination/i18n/ca.po | 49 ++
repair_type_product_destination/i18n/es.po | 49 ++
.../i18n/repair_type_product_destination.pot | 48 ++
.../models/__init__.py | 4 +
.../models/repair.py | 27 ++
.../models/stock_picking_type.py | 27 ++
.../pyproject.toml | 3 +
.../readme/CONTRIBUTORS.md | 2 +
.../readme/DESCRIPTION.md | 5 +
.../readme/USAGE.md | 7 +
.../static/description/icon.png | Bin 0 -> 9455 bytes
.../static/description/index.html | 458 ++++++++++++++++++
.../tests/__init__.py | 3 +
.../test_repair_type_product_destination.py | 78 +++
.../views/repair_views.xml | 37 ++
.../views/stock_picking_type_views.xml | 21 +
19 files changed, 951 insertions(+)
create mode 100644 repair_type_product_destination/README.rst
create mode 100644 repair_type_product_destination/__init__.py
create mode 100644 repair_type_product_destination/__manifest__.py
create mode 100644 repair_type_product_destination/i18n/ca.po
create mode 100644 repair_type_product_destination/i18n/es.po
create mode 100644 repair_type_product_destination/i18n/repair_type_product_destination.pot
create mode 100644 repair_type_product_destination/models/__init__.py
create mode 100644 repair_type_product_destination/models/repair.py
create mode 100644 repair_type_product_destination/models/stock_picking_type.py
create mode 100644 repair_type_product_destination/pyproject.toml
create mode 100644 repair_type_product_destination/readme/CONTRIBUTORS.md
create mode 100644 repair_type_product_destination/readme/DESCRIPTION.md
create mode 100644 repair_type_product_destination/readme/USAGE.md
create mode 100644 repair_type_product_destination/static/description/icon.png
create mode 100644 repair_type_product_destination/static/description/index.html
create mode 100644 repair_type_product_destination/tests/__init__.py
create mode 100644 repair_type_product_destination/tests/test_repair_type_product_destination.py
create mode 100644 repair_type_product_destination/views/repair_views.xml
create mode 100644 repair_type_product_destination/views/stock_picking_type_views.xml
diff --git a/repair_type_product_destination/README.rst b/repair_type_product_destination/README.rst
new file mode 100644
index 00000000..806ee6d1
--- /dev/null
+++ b/repair_type_product_destination/README.rst
@@ -0,0 +1,114 @@
+=================================
+Repair Type - Product Destination
+=================================
+
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:841f2e7afbe4c6e48966faef1044973142b77bb7a11d8be86488044a4fd7cad5
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |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%2Frepair-lightgray.png?logo=github
+ :target: https://github.com/OCA/repair/tree/17.0/repair_type_product_destination
+ :alt: OCA/repair
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/repair-17-0/repair-17-0-repair_type_product_destination
+ :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/repair&target_branch=17.0
+ :alt: Try me on Runboat
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
+This is a technical module, and it does not provide any new
+functionality on its own. Due to the way transfers of repaired products
+work in Odoo, the following fields will not have any effect without
+additional code modifications.
+
+This module introduces a **Product Destination Location field** in the
+repair order. The default value for this field is computed from the
+**Default Product Destination Location field of the associated Operation
+Type**.
+
+This module essentially serves as a template, providing the groundwork
+for further customization. To make use of the functionality it
+introduces, extend this module to implement additional features in the
+repair transfer workflow.
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Usage
+=====
+
+The following fields are available in the Repair module:
+
+1. **Product Destination Location**
+
+- Repairs > Orders > Select or create an order > Miscellaneous >
+ Product Destination Location
+
+2. **Default Product Destination Location**
+
+- Repairs > Orders > Select or create an order > Miscellaneous >
+ Operation Type > Default Product Destination Location
+
+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
+-------
+
+* APSL-Nagarro
+
+Contributors
+------------
+
+- `APSL-Nagarro `__:
+
+ - Patryk Pyczko
+
+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.
+
+.. |maintainer-ppyczko| image:: https://github.com/ppyczko.png?size=40px
+ :target: https://github.com/ppyczko
+ :alt: ppyczko
+
+Current `maintainer `__:
+
+|maintainer-ppyczko|
+
+This module is part of the `OCA/repair `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/repair_type_product_destination/__init__.py b/repair_type_product_destination/__init__.py
new file mode 100644
index 00000000..31660d6a
--- /dev/null
+++ b/repair_type_product_destination/__init__.py
@@ -0,0 +1,3 @@
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+
+from . import models
diff --git a/repair_type_product_destination/__manifest__.py b/repair_type_product_destination/__manifest__.py
new file mode 100644
index 00000000..fbacc82f
--- /dev/null
+++ b/repair_type_product_destination/__manifest__.py
@@ -0,0 +1,16 @@
+# Copyright 2024 Patryk Pyczko (APSL-Nagarro)
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+
+{
+ "name": "Repair Type - Product Destination",
+ "version": "17.0.1.0.0",
+ "category": "Repair",
+ "website": "https://github.com/OCA/repair",
+ "author": "APSL-Nagarro, Odoo Community Association (OCA)",
+ "maintainers": ["ppyczko"],
+ "license": "AGPL-3",
+ "application": False,
+ "installable": True,
+ "depends": ["repair"],
+ "data": ["views/repair_views.xml", "views/stock_picking_type_views.xml"],
+}
diff --git a/repair_type_product_destination/i18n/ca.po b/repair_type_product_destination/i18n/ca.po
new file mode 100644
index 00000000..2b1e93dc
--- /dev/null
+++ b/repair_type_product_destination/i18n/ca.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * repair_type_product_destination
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-11-28 13:39+0000\n"
+"PO-Revision-Date: 2024-11-28 13:39+0000\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: repair_type_product_destination
+#: model:ir.model.fields,field_description:repair_type_product_destination.field_stock_picking_type__default_product_location_dest_id
+msgid "Default Product Destination Location"
+msgstr "Ubicació de destinació per defecte del producte"
+
+#. module: repair_type_product_destination
+#: model:ir.model,name:repair_type_product_destination.model_stock_picking_type
+msgid "Picking Type"
+msgstr "Tipus de picking"
+
+#. module: repair_type_product_destination
+#: model:ir.model.fields,field_description:repair_type_product_destination.field_repair_order__product_location_dest_id
+msgid "Product Destination Location"
+msgstr "Ubicació de destinació del producte"
+
+#. module: repair_type_product_destination
+#: model:ir.model,name:repair_type_product_destination.model_repair_order
+msgid "Repair Order"
+msgstr "Ordre de reparació"
+
+#. module: repair_type_product_destination
+#: model:ir.model.fields,help:repair_type_product_destination.field_stock_picking_type__default_product_location_dest_id
+msgid ""
+"This is the default product destination location where the repaired product "
+"will be stored.."
+msgstr "Aquesta és la ubicació per defecte de destinació del producte on "
+"s'emmagatzemarà el producte reparat."
+
+#. module: repair_type_product_destination
+#: model:ir.model.fields,help:repair_type_product_destination.field_repair_order__product_location_dest_id
+msgid "This is the location where the repaired product will be stored."
+msgstr "Aquesta és la ubicació on s'emmagatzemarà el producte reparat."
\ No newline at end of file
diff --git a/repair_type_product_destination/i18n/es.po b/repair_type_product_destination/i18n/es.po
new file mode 100644
index 00000000..46ed532d
--- /dev/null
+++ b/repair_type_product_destination/i18n/es.po
@@ -0,0 +1,49 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * repair_type_product_destination
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-11-28 13:39+0000\n"
+"PO-Revision-Date: 2024-11-28 13:39+0000\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: repair_type_product_destination
+#: model:ir.model.fields,field_description:repair_type_product_destination.field_stock_picking_type__default_product_location_dest_id
+msgid "Default Product Destination Location"
+msgstr "Ubicación de destino por defecto del producto"
+
+#. module: repair_type_product_destination
+#: model:ir.model,name:repair_type_product_destination.model_stock_picking_type
+msgid "Picking Type"
+msgstr "Tipo de picking"
+
+#. module: repair_type_product_destination
+#: model:ir.model.fields,field_description:repair_type_product_destination.field_repair_order__product_location_dest_id
+msgid "Product Destination Location"
+msgstr "Ubicación de destino del producto"
+
+#. module: repair_type_product_destination
+#: model:ir.model,name:repair_type_product_destination.model_repair_order
+msgid "Repair Order"
+msgstr "Orden de reparación"
+
+#. module: repair_type_product_destination
+#: model:ir.model.fields,help:repair_type_product_destination.field_stock_picking_type__default_product_location_dest_id
+msgid ""
+"This is the default product destination location where the repaired product "
+"will be stored.."
+msgstr "Esta es la ubicación predeterminada de destino del producto donde se "
+"almacenará el producto reparado."
+
+#. module: repair_type_product_destination
+#: model:ir.model.fields,help:repair_type_product_destination.field_repair_order__product_location_dest_id
+msgid "This is the location where the repaired product will be stored."
+msgstr "Esta es la ubicación donde se almacenará el producto reparado."
\ No newline at end of file
diff --git a/repair_type_product_destination/i18n/repair_type_product_destination.pot b/repair_type_product_destination/i18n/repair_type_product_destination.pot
new file mode 100644
index 00000000..1190fa7d
--- /dev/null
+++ b/repair_type_product_destination/i18n/repair_type_product_destination.pot
@@ -0,0 +1,48 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * repair_type_product_destination
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-11-28 13:39+0000\n"
+"PO-Revision-Date: 2024-11-28 13:39+0000\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: repair_type_product_destination
+#: model:ir.model.fields,field_description:repair_type_product_destination.field_stock_picking_type__default_product_location_dest_id
+msgid "Default Product Destination Location"
+msgstr ""
+
+#. module: repair_type_product_destination
+#: model:ir.model,name:repair_type_product_destination.model_stock_picking_type
+msgid "Picking Type"
+msgstr ""
+
+#. module: repair_type_product_destination
+#: model:ir.model.fields,field_description:repair_type_product_destination.field_repair_order__product_location_dest_id
+msgid "Product Destination Location"
+msgstr ""
+
+#. module: repair_type_product_destination
+#: model:ir.model,name:repair_type_product_destination.model_repair_order
+msgid "Repair Order"
+msgstr ""
+
+#. module: repair_type_product_destination
+#: model:ir.model.fields,help:repair_type_product_destination.field_stock_picking_type__default_product_location_dest_id
+msgid ""
+"This is the default product destination location where the repaired product "
+"will be stored.."
+msgstr ""
+
+#. module: repair_type_product_destination
+#: model:ir.model.fields,help:repair_type_product_destination.field_repair_order__product_location_dest_id
+msgid "This is the location where the repaired product will be stored."
+msgstr ""
diff --git a/repair_type_product_destination/models/__init__.py b/repair_type_product_destination/models/__init__.py
new file mode 100644
index 00000000..945de8bc
--- /dev/null
+++ b/repair_type_product_destination/models/__init__.py
@@ -0,0 +1,4 @@
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from . import repair
+from . import stock_picking_type
diff --git a/repair_type_product_destination/models/repair.py b/repair_type_product_destination/models/repair.py
new file mode 100644
index 00000000..ad4599c3
--- /dev/null
+++ b/repair_type_product_destination/models/repair.py
@@ -0,0 +1,27 @@
+# Copyright 2024 Patryk Pyczko (APSL-Nagarro)
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+
+from odoo import api, fields, models
+
+
+class RepairOrder(models.Model):
+ _inherit = "repair.order"
+
+ product_location_dest_id = fields.Many2one(
+ "stock.location",
+ "Product Destination Location",
+ compute="_compute_product_location_dest_id",
+ store=True,
+ required=True,
+ precompute=True,
+ index=True,
+ check_company=True,
+ help="This is the location where the repaired product will be stored.",
+ )
+
+ @api.depends("picking_type_id")
+ def _compute_product_location_dest_id(self):
+ for repair in self:
+ repair.product_location_dest_id = (
+ repair.picking_type_id.default_product_location_dest_id
+ )
diff --git a/repair_type_product_destination/models/stock_picking_type.py b/repair_type_product_destination/models/stock_picking_type.py
new file mode 100644
index 00000000..75b1cb3e
--- /dev/null
+++ b/repair_type_product_destination/models/stock_picking_type.py
@@ -0,0 +1,27 @@
+# Copyright 2024 Patryk Pyczko (APSL-Nagarro)
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+
+from odoo import api, fields, models
+
+
+class PickingType(models.Model):
+ _inherit = "stock.picking.type"
+
+ default_product_location_dest_id = fields.Many2one(
+ "stock.location",
+ "Default Product Destination Location",
+ compute="_compute_default_product_location_dest_id",
+ check_company=True,
+ store=True,
+ readonly=False,
+ precompute=True,
+ help="This is the default product destination location where "
+ "the repaired product will be stored..",
+ )
+
+ @api.depends("code")
+ def _compute_default_product_location_dest_id(self):
+ for picking_type in self:
+ stock_location = picking_type.warehouse_id.lot_stock_id
+ if picking_type.code == "repair_operation":
+ picking_type.default_product_location_dest_id = stock_location.id
diff --git a/repair_type_product_destination/pyproject.toml b/repair_type_product_destination/pyproject.toml
new file mode 100644
index 00000000..4231d0cc
--- /dev/null
+++ b/repair_type_product_destination/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["whool"]
+build-backend = "whool.buildapi"
diff --git a/repair_type_product_destination/readme/CONTRIBUTORS.md b/repair_type_product_destination/readme/CONTRIBUTORS.md
new file mode 100644
index 00000000..484bb742
--- /dev/null
+++ b/repair_type_product_destination/readme/CONTRIBUTORS.md
@@ -0,0 +1,2 @@
+- [APSL-Nagarro](https://www.apsl.tech):
+ - Patryk Pyczko \<\>
\ No newline at end of file
diff --git a/repair_type_product_destination/readme/DESCRIPTION.md b/repair_type_product_destination/readme/DESCRIPTION.md
new file mode 100644
index 00000000..d835e0cc
--- /dev/null
+++ b/repair_type_product_destination/readme/DESCRIPTION.md
@@ -0,0 +1,5 @@
+This is a technical module, and it does not provide any new functionality on its own. Due to the way transfers of repaired products work in Odoo, the following fields will not have any effect without additional code modifications.
+
+This module introduces a **Product Destination Location field** in the repair order. The default value for this field is computed from the **Default Product Destination Location field of the associated Operation Type**.
+
+This module essentially serves as a template, providing the groundwork for further customization. To make use of the functionality it introduces, extend this module to implement additional features in the repair transfer workflow.
\ No newline at end of file
diff --git a/repair_type_product_destination/readme/USAGE.md b/repair_type_product_destination/readme/USAGE.md
new file mode 100644
index 00000000..7e99d77d
--- /dev/null
+++ b/repair_type_product_destination/readme/USAGE.md
@@ -0,0 +1,7 @@
+The following fields are available in the Repair module:
+
+1. **Product Destination Location**
+- Repairs > Orders > Select or create an order > Miscellaneous > Product Destination Location
+
+2. **Default Product Destination Location**
+- Repairs > Orders > Select or create an order > Miscellaneous > Operation Type > Default Product Destination Location
\ No newline at end of file
diff --git a/repair_type_product_destination/static/description/icon.png b/repair_type_product_destination/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
diff --git a/repair_type_product_destination/static/description/index.html b/repair_type_product_destination/static/description/index.html
new file mode 100644
index 00000000..365b6145
--- /dev/null
+++ b/repair_type_product_destination/static/description/index.html
@@ -0,0 +1,458 @@
+
+
+
+
+
+Repair Type - Product Destination
+
+
+
+
+
Repair Type - Product Destination
+
+
+
![Try me on Runboat](https://img.shields.io/badge/runboat-Try%20me-875A7B.png)
+
This is a technical module, and it does not provide any new
+functionality on its own. Due to the way transfers of repaired products
+work in Odoo, the following fields will not have any effect without
+additional code modifications.
+
This module introduces a Product Destination Location field in the
+repair order. The default value for this field is computed from the
+Default Product Destination Location field of the associated Operation
+Type.
+
This module essentially serves as a template, providing the groundwork
+for further customization. To make use of the functionality it
+introduces, extend this module to implement additional features in the
+repair transfer workflow.
+
Table of contents
+
+
+
+
The following fields are available in the Repair module:
+
+- Product Destination Location
+
+
+- Repairs > Orders > Select or create an order > Miscellaneous >
+Product Destination Location
+
+
+- Default Product Destination Location
+
+
+- Repairs > Orders > Select or create an order > Miscellaneous >
+Operation Type > Default Product Destination Location
+
+
+
+
+
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.
+
+
+
+
+
+
+
+
This module is maintained by the OCA.
+
+
+
+
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.
+
Current maintainer:
+
![ppyczko](https://github.com/ppyczko.png?size=40px)
+
This module is part of the OCA/repair project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
diff --git a/repair_type_product_destination/tests/__init__.py b/repair_type_product_destination/tests/__init__.py
new file mode 100644
index 00000000..48e033be
--- /dev/null
+++ b/repair_type_product_destination/tests/__init__.py
@@ -0,0 +1,3 @@
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+
+from . import test_repair_type_product_destination
diff --git a/repair_type_product_destination/tests/test_repair_type_product_destination.py b/repair_type_product_destination/tests/test_repair_type_product_destination.py
new file mode 100644
index 00000000..a0f189fa
--- /dev/null
+++ b/repair_type_product_destination/tests/test_repair_type_product_destination.py
@@ -0,0 +1,78 @@
+# Copyright 2024 Patryk Pyczko (APSL-Nagarro)
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+
+from odoo.tests.common import TransactionCase
+
+
+class TestRepairTypeProductDestination(TransactionCase):
+ @classmethod
+ def setUpClass(cls):
+ super().setUpClass()
+
+ cls.stock_location = cls.env["stock.location"].create(
+ {
+ "name": "Stock Location",
+ "usage": "internal",
+ }
+ )
+
+ cls.product_destination_location = cls.env["stock.location"].create(
+ {
+ "name": "Product Destination Location",
+ "usage": "internal",
+ }
+ )
+
+ cls.warehouse = cls.env["stock.warehouse"].create(
+ {
+ "name": "Test Warehouse",
+ "code": "TW",
+ "lot_stock_id": cls.stock_location.id,
+ }
+ )
+
+ cls.picking_type = cls.env["stock.picking.type"].create(
+ {
+ "name": "Repair Operation Type",
+ "code": "repair_operation",
+ "warehouse_id": cls.warehouse.id,
+ "default_location_src_id": cls.stock_location.id,
+ "default_product_location_dest_id": cls.product_destination_location.id,
+ "sequence_code": "RO",
+ }
+ )
+
+ cls.product = cls.env["product.product"].create(
+ {
+ "name": "Test Product",
+ "type": "product",
+ }
+ )
+
+ cls.repair_order = cls.env["repair.order"].create(
+ {
+ "name": "Test Repair Order",
+ "picking_type_id": cls.picking_type.id,
+ "product_id": cls.product.id,
+ }
+ )
+
+ def test_product_location_dest_id_computation(self):
+ """Test that product_location_dest_id is correctly computed."""
+ self.repair_order._compute_product_location_dest_id()
+ self.assertEqual(
+ self.repair_order.product_location_dest_id,
+ self.picking_type.default_product_location_dest_id,
+ "The product_location_dest_id should be set to the default location.",
+ )
+
+ def test_default_product_location_dest_id_computation(self):
+ """Test the computation of default_product_location_dest_id in picking type."""
+ self.picking_type._compute_default_product_location_dest_id()
+
+ self.assertEqual(
+ self.picking_type.default_product_location_dest_id,
+ self.picking_type.warehouse_id.lot_stock_id,
+ "The default_product_location_dest_id should be set to the "
+ "stock location when the code is 'repair_operation'.",
+ )
diff --git a/repair_type_product_destination/views/repair_views.xml b/repair_type_product_destination/views/repair_views.xml
new file mode 100644
index 00000000..4f590ae5
--- /dev/null
+++ b/repair_type_product_destination/views/repair_views.xml
@@ -0,0 +1,37 @@
+
+
+
+ repair.type.repair.order.tree.inherit
+ repair.order
+
+
+
+
+
+
+
+
+
+ repair.type.repair.order.form.inherit
+ repair.order
+
+
+
+
+
+
+
+
diff --git a/repair_type_product_destination/views/stock_picking_type_views.xml b/repair_type_product_destination/views/stock_picking_type_views.xml
new file mode 100644
index 00000000..6ad16187
--- /dev/null
+++ b/repair_type_product_destination/views/stock_picking_type_views.xml
@@ -0,0 +1,21 @@
+
+
+
+ stock.picking.type.inherit.repair.type
+ stock.picking.type
+
+
+
+
+
+
+
+
From fde416d6840f429672f2b37f3cea17e8ced82640 Mon Sep 17 00:00:00 2001
From: oca-ci
Date: Thu, 5 Dec 2024 11:28:17 +0000
Subject: [PATCH 2/7] [UPD] Update repair_type_product_destination.pot
---
.../i18n/repair_type_product_destination.pot | 2 --
1 file changed, 2 deletions(-)
diff --git a/repair_type_product_destination/i18n/repair_type_product_destination.pot b/repair_type_product_destination/i18n/repair_type_product_destination.pot
index 1190fa7d..62871fcc 100644
--- a/repair_type_product_destination/i18n/repair_type_product_destination.pot
+++ b/repair_type_product_destination/i18n/repair_type_product_destination.pot
@@ -6,8 +6,6 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-11-28 13:39+0000\n"
-"PO-Revision-Date: 2024-11-28 13:39+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
From 525d4c24dd9ab3477c6b78e22b50a946cd641667 Mon Sep 17 00:00:00 2001
From: Weblate
Date: Thu, 5 Dec 2024 11:53:14 +0000
Subject: [PATCH 3/7] Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.
Translation: repair-17.0/repair-17.0-repair_type_product_destination
Translate-URL: https://translation.odoo-community.org/projects/repair-17-0/repair-17-0-repair_type_product_destination/
---
repair_type_product_destination/i18n/ca.po | 6 ++++--
repair_type_product_destination/i18n/es.po | 6 ++++--
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/repair_type_product_destination/i18n/ca.po b/repair_type_product_destination/i18n/ca.po
index 2b1e93dc..39a15b2b 100644
--- a/repair_type_product_destination/i18n/ca.po
+++ b/repair_type_product_destination/i18n/ca.po
@@ -10,6 +10,7 @@ msgstr ""
"PO-Revision-Date: 2024-11-28 13:39+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
@@ -40,10 +41,11 @@ msgstr "Ordre de reparació"
msgid ""
"This is the default product destination location where the repaired product "
"will be stored.."
-msgstr "Aquesta és la ubicació per defecte de destinació del producte on "
+msgstr ""
+"Aquesta és la ubicació per defecte de destinació del producte on "
"s'emmagatzemarà el producte reparat."
#. module: repair_type_product_destination
#: model:ir.model.fields,help:repair_type_product_destination.field_repair_order__product_location_dest_id
msgid "This is the location where the repaired product will be stored."
-msgstr "Aquesta és la ubicació on s'emmagatzemarà el producte reparat."
\ No newline at end of file
+msgstr "Aquesta és la ubicació on s'emmagatzemarà el producte reparat."
diff --git a/repair_type_product_destination/i18n/es.po b/repair_type_product_destination/i18n/es.po
index 46ed532d..432c6d7b 100644
--- a/repair_type_product_destination/i18n/es.po
+++ b/repair_type_product_destination/i18n/es.po
@@ -10,6 +10,7 @@ msgstr ""
"PO-Revision-Date: 2024-11-28 13:39+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
+"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
@@ -40,10 +41,11 @@ msgstr "Orden de reparación"
msgid ""
"This is the default product destination location where the repaired product "
"will be stored.."
-msgstr "Esta es la ubicación predeterminada de destino del producto donde se "
+msgstr ""
+"Esta es la ubicación predeterminada de destino del producto donde se "
"almacenará el producto reparado."
#. module: repair_type_product_destination
#: model:ir.model.fields,help:repair_type_product_destination.field_repair_order__product_location_dest_id
msgid "This is the location where the repaired product will be stored."
-msgstr "Esta es la ubicación donde se almacenará el producto reparado."
\ No newline at end of file
+msgstr "Esta es la ubicación donde se almacenará el producto reparado."
From 1f3fcd4724f705f78ac095fe83dc8a7c2732c7a2 Mon Sep 17 00:00:00 2001
From: mymage
Date: Fri, 6 Dec 2024 16:54:42 +0000
Subject: [PATCH 4/7] Added translation using Weblate (Italian)
---
repair_type_product_destination/i18n/it.po | 47 ++++++++++++++++++++++
1 file changed, 47 insertions(+)
create mode 100644 repair_type_product_destination/i18n/it.po
diff --git a/repair_type_product_destination/i18n/it.po b/repair_type_product_destination/i18n/it.po
new file mode 100644
index 00000000..3d012f4d
--- /dev/null
+++ b/repair_type_product_destination/i18n/it.po
@@ -0,0 +1,47 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * repair_type_product_destination
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 17.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: repair_type_product_destination
+#: model:ir.model.fields,field_description:repair_type_product_destination.field_stock_picking_type__default_product_location_dest_id
+msgid "Default Product Destination Location"
+msgstr ""
+
+#. module: repair_type_product_destination
+#: model:ir.model,name:repair_type_product_destination.model_stock_picking_type
+msgid "Picking Type"
+msgstr ""
+
+#. module: repair_type_product_destination
+#: model:ir.model.fields,field_description:repair_type_product_destination.field_repair_order__product_location_dest_id
+msgid "Product Destination Location"
+msgstr ""
+
+#. module: repair_type_product_destination
+#: model:ir.model,name:repair_type_product_destination.model_repair_order
+msgid "Repair Order"
+msgstr ""
+
+#. module: repair_type_product_destination
+#: model:ir.model.fields,help:repair_type_product_destination.field_stock_picking_type__default_product_location_dest_id
+msgid ""
+"This is the default product destination location where the repaired product "
+"will be stored.."
+msgstr ""
+
+#. module: repair_type_product_destination
+#: model:ir.model.fields,help:repair_type_product_destination.field_repair_order__product_location_dest_id
+msgid "This is the location where the repaired product will be stored."
+msgstr ""
From da5b20208bc4139449373598d62aec7c010766a1 Mon Sep 17 00:00:00 2001
From: mymage
Date: Fri, 6 Dec 2024 16:55:38 +0000
Subject: [PATCH 5/7] Translated using Weblate (Italian)
Currently translated at 100.0% (6 of 6 strings)
Translation: repair-17.0/repair-17.0-repair_type_product_destination
Translate-URL: https://translation.odoo-community.org/projects/repair-17-0/repair-17-0-repair_type_product_destination/it/
---
repair_type_product_destination/i18n/it.po | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/repair_type_product_destination/i18n/it.po b/repair_type_product_destination/i18n/it.po
index 3d012f4d..99f777c3 100644
--- a/repair_type_product_destination/i18n/it.po
+++ b/repair_type_product_destination/i18n/it.po
@@ -6,33 +6,35 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: Automatically generated\n"
+"PO-Revision-Date: 2024-12-06 19: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: repair_type_product_destination
#: model:ir.model.fields,field_description:repair_type_product_destination.field_stock_picking_type__default_product_location_dest_id
msgid "Default Product Destination Location"
-msgstr ""
+msgstr "Ubicazione predefinita destinazione prodotto"
#. module: repair_type_product_destination
#: model:ir.model,name:repair_type_product_destination.model_stock_picking_type
msgid "Picking Type"
-msgstr ""
+msgstr "Tipo prelievo"
#. module: repair_type_product_destination
#: model:ir.model.fields,field_description:repair_type_product_destination.field_repair_order__product_location_dest_id
msgid "Product Destination Location"
-msgstr ""
+msgstr "Ubicazione destinazione prodotto"
#. module: repair_type_product_destination
#: model:ir.model,name:repair_type_product_destination.model_repair_order
msgid "Repair Order"
-msgstr ""
+msgstr "Ordine di riparazione"
#. module: repair_type_product_destination
#: model:ir.model.fields,help:repair_type_product_destination.field_stock_picking_type__default_product_location_dest_id
@@ -40,8 +42,10 @@ msgid ""
"This is the default product destination location where the repaired product "
"will be stored.."
msgstr ""
+"Questa è l'ubicazione di destinazione predefinita del prodotto in cui verrà "
+"depositato il prodotto riparato."
#. module: repair_type_product_destination
#: model:ir.model.fields,help:repair_type_product_destination.field_repair_order__product_location_dest_id
msgid "This is the location where the repaired product will be stored."
-msgstr ""
+msgstr "Questo è l'ubicazione in cui verrà depositato il prodotto riparato."
From 0eff18b64aa8d0c5683c2c160cd651202eeba1ab Mon Sep 17 00:00:00 2001
From: Bhavesh Heliconia
Date: Mon, 6 Jan 2025 16:28:37 +0530
Subject: [PATCH 6/7] [IMP] repair_type_product_destination: pre-commit auto
fixes
---
.../views/repair_views.xml | 40 +++++++++----------
1 file changed, 20 insertions(+), 20 deletions(-)
diff --git a/repair_type_product_destination/views/repair_views.xml b/repair_type_product_destination/views/repair_views.xml
index 4f590ae5..fd19acc4 100644
--- a/repair_type_product_destination/views/repair_views.xml
+++ b/repair_type_product_destination/views/repair_views.xml
@@ -1,37 +1,37 @@
-
- repair.type.repair.order.tree.inherit
- repair.order
-
-
-
-
-
-
-
+ repair.type.repair.order.tree.inherit
+ repair.order
+
+
+
+
+
+
+
-
- repair.type.repair.order.form.inherit
- repair.order
-
-
- repair.type.repair.order.form.inherit
+ repair.order
+
+
+
-
-
-
-
+
+
+
From 7ce59f9bd94aaef922f77dfa8fb02c32b2133212 Mon Sep 17 00:00:00 2001
From: Bhavesh Heliconia
Date: Mon, 6 Jan 2025 16:29:41 +0530
Subject: [PATCH 7/7] [MIG] repair_type_product_destination: Migration to 18.0
---
repair_type_product_destination/README.rst | 24 ++++++++++---------
.../__manifest__.py | 2 +-
.../readme/CONTRIBUTORS.md | 3 ++-
.../static/description/index.html | 11 +++++----
.../test_repair_type_product_destination.py | 2 +-
5 files changed, 23 insertions(+), 19 deletions(-)
diff --git a/repair_type_product_destination/README.rst b/repair_type_product_destination/README.rst
index 806ee6d1..37ad1e5e 100644
--- a/repair_type_product_destination/README.rst
+++ b/repair_type_product_destination/README.rst
@@ -17,13 +17,13 @@ Repair Type - Product Destination
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Frepair-lightgray.png?logo=github
- :target: https://github.com/OCA/repair/tree/17.0/repair_type_product_destination
+ :target: https://github.com/OCA/repair/tree/18.0/repair_type_product_destination
:alt: OCA/repair
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/repair-17-0/repair-17-0-repair_type_product_destination
+ :target: https://translation.odoo-community.org/projects/repair-18-0/repair-18-0-repair_type_product_destination
: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/repair&target_branch=17.0
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/repair&target_branch=18.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -55,13 +55,13 @@ The following fields are available in the Repair module:
1. **Product Destination Location**
-- Repairs > Orders > Select or create an order > Miscellaneous >
- Product Destination Location
+- Repairs > Orders > Select or create an order > Miscellaneous > Product
+ Destination Location
2. **Default Product Destination Location**
-- Repairs > Orders > Select or create an order > Miscellaneous >
- Operation Type > Default Product Destination Location
+- Repairs > Orders > Select or create an order > Miscellaneous >
+ Operation Type > Default Product Destination Location
Bug Tracker
===========
@@ -69,7 +69,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.
@@ -84,9 +84,11 @@ Authors
Contributors
------------
-- `APSL-Nagarro `__:
+- `APSL-Nagarro `__:
- - Patryk Pyczko
+ - Patryk Pyczko
+
+- ``Heliconia Solutions Pvt. Ltd. ``\ \_
Maintainers
-----------
@@ -109,6 +111,6 @@ Current `maintainer `__:
|maintainer-ppyczko|
-This module is part of the `OCA/repair `_ project on GitHub.
+This module is part of the `OCA/repair `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/repair_type_product_destination/__manifest__.py b/repair_type_product_destination/__manifest__.py
index fbacc82f..22295de9 100644
--- a/repair_type_product_destination/__manifest__.py
+++ b/repair_type_product_destination/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "Repair Type - Product Destination",
- "version": "17.0.1.0.0",
+ "version": "18.0.1.0.0",
"category": "Repair",
"website": "https://github.com/OCA/repair",
"author": "APSL-Nagarro, Odoo Community Association (OCA)",
diff --git a/repair_type_product_destination/readme/CONTRIBUTORS.md b/repair_type_product_destination/readme/CONTRIBUTORS.md
index 484bb742..92f1176a 100644
--- a/repair_type_product_destination/readme/CONTRIBUTORS.md
+++ b/repair_type_product_destination/readme/CONTRIBUTORS.md
@@ -1,2 +1,3 @@
- [APSL-Nagarro](https://www.apsl.tech):
- - Patryk Pyczko \<\>
\ No newline at end of file
+ - Patryk Pyczko \<\>
+- `Heliconia Solutions Pvt. Ltd. `_
diff --git a/repair_type_product_destination/static/description/index.html b/repair_type_product_destination/static/description/index.html
index 365b6145..bcfabe3b 100644
--- a/repair_type_product_destination/static/description/index.html
+++ b/repair_type_product_destination/static/description/index.html
@@ -369,7 +369,7 @@ Repair Type - Product Destination
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:841f2e7afbe4c6e48966faef1044973142b77bb7a11d8be86488044a4fd7cad5
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
![Try me on Runboat](https://img.shields.io/badge/runboat-Try%20me-875A7B.png)
+
![Try me on Runboat](https://img.shields.io/badge/runboat-Try%20me-875A7B.png)
This is a technical module, and it does not provide any new
functionality on its own. Due to the way transfers of repaired products
work in Odoo, the following fields will not have any effect without
@@ -402,8 +402,8 @@
Product Destination Location
-- Repairs > Orders > Select or create an order > Miscellaneous >
-Product Destination Location
+- Repairs > Orders > Select or create an order > Miscellaneous > Product
+Destination Location
- Default Product Destination Location
@@ -418,7 +418,7 @@
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.
@@ -436,6 +436,7 @@
Patryk Pyczko <ppyczko@apsl.net>
+
Heliconia Solutions Pvt. Ltd. <https://www.heliconia.io>_
@@ -449,7 +450,7 @@
promote its widespread use.
Current maintainer:
![ppyczko](https://github.com/ppyczko.png?size=40px)
-
This module is part of the OCA/repair project on GitHub.
+
This module is part of the OCA/repair project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/repair_type_product_destination/tests/test_repair_type_product_destination.py b/repair_type_product_destination/tests/test_repair_type_product_destination.py
index a0f189fa..9a81456b 100644
--- a/repair_type_product_destination/tests/test_repair_type_product_destination.py
+++ b/repair_type_product_destination/tests/test_repair_type_product_destination.py
@@ -45,7 +45,7 @@ def setUpClass(cls):
cls.product = cls.env["product.product"].create(
{
"name": "Test Product",
- "type": "product",
+ "is_storable": True,
}
)