From 21300dbeda2e077f801b81e7dd0fa1c7f2abc87a Mon Sep 17 00:00:00 2001 From: David Beal Date: Tue, 19 Jan 2021 13:04:54 +0100 Subject: [PATCH] MIG mrp_workcenter_hierarchical: migration v14.0 --- mrp_workcenter_hierarchical/README.rst | 26 ++-- mrp_workcenter_hierarchical/__init__.py | 6 +- mrp_workcenter_hierarchical/__manifest__.py | 4 +- mrp_workcenter_hierarchical/data/mrp_demo.xml | 133 +++++------------- mrp_workcenter_hierarchical/model/__init__.py | 5 - .../models/__init__.py | 1 + .../mrp_workcenter.py} | 25 ++-- .../readme/CONFIGURE.rst | 8 +- .../readme/DESCRIPTION.rst | 3 +- mrp_workcenter_hierarchical/readme/USAGE.rst | 5 +- .../static/description/index.html | 30 ++-- .../static/src/img/img1.png | Bin 0 -> 65288 bytes .../tests/test_compute_level.py | 74 ++-------- .../views/workcenter_view.xml | 92 ++++++------ 14 files changed, 149 insertions(+), 263 deletions(-) delete mode 100644 mrp_workcenter_hierarchical/model/__init__.py create mode 100644 mrp_workcenter_hierarchical/models/__init__.py rename mrp_workcenter_hierarchical/{model/workcenter.py => models/mrp_workcenter.py} (75%) create mode 100644 mrp_workcenter_hierarchical/static/src/img/img1.png diff --git a/mrp_workcenter_hierarchical/README.rst b/mrp_workcenter_hierarchical/README.rst index 030a42816..fb994b535 100644 --- a/mrp_workcenter_hierarchical/README.rst +++ b/mrp_workcenter_hierarchical/README.rst @@ -14,19 +14,18 @@ MRP Workcenter Hierarchical :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/9.0/mrp_workcenter_hierarchical + :target: https://github.com/OCA/manufacture/tree/14.0/mrp_workcenter_hierarchical :alt: OCA/manufacture .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/manufacture-9-0/manufacture-9-0-mrp_workcenter_hierarchical + :target: https://translation.odoo-community.org/projects/manufacture-14-0/manufacture-14-0-mrp_workcenter_hierarchical :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/129/9.0 + :target: https://runbot.odoo-community.org/runbot/129/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| - -* Add the possibility to define a parent workcenter to a workcenter +Allow to define a parent workcenter to a workcenter **Table of contents** @@ -36,18 +35,17 @@ MRP Workcenter Hierarchical Configuration ============= -To visualize features offered by this module, you need to: - - * go to Settings > Configuration > Manufacturing - * in the section Manufacturing Order / Planning, - check "Manage routings and work orders" and Validate +Activate workcenters: + * Manufacturing > Configuration > Settings > Configuration + * Check Work Orders and save Usage ===== -To use this module, you need to go to: + * Go to Manufacturing > Configuration > Work Centers + * Set parent field on workcenters - * Manufacturing > Configuration > Workcenter Hierarchical + ../static/src/img/img1.png Bug Tracker =========== @@ -55,7 +53,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -89,6 +87,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_workcenter_hierarchical/__init__.py b/mrp_workcenter_hierarchical/__init__.py index f68a77f44..0650744f6 100644 --- a/mrp_workcenter_hierarchical/__init__.py +++ b/mrp_workcenter_hierarchical/__init__.py @@ -1,5 +1 @@ -# © 2016 Akretion (http://www.akretion.com) -# David BEAL -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from . import model +from . import models diff --git a/mrp_workcenter_hierarchical/__manifest__.py b/mrp_workcenter_hierarchical/__manifest__.py index f8903196d..2bccd24e4 100644 --- a/mrp_workcenter_hierarchical/__manifest__.py +++ b/mrp_workcenter_hierarchical/__manifest__.py @@ -1,10 +1,10 @@ -# © 2016 Akretion (http://www.akretion.com) +# 2016 Akretion (http://www.akretion.com) # David BEAL # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "MRP Workcenter Hierarchical", - "version": "14.0.0.0.0", + "version": "14.0.1.0.0", "author": "Akretion,Odoo Community Association (OCA)", "summary": "Organise Workcenters by section", "category": "Manufacturing", diff --git a/mrp_workcenter_hierarchical/data/mrp_demo.xml b/mrp_workcenter_hierarchical/data/mrp_demo.xml index f39fc8fd8..beb6f1cca 100644 --- a/mrp_workcenter_hierarchical/data/mrp_demo.xml +++ b/mrp_workcenter_hierarchical/data/mrp_demo.xml @@ -1,96 +1,39 @@ - - - - Assembly 1 - - 5 - 1 - 0.1 - 0.1 - 0.87 - - 0.1 - - 0.05 - - - - Assembly workshop 2 - - 5 - 1 - 0.1 - 0.1 - 0.87 - - 0.1 - - 0.05 - - - - - Assembly A - - 5 - 1 - 0.1 - 0.1 - 0.87 - - 0.1 - - 0.05 - - - - - Assembly B - - 5 - 1 - 0.1 - 0.1 - 0.87 - - 0.1 - - 0.05 - - - - - Assembly C - - 5 - 1 - 0.1 - 0.1 - 0.87 - - 0.1 - - 0.05 - - - - - Assembly E - - 5 - 1 - 0.1 - 0.1 - 0.87 - - 0.1 - - 0.05 - - - - - - - + + + + 12345 + + + 1234 + + + + 123 + + + + 12 + + + + 1 + + + + + + + mrp.workcenter + + + + + + + + + + + + diff --git a/mrp_workcenter_hierarchical/model/__init__.py b/mrp_workcenter_hierarchical/model/__init__.py deleted file mode 100644 index ec36a0176..000000000 --- a/mrp_workcenter_hierarchical/model/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# © 2016 Akretion (http://www.akretion.com) -# David BEAL -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from . import workcenter diff --git a/mrp_workcenter_hierarchical/models/__init__.py b/mrp_workcenter_hierarchical/models/__init__.py new file mode 100644 index 000000000..567663b3b --- /dev/null +++ b/mrp_workcenter_hierarchical/models/__init__.py @@ -0,0 +1 @@ +from . import mrp_workcenter diff --git a/mrp_workcenter_hierarchical/model/workcenter.py b/mrp_workcenter_hierarchical/models/mrp_workcenter.py similarity index 75% rename from mrp_workcenter_hierarchical/model/workcenter.py rename to mrp_workcenter_hierarchical/models/mrp_workcenter.py index 35dc12000..33e4f2a1b 100644 --- a/mrp_workcenter_hierarchical/model/workcenter.py +++ b/mrp_workcenter_hierarchical/models/mrp_workcenter.py @@ -1,39 +1,41 @@ -# © 2016 Akretion (http://www.akretion.com) +# 2016 Akretion (http://www.akretion.com) # David BEAL # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp import api, fields, models +from odoo import api, fields, models class MrpWorkcenter(models.Model): _inherit = "mrp.workcenter" - _order = "parent_left" + _parent_name = "parent_id" _parent_store = True - parent_id = fields.Many2one("mrp.workcenter", string="Parent") - child_ids = fields.One2many("mrp.workcenter", "parent_id", string="Children") + parent_id = fields.Many2one( + comodel_name="mrp.workcenter", string="Parent", index=True + ) + parent_path = fields.Char(index=True) + child_ids = fields.One2many( + comodel_name="mrp.workcenter", inverse_name="parent_id", string="Children" + ) parent_level_1_id = fields.Many2one( - "mrp.workcenter", + comodel_name="mrp.workcenter", compute="_compute_parent_level", string="Parent Level 1", store=True, ) parent_level_2_id = fields.Many2one( - "mrp.workcenter", + comodel_name="mrp.workcenter", compute="_compute_parent_level", string="Parent Level 2", store=True, ) parent_level_3_id = fields.Many2one( - "mrp.workcenter", + comodel_name="mrp.workcenter", compute="_compute_parent_level", string="Parent Level 3", store=True, ) - parent_left = fields.Integer(select=True) - parent_right = fields.Integer(select=True) - @api.multi def _get_parent_ids(self): self.ensure_one() if self.parent_id: @@ -43,7 +45,6 @@ class MrpWorkcenter(models.Model): ids = [] return ids - @api.multi @api.depends("parent_id.parent_id.parent_id", "child_ids") def _compute_parent_level(self): def get_next_level(parent_ids, workcenter): diff --git a/mrp_workcenter_hierarchical/readme/CONFIGURE.rst b/mrp_workcenter_hierarchical/readme/CONFIGURE.rst index e476e55a7..eef187384 100644 --- a/mrp_workcenter_hierarchical/readme/CONFIGURE.rst +++ b/mrp_workcenter_hierarchical/readme/CONFIGURE.rst @@ -1,5 +1,3 @@ -To visualize features offered by this module, you need to: - - * go to Settings > Configuration > Manufacturing - * in the section Manufacturing Order / Planning, - check "Manage routings and work orders" and Validate +Activate workcenters: + * Manufacturing > Configuration > Settings > Configuration + * Check Work Orders and save diff --git a/mrp_workcenter_hierarchical/readme/DESCRIPTION.rst b/mrp_workcenter_hierarchical/readme/DESCRIPTION.rst index 2d03560dd..8dc1024b2 100644 --- a/mrp_workcenter_hierarchical/readme/DESCRIPTION.rst +++ b/mrp_workcenter_hierarchical/readme/DESCRIPTION.rst @@ -1,2 +1 @@ - -* Add the possibility to define a parent workcenter to a workcenter +Allow to define a parent workcenter to a workcenter diff --git a/mrp_workcenter_hierarchical/readme/USAGE.rst b/mrp_workcenter_hierarchical/readme/USAGE.rst index 6b7ee7572..e475d34a2 100644 --- a/mrp_workcenter_hierarchical/readme/USAGE.rst +++ b/mrp_workcenter_hierarchical/readme/USAGE.rst @@ -1,3 +1,4 @@ -To use this module, you need to go to: + * Go to Manufacturing > Configuration > Work Centers + * Set parent field on workcenters - * Manufacturing > Configuration > Workcenter Hierarchical + ../static/src/img/img1.png diff --git a/mrp_workcenter_hierarchical/static/description/index.html b/mrp_workcenter_hierarchical/static/description/index.html index 81edc9e02..369c713a1 100644 --- a/mrp_workcenter_hierarchical/static/description/index.html +++ b/mrp_workcenter_hierarchical/static/description/index.html @@ -367,10 +367,8 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

-
    -
  • Add the possibility to define a parent workcenter to a workcenter
  • -
+

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

+

Allow to define a parent workcenter to a workcenter

Table of contents

    @@ -387,22 +385,24 @@ ul.auto-toc {

Configuration

-

To visualize features offered by this module, you need to:

-
-
    -
  • go to Settings > Configuration > Manufacturing
  • -
  • in the section Manufacturing Order / Planning, -check “Manage routings and work orders” and Validate
  • +
    +
    Activate workcenters:
    +
      +
    • Manufacturing > Configuration > Settings > Configuration
    • +
    • Check Work Orders and save
    -
+ +

Usage

-

To use this module, you need to go to:

    -
  • Manufacturing > Configuration > Workcenter Hierarchical
  • +
  • Go to Manufacturing > Configuration > Work Centers
  • +
  • Set parent field on workcenters
+
+../static/src/img/img1.png
@@ -410,7 +410,7 @@ check “Manage routings and work orders” and Validate

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

+feedback.

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

@@ -437,7 +437,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome

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_workcenter_hierarchical/static/src/img/img1.png b/mrp_workcenter_hierarchical/static/src/img/img1.png new file mode 100644 index 0000000000000000000000000000000000000000..16a3cccfc89a011ca3f1c8bd17eee1d5153a739a GIT binary patch literal 65288 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 F{y&s-uoeIS literal 0 HcmV?d00001 diff --git a/mrp_workcenter_hierarchical/tests/test_compute_level.py b/mrp_workcenter_hierarchical/tests/test_compute_level.py index c711fdf2b..2f5bcaca8 100644 --- a/mrp_workcenter_hierarchical/tests/test_compute_level.py +++ b/mrp_workcenter_hierarchical/tests/test_compute_level.py @@ -2,73 +2,17 @@ # David BEAL # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from openerp.tests.common import TransactionCase +from odoo.tests.common import TransactionCase class ComputeParentLevel(TransactionCase): - def test_compute_parent_level0(self): - workcenter = self.env["mrp.workcenter"].create( - { - "name": "New Assembly", - "calendar_id": self.env.ref("resource.timesheet_group1").id, - "capacity_per_cycle": 5, - "time_cycle": 1, - "time_start": 0.1, - "time_stop": 0.1, - "time_efficiency": 0.87, - "product_id": self.env.ref("product.product_assembly").id, - "costs_hour": 0, - "costs_hour_account_id": self.env.ref("mrp.account_assembly_hours").id, - "costs_cycle": 0.05, - "costs_cycle_account_id": self.env.ref("mrp.account_assembly_cycle").id, - } - ) - workcenter_child = self.env.ref("mrp_workcenter_hierarchical.mrp_workcenter_A") - workcenter_child.write({"parent_id": workcenter.id}) - self.assertEqual(workcenter.parent_level_1_id, workcenter) + def test_compute_low_level_workcenter(self): + workcenter = self.env["mrp.workcenter"].create({"name": "any"}) - def test_compute_parent_level1(self): - workcenter_child = self.env.ref("mrp_workcenter_hierarchical.mrp_workcenter_E") - workcenter_parent = self.env.ref( - "mrp_workcenter_hierarchical.mrp_workcenter_top" - ) - workcenter_child.write({"parent_id": workcenter_parent.id}) - self.assertEqual(workcenter_child.parent_level_1_id, workcenter_parent) + def get_record(string): + return self.env.ref("mrp_workcenter_hierarchical.%s" % string) - def test_compute_parent_level2(self): - workcenter_child = self.env.ref("mrp_workcenter_hierarchical.mrp_workcenter_A") - workcenter_parent1 = self.env.ref( - "mrp_workcenter_hierarchical.mrp_workcenter_top" - ) - workcenter_parent2 = self.env.ref("mrp.mrp_workcenter_0") - workcenter_child.write({"parent_id": workcenter_parent2.id}) - self.assertEqual(workcenter_child.parent_level_2_id, workcenter_parent2) - self.assertEqual(workcenter_child.parent_level_1_id, workcenter_parent1) - - def test_compute_parent_level3(self): - workcenter_child = self.env.ref("mrp_workcenter_hierarchical.mrp_workcenter_B") - workcenter_parent1 = self.env.ref( - "mrp_workcenter_hierarchical.mrp_workcenter_top" - ) - workcenter_parent2 = self.env.ref( - "mrp_workcenter_hierarchical.mrp_workcenter_2" - ) - workcenter_parent3 = self.env.ref( - "mrp_workcenter_hierarchical.mrp_workcenter_A" - ) - workcenter_child.write({"parent_id": workcenter_parent3.id}) - self.assertEqual(workcenter_child.parent_level_3_id, workcenter_parent3) - self.assertEqual(workcenter_child.parent_level_2_id, workcenter_parent2) - self.assertEqual(workcenter_child.parent_level_1_id, workcenter_parent1) - - def test_compute_parent_level3_bis(self): - workcenter_child = self.env.ref("mrp_workcenter_hierarchical.mrp_workcenter_C") - workcenter_parent3 = self.env.ref( - "mrp_workcenter_hierarchical.mrp_workcenter_A" - ) - workcenter_parent4 = self.env.ref( - "mrp_workcenter_hierarchical.mrp_workcenter_B" - ) - workcenter_parent4.write({"parent_id": workcenter_parent3.id}) - workcenter_child.write({"parent_id": workcenter_parent4.id}) - self.assertEqual(workcenter_child.parent_id, workcenter_parent4) + workcenter.write({"parent_id": get_record("workc_12").id}) + assert workcenter.parent_level_3_id == get_record("workc_123") + assert workcenter.parent_level_2_id == get_record("workc_1234") + assert workcenter.parent_level_1_id == get_record("workc_12345") diff --git a/mrp_workcenter_hierarchical/views/workcenter_view.xml b/mrp_workcenter_hierarchical/views/workcenter_view.xml index 15314e909..0be32e6aa 100644 --- a/mrp_workcenter_hierarchical/views/workcenter_view.xml +++ b/mrp_workcenter_hierarchical/views/workcenter_view.xml @@ -1,44 +1,54 @@ - - - - - mrp.workcenter - - - - - - - + + + mrp.workcenter + + + + + + + + + + + + mrp.workcenter + + + + - - - mrp.workcenter - - - - - + + + + + mrp.workcenter + + + + - - - {'search_default_group_by_level_1': 1} - - - + + + + + {'search_default_group_by_level_1': 1} + + +