From c7135b1ac553b442246de2f96d01e0cfe8621105 Mon Sep 17 00:00:00 2001 From: David Alonso Date: Mon, 30 Sep 2019 18:43:19 +0200 Subject: [PATCH 01/12] [ADD] maintenance_project_plan --- maintenance_project_plan/README.rst | 73 +++ maintenance_project_plan/__init__.py | 1 + maintenance_project_plan/__manifest__.py | 23 + .../data/demo_maintenance_project_plan.xml | 22 + maintenance_project_plan/i18n/es.po | 37 ++ .../i18n/maintenance_project_plan.pot | 35 ++ maintenance_project_plan/models/__init__.py | 2 + .../models/maintenance_equipment.py | 17 + .../models/maintenance_plan.py | 28 ++ .../readme/CONTRIBUTORS.rst | 1 + .../readme/DESCRIPTION.rst | 1 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 419 ++++++++++++++++++ maintenance_project_plan/tests/__init__.py | 1 + .../tests/test_maintenance_project_plan.py | 61 +++ .../views/maintenance_equipment_views.xml | 14 + .../views/maintenance_plan_views.xml | 30 ++ 17 files changed, 765 insertions(+) create mode 100644 maintenance_project_plan/README.rst create mode 100644 maintenance_project_plan/__init__.py create mode 100644 maintenance_project_plan/__manifest__.py create mode 100644 maintenance_project_plan/data/demo_maintenance_project_plan.xml create mode 100644 maintenance_project_plan/i18n/es.po create mode 100644 maintenance_project_plan/i18n/maintenance_project_plan.pot create mode 100644 maintenance_project_plan/models/__init__.py create mode 100644 maintenance_project_plan/models/maintenance_equipment.py create mode 100644 maintenance_project_plan/models/maintenance_plan.py create mode 100644 maintenance_project_plan/readme/CONTRIBUTORS.rst create mode 100644 maintenance_project_plan/readme/DESCRIPTION.rst create mode 100644 maintenance_project_plan/static/description/icon.png create mode 100644 maintenance_project_plan/static/description/index.html create mode 100644 maintenance_project_plan/tests/__init__.py create mode 100644 maintenance_project_plan/tests/test_maintenance_project_plan.py create mode 100644 maintenance_project_plan/views/maintenance_equipment_views.xml create mode 100644 maintenance_project_plan/views/maintenance_plan_views.xml diff --git a/maintenance_project_plan/README.rst b/maintenance_project_plan/README.rst new file mode 100644 index 000000000..4d2898bdf --- /dev/null +++ b/maintenance_project_plan/README.rst @@ -0,0 +1,73 @@ +========================= +Maintenance Project Plans +========================= + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmaintenance-lightgray.png?logo=github + :target: https://github.com/OCA/maintenance/tree/12.0/maintenance_project_plan + :alt: OCA/maintenance +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/maintenance-12-0/maintenance-12-0-maintenance_project_plan + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/240/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module adds project and task fields to a Maintenance Plan, which will be automatically propagated to any maintenance request generated from a Plan. + +**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 smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Solvos + +Contributors +~~~~~~~~~~~~ + +* David Alonso + +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/maintenance `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/maintenance_project_plan/__init__.py b/maintenance_project_plan/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/maintenance_project_plan/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/maintenance_project_plan/__manifest__.py b/maintenance_project_plan/__manifest__.py new file mode 100644 index 000000000..5eb96bfa6 --- /dev/null +++ b/maintenance_project_plan/__manifest__.py @@ -0,0 +1,23 @@ +# Copyright 2019 Solvos Consultor??a Inform??tica () +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html +{ + 'name': 'Maintenance Project Plans', + "summary": "Adds project and task to a Maintenance Plan", + "version": "12.0.1.0.0", + "author": "Odoo Community Association (OCA), Solvos", + 'license': 'AGPL-3', + "category": "Maintenance", + "website": "https://github.com/OCA/maintenance", + "depends": [ + "maintenance_plan", + "maintenance_project", + ], + "data": [ + "views/maintenance_equipment_views.xml", + "views/maintenance_plan_views.xml", + ], + "demo": [ + "data/demo_maintenance_project_plan.xml", + ], + 'installable': True, +} diff --git a/maintenance_project_plan/data/demo_maintenance_project_plan.xml b/maintenance_project_plan/data/demo_maintenance_project_plan.xml new file mode 100644 index 000000000..f67dc6d72 --- /dev/null +++ b/maintenance_project_plan/data/demo_maintenance_project_plan.xml @@ -0,0 +1,22 @@ + + + + + + + + + 30 + 2 + + + + + + + 7 + 1 + + + + diff --git a/maintenance_project_plan/i18n/es.po b/maintenance_project_plan/i18n/es.po new file mode 100644 index 000000000..30d3cf824 --- /dev/null +++ b/maintenance_project_plan/i18n/es.po @@ -0,0 +1,37 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * maintenance_project_plan +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2019-09-30 16:31+0000\n" +"PO-Revision-Date: 2019-09-30 16:31+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" +"Plural-Forms: \n" + +#. module: maintenance_project_plan +#: model:ir.model,name:maintenance_project_plan.model_maintenance_equipment +msgid "Maintenance Equipment" +msgstr "Equipo" + +#. module: maintenance_project_plan +#: model:ir.model,name:maintenance_project_plan.model_maintenance_plan +msgid "Maintenance Plan" +msgstr "Plan de mantenimiento" + +#. module: maintenance_project_plan +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_plan__project_id +msgid "Project" +msgstr "Proyecto" + +#. module: maintenance_project_plan +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_plan__task_id +msgid "Task" +msgstr "Tarea" diff --git a/maintenance_project_plan/i18n/maintenance_project_plan.pot b/maintenance_project_plan/i18n/maintenance_project_plan.pot new file mode 100644 index 000000000..39030c024 --- /dev/null +++ b/maintenance_project_plan/i18n/maintenance_project_plan.pot @@ -0,0 +1,35 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * maintenance_project_plan +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: maintenance_project_plan +#: model:ir.model,name:maintenance_project_plan.model_maintenance_equipment +msgid "Maintenance Equipment" +msgstr "" + +#. module: maintenance_project_plan +#: model:ir.model,name:maintenance_project_plan.model_maintenance_plan +msgid "Maintenance Plan" +msgstr "" + +#. module: maintenance_project_plan +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_plan__project_id +msgid "Project" +msgstr "" + +#. module: maintenance_project_plan +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_plan__task_id +msgid "Task" +msgstr "" + diff --git a/maintenance_project_plan/models/__init__.py b/maintenance_project_plan/models/__init__.py new file mode 100644 index 000000000..ad8f1b654 --- /dev/null +++ b/maintenance_project_plan/models/__init__.py @@ -0,0 +1,2 @@ +from . import maintenance_equipment +from . import maintenance_plan diff --git a/maintenance_project_plan/models/maintenance_equipment.py b/maintenance_project_plan/models/maintenance_equipment.py new file mode 100644 index 000000000..37a23aafb --- /dev/null +++ b/maintenance_project_plan/models/maintenance_equipment.py @@ -0,0 +1,17 @@ +# Copyright 2019 Solvos Consultor??a Inform??tica () +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import models + + +class MaintenanceEquipment(models.Model): + _inherit = 'maintenance.equipment' + + def _prepare_request_from_plan(self, maintenance_plan): + request = super()._prepare_request_from_plan(maintenance_plan) + if maintenance_plan.project_id: + request['project_id'] = maintenance_plan.project_id.id + if maintenance_plan.task_id: + request['task_id'] = maintenance_plan.task_id.id + + return request diff --git a/maintenance_project_plan/models/maintenance_plan.py b/maintenance_project_plan/models/maintenance_plan.py new file mode 100644 index 000000000..bd3d41087 --- /dev/null +++ b/maintenance_project_plan/models/maintenance_plan.py @@ -0,0 +1,28 @@ +# Copyright 2019 Solvos Consultor??a Inform??tica () +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +from odoo import models, fields, api + + +class MaintenancePlan(models.Model): + _inherit = 'maintenance.plan' + + project_id = fields.Many2one( + comodel_name='project.project', + ondelete='restrict') + task_id = fields.Many2one( + comodel_name='project.task') + + @api.onchange('project_id') + def onchange_project_id(self): + if self.project_id: + if self.project_id != self.task_id.project_id: + self.task_id = False + return {'domain': { + 'task_id': [('project_id', '=', self.project_id.id)] + }} + else: + self.task_id = False + return {'domain': { + 'task_id': [('project_id', '=', False)] + }} diff --git a/maintenance_project_plan/readme/CONTRIBUTORS.rst b/maintenance_project_plan/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..423455dfe --- /dev/null +++ b/maintenance_project_plan/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* David Alonso diff --git a/maintenance_project_plan/readme/DESCRIPTION.rst b/maintenance_project_plan/readme/DESCRIPTION.rst new file mode 100644 index 000000000..bf6d945a5 --- /dev/null +++ b/maintenance_project_plan/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module adds project and task fields to a Maintenance Plan, which will be automatically propagated to any maintenance request generated from a Plan. diff --git a/maintenance_project_plan/static/description/icon.png b/maintenance_project_plan/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/maintenance_project_plan/static/description/index.html b/maintenance_project_plan/static/description/index.html new file mode 100644 index 000000000..bca16a34c --- /dev/null +++ b/maintenance_project_plan/static/description/index.html @@ -0,0 +1,419 @@ + + + + + + +Maintenance Project Plans + + + +
+

Maintenance Project Plans

+ + +

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

+

This module adds project and task fields to a Maintenance Plan, which will be automatically propagated to any maintenance request generated from a Plan.

+

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

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Solvos
  • +
+
+
+

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

+

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

+
+
+
+ + diff --git a/maintenance_project_plan/tests/__init__.py b/maintenance_project_plan/tests/__init__.py new file mode 100644 index 000000000..6a6c30c7f --- /dev/null +++ b/maintenance_project_plan/tests/__init__.py @@ -0,0 +1 @@ +from . import test_maintenance_project_plan diff --git a/maintenance_project_plan/tests/test_maintenance_project_plan.py b/maintenance_project_plan/tests/test_maintenance_project_plan.py new file mode 100644 index 000000000..db5a06a8b --- /dev/null +++ b/maintenance_project_plan/tests/test_maintenance_project_plan.py @@ -0,0 +1,61 @@ +# Copyright 2019 Solvos Consultor??a Inform??tica () +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html + +import odoo.tests.common as test_common + + +class TestMaintenanceProjectPlan(test_common.TransactionCase): + + def setUp(self): + super().setUp() + + self.cron = self.env.ref('maintenance.maintenance_requests_cron') + + self.maintenance_kind_weekly = \ + self.env.ref('maintenance_plan.maintenance_kind_weekly') + + self.monitor1 = self.env.ref('maintenance.equipment_monitor1') + self.monitor1.maintenance_plan_ids = [(0, 0, { + 'maintenance_kind_id': self.maintenance_kind_weekly.id, + 'period': 7, + 'duration': 1, + 'project_id': + self.env.ref('maintenance_project.project_project_1').id, + 'task_id': self.env.ref('maintenance_project.project_task_11').id + })] + + def test_prepare_request_from_plan(self): + plans = self.env['maintenance.plan'].search( + [('project_id', '!=', False)]) + for plan in plans: + data = plan.equipment_id._prepare_request_from_plan(plan) + self.assertEqual(data['project_id'], plan.project_id.id) + self.assertEqual(data.get('task_id', False), plan.task_id.id) + + def test_plan_onchange_project(self): + plan1 = self.env['maintenance.plan'].new({ + 'equipment_id': self.env.ref( + 'maintenance_plan.maintenance_plan_monthly_monitor4').id, + 'maintenance_kind_id': self.maintenance_kind_weekly.id, + 'period': 7, + 'duration': 1, + 'project_id': + self.env.ref('maintenance_project.project_project_1').id, + 'task_id': + self.env.ref('maintenance_project.project_task_11').id}) + self.assertEqual(plan1.project_id, + self.env.ref('maintenance_project.project_project_1')) + self.assertEqual(plan1.task_id, + self.env.ref('maintenance_project.project_task_11')) + plan1.project_id = False + ctx1 = plan1.onchange_project_id() + self.assertFalse(plan1.task_id) + self.assertFalse(ctx1['domain']['task_id'][0][2]) + + plan1.project_id = self.env.ref( + 'maintenance_project.project_project_1') + ctx2 = plan1.onchange_project_id() + self.assertFalse(plan1.task_id) + self.assertEqual( + ctx2['domain']['task_id'][0][2], + self.env.ref('maintenance_project.project_project_1').id) diff --git a/maintenance_project_plan/views/maintenance_equipment_views.xml b/maintenance_project_plan/views/maintenance_equipment_views.xml new file mode 100644 index 000000000..c17aa45e0 --- /dev/null +++ b/maintenance_project_plan/views/maintenance_equipment_views.xml @@ -0,0 +1,14 @@ + + + + + + maintenance.equipment + + + {'default_project_id': project_id, 'default_task_id': preventive_default_task_id} + + + + + diff --git a/maintenance_project_plan/views/maintenance_plan_views.xml b/maintenance_project_plan/views/maintenance_plan_views.xml new file mode 100644 index 000000000..ec70210de --- /dev/null +++ b/maintenance_project_plan/views/maintenance_plan_views.xml @@ -0,0 +1,30 @@ + + + + + + maintenance.plan + + + + + + + + + + + maintenance.plan + + + + + + + + + From b9253a5273a29655b3cca6986cdd3c8fd5fa213a Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Tue, 24 Dec 2019 08:50:44 +0100 Subject: [PATCH 02/12] [12.0][FIX] maintenance_project_plan maintenance_project_plan 12.0.2.0.0 --- maintenance_project_plan/__manifest__.py | 2 +- .../data/demo_maintenance_project_plan.xml | 6 ++++-- .../models/maintenance_equipment.py | 7 +++++-- .../tests/test_maintenance_project_plan.py | 12 ++++++++---- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/maintenance_project_plan/__manifest__.py b/maintenance_project_plan/__manifest__.py index 5eb96bfa6..3e8bd1054 100644 --- a/maintenance_project_plan/__manifest__.py +++ b/maintenance_project_plan/__manifest__.py @@ -3,7 +3,7 @@ { 'name': 'Maintenance Project Plans', "summary": "Adds project and task to a Maintenance Plan", - "version": "12.0.1.0.0", + "version": "12.0.2.0.0", "author": "Odoo Community Association (OCA), Solvos", 'license': 'AGPL-3', "category": "Maintenance", diff --git a/maintenance_project_plan/data/demo_maintenance_project_plan.xml b/maintenance_project_plan/data/demo_maintenance_project_plan.xml index f67dc6d72..48e10dbf7 100644 --- a/maintenance_project_plan/data/demo_maintenance_project_plan.xml +++ b/maintenance_project_plan/data/demo_maintenance_project_plan.xml @@ -6,7 +6,8 @@ - 30 + 30 + day 2 @@ -14,7 +15,8 @@ - 7 + 7 + day 1 diff --git a/maintenance_project_plan/models/maintenance_equipment.py b/maintenance_project_plan/models/maintenance_equipment.py index 37a23aafb..c6e892ed5 100644 --- a/maintenance_project_plan/models/maintenance_equipment.py +++ b/maintenance_project_plan/models/maintenance_equipment.py @@ -7,8 +7,11 @@ class MaintenanceEquipment(models.Model): _inherit = 'maintenance.equipment' - def _prepare_request_from_plan(self, maintenance_plan): - request = super()._prepare_request_from_plan(maintenance_plan) + def _prepare_request_from_plan( + self, maintenance_plan, next_maintenance_date + ): + request = super()._prepare_request_from_plan( + maintenance_plan, next_maintenance_date) if maintenance_plan.project_id: request['project_id'] = maintenance_plan.project_id.id if maintenance_plan.task_id: diff --git a/maintenance_project_plan/tests/test_maintenance_project_plan.py b/maintenance_project_plan/tests/test_maintenance_project_plan.py index db5a06a8b..bfdaf6d28 100644 --- a/maintenance_project_plan/tests/test_maintenance_project_plan.py +++ b/maintenance_project_plan/tests/test_maintenance_project_plan.py @@ -28,16 +28,20 @@ def test_prepare_request_from_plan(self): plans = self.env['maintenance.plan'].search( [('project_id', '!=', False)]) for plan in plans: - data = plan.equipment_id._prepare_request_from_plan(plan) - self.assertEqual(data['project_id'], plan.project_id.id) - self.assertEqual(data.get('task_id', False), plan.task_id.id) + requests = plan.equipment_id._create_new_request(plan) + self.assertTrue(requests) + request = requests[0] + self.assertEqual(request.project_id, plan.project_id) + self.assertEqual( + request.task_id, + plan.task_id or plan.equipment_id.preventive_default_task_id + ) def test_plan_onchange_project(self): plan1 = self.env['maintenance.plan'].new({ 'equipment_id': self.env.ref( 'maintenance_plan.maintenance_plan_monthly_monitor4').id, 'maintenance_kind_id': self.maintenance_kind_weekly.id, - 'period': 7, 'duration': 1, 'project_id': self.env.ref('maintenance_project.project_project_1').id, From e5fc56a0b68a0619af6e280116a6fd8f478a7383 Mon Sep 17 00:00:00 2001 From: "David Alonso (Solvos)" Date: Thu, 27 Feb 2020 16:56:44 +0100 Subject: [PATCH 03/12] [IMP] maintenance_project_plan: black, isort --- maintenance_project_plan/__manifest__.py | 15 ++-- .../models/maintenance_equipment.py | 13 ++-- .../models/maintenance_plan.py | 21 ++--- .../tests/test_maintenance_project_plan.py | 78 +++++++++++-------- 4 files changed, 62 insertions(+), 65 deletions(-) diff --git a/maintenance_project_plan/__manifest__.py b/maintenance_project_plan/__manifest__.py index 3e8bd1054..5c5d84456 100644 --- a/maintenance_project_plan/__manifest__.py +++ b/maintenance_project_plan/__manifest__.py @@ -1,23 +1,18 @@ # Copyright 2019 Solvos Consultor??a Inform??tica () # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html { - 'name': 'Maintenance Project Plans', + "name": "Maintenance Project Plans", "summary": "Adds project and task to a Maintenance Plan", "version": "12.0.2.0.0", "author": "Odoo Community Association (OCA), Solvos", - 'license': 'AGPL-3', + "license": "AGPL-3", "category": "Maintenance", "website": "https://github.com/OCA/maintenance", - "depends": [ - "maintenance_plan", - "maintenance_project", - ], + "depends": ["maintenance_plan", "maintenance_project"], "data": [ "views/maintenance_equipment_views.xml", "views/maintenance_plan_views.xml", ], - "demo": [ - "data/demo_maintenance_project_plan.xml", - ], - 'installable': True, + "demo": ["data/demo_maintenance_project_plan.xml"], + "installable": True, } diff --git a/maintenance_project_plan/models/maintenance_equipment.py b/maintenance_project_plan/models/maintenance_equipment.py index c6e892ed5..04b418e84 100644 --- a/maintenance_project_plan/models/maintenance_equipment.py +++ b/maintenance_project_plan/models/maintenance_equipment.py @@ -5,16 +5,15 @@ class MaintenanceEquipment(models.Model): - _inherit = 'maintenance.equipment' + _inherit = "maintenance.equipment" - def _prepare_request_from_plan( - self, maintenance_plan, next_maintenance_date - ): + def _prepare_request_from_plan(self, maintenance_plan, next_maintenance_date): request = super()._prepare_request_from_plan( - maintenance_plan, next_maintenance_date) + maintenance_plan, next_maintenance_date + ) if maintenance_plan.project_id: - request['project_id'] = maintenance_plan.project_id.id + request["project_id"] = maintenance_plan.project_id.id if maintenance_plan.task_id: - request['task_id'] = maintenance_plan.task_id.id + request["task_id"] = maintenance_plan.task_id.id return request diff --git a/maintenance_project_plan/models/maintenance_plan.py b/maintenance_project_plan/models/maintenance_plan.py index bd3d41087..890743601 100644 --- a/maintenance_project_plan/models/maintenance_plan.py +++ b/maintenance_project_plan/models/maintenance_plan.py @@ -1,28 +1,21 @@ # Copyright 2019 Solvos Consultor??a Inform??tica () # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html -from odoo import models, fields, api +from odoo import api, fields, models class MaintenancePlan(models.Model): - _inherit = 'maintenance.plan' + _inherit = "maintenance.plan" - project_id = fields.Many2one( - comodel_name='project.project', - ondelete='restrict') - task_id = fields.Many2one( - comodel_name='project.task') + project_id = fields.Many2one(comodel_name="project.project", ondelete="restrict") + task_id = fields.Many2one(comodel_name="project.task") - @api.onchange('project_id') + @api.onchange("project_id") def onchange_project_id(self): if self.project_id: if self.project_id != self.task_id.project_id: self.task_id = False - return {'domain': { - 'task_id': [('project_id', '=', self.project_id.id)] - }} + return {"domain": {"task_id": [("project_id", "=", self.project_id.id)]}} else: self.task_id = False - return {'domain': { - 'task_id': [('project_id', '=', False)] - }} + return {"domain": {"task_id": [("project_id", "=", False)]}} diff --git a/maintenance_project_plan/tests/test_maintenance_project_plan.py b/maintenance_project_plan/tests/test_maintenance_project_plan.py index bfdaf6d28..edee6ca1a 100644 --- a/maintenance_project_plan/tests/test_maintenance_project_plan.py +++ b/maintenance_project_plan/tests/test_maintenance_project_plan.py @@ -5,28 +5,34 @@ class TestMaintenanceProjectPlan(test_common.TransactionCase): - def setUp(self): super().setUp() - self.cron = self.env.ref('maintenance.maintenance_requests_cron') + self.cron = self.env.ref("maintenance.maintenance_requests_cron") - self.maintenance_kind_weekly = \ - self.env.ref('maintenance_plan.maintenance_kind_weekly') + self.maintenance_kind_weekly = self.env.ref( + "maintenance_plan.maintenance_kind_weekly" + ) - self.monitor1 = self.env.ref('maintenance.equipment_monitor1') - self.monitor1.maintenance_plan_ids = [(0, 0, { - 'maintenance_kind_id': self.maintenance_kind_weekly.id, - 'period': 7, - 'duration': 1, - 'project_id': - self.env.ref('maintenance_project.project_project_1').id, - 'task_id': self.env.ref('maintenance_project.project_task_11').id - })] + self.monitor1 = self.env.ref("maintenance.equipment_monitor1") + self.monitor1.maintenance_plan_ids = [ + ( + 0, + 0, + { + "maintenance_kind_id": self.maintenance_kind_weekly.id, + "period": 7, + "duration": 1, + "project_id": self.env.ref( + "maintenance_project.project_project_1" + ).id, + "task_id": self.env.ref("maintenance_project.project_task_11").id, + }, + ) + ] def test_prepare_request_from_plan(self): - plans = self.env['maintenance.plan'].search( - [('project_id', '!=', False)]) + plans = self.env["maintenance.plan"].search([("project_id", "!=", False)]) for plan in plans: requests = plan.equipment_id._create_new_request(plan) self.assertTrue(requests) @@ -34,32 +40,36 @@ def test_prepare_request_from_plan(self): self.assertEqual(request.project_id, plan.project_id) self.assertEqual( request.task_id, - plan.task_id or plan.equipment_id.preventive_default_task_id + plan.task_id or plan.equipment_id.preventive_default_task_id, ) def test_plan_onchange_project(self): - plan1 = self.env['maintenance.plan'].new({ - 'equipment_id': self.env.ref( - 'maintenance_plan.maintenance_plan_monthly_monitor4').id, - 'maintenance_kind_id': self.maintenance_kind_weekly.id, - 'duration': 1, - 'project_id': - self.env.ref('maintenance_project.project_project_1').id, - 'task_id': - self.env.ref('maintenance_project.project_task_11').id}) - self.assertEqual(plan1.project_id, - self.env.ref('maintenance_project.project_project_1')) - self.assertEqual(plan1.task_id, - self.env.ref('maintenance_project.project_task_11')) + plan1 = self.env["maintenance.plan"].new( + { + "equipment_id": self.env.ref( + "maintenance_plan.maintenance_plan_monthly_monitor4" + ).id, + "maintenance_kind_id": self.maintenance_kind_weekly.id, + "duration": 1, + "project_id": self.env.ref("maintenance_project.project_project_1").id, + "task_id": self.env.ref("maintenance_project.project_task_11").id, + } + ) + self.assertEqual( + plan1.project_id, self.env.ref("maintenance_project.project_project_1") + ) + self.assertEqual( + plan1.task_id, self.env.ref("maintenance_project.project_task_11") + ) plan1.project_id = False ctx1 = plan1.onchange_project_id() self.assertFalse(plan1.task_id) - self.assertFalse(ctx1['domain']['task_id'][0][2]) + self.assertFalse(ctx1["domain"]["task_id"][0][2]) - plan1.project_id = self.env.ref( - 'maintenance_project.project_project_1') + plan1.project_id = self.env.ref("maintenance_project.project_project_1") ctx2 = plan1.onchange_project_id() self.assertFalse(plan1.task_id) self.assertEqual( - ctx2['domain']['task_id'][0][2], - self.env.ref('maintenance_project.project_project_1').id) + ctx2["domain"]["task_id"][0][2], + self.env.ref("maintenance_project.project_project_1").id, + ) From 6b4df5890b83d1b2a2a0cc7ed2508909c910ac95 Mon Sep 17 00:00:00 2001 From: "David Alonso (Solvos)" Date: Fri, 28 Feb 2020 15:33:23 +0100 Subject: [PATCH 04/12] [MIG] maintenance_project_plan: Migration to 13.0 --- maintenance_project_plan/README.rst | 10 +++---- maintenance_project_plan/__manifest__.py | 2 +- .../data/demo_maintenance_project_plan.xml | 24 +++++++++------ .../i18n/maintenance_project_plan.pot | 7 ++--- .../static/description/index.html | 6 ++-- .../tests/test_maintenance_project_plan.py | 4 ++- .../views/maintenance_equipment_views.xml | 9 +++--- .../views/maintenance_plan_views.xml | 29 ++++++++++--------- 8 files changed, 50 insertions(+), 41 deletions(-) diff --git a/maintenance_project_plan/README.rst b/maintenance_project_plan/README.rst index 4d2898bdf..56c0d9837 100644 --- a/maintenance_project_plan/README.rst +++ b/maintenance_project_plan/README.rst @@ -14,13 +14,13 @@ Maintenance Project Plans :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmaintenance-lightgray.png?logo=github - :target: https://github.com/OCA/maintenance/tree/12.0/maintenance_project_plan + :target: https://github.com/OCA/maintenance/tree/13.0/maintenance_project_plan :alt: OCA/maintenance .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/maintenance-12-0/maintenance-12-0-maintenance_project_plan + :target: https://translation.odoo-community.org/projects/maintenance-13-0/maintenance-13-0-maintenance_project_plan :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/240/12.0 + :target: https://runbot.odoo-community.org/runbot/240/13.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -38,7 +38,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. @@ -68,6 +68,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/maintenance `_ project on GitHub. +This module is part of the `OCA/maintenance `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/maintenance_project_plan/__manifest__.py b/maintenance_project_plan/__manifest__.py index 5c5d84456..0e73a15cb 100644 --- a/maintenance_project_plan/__manifest__.py +++ b/maintenance_project_plan/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Maintenance Project Plans", "summary": "Adds project and task to a Maintenance Plan", - "version": "12.0.2.0.0", + "version": "13.0.1.0.0", "author": "Odoo Community Association (OCA), Solvos", "license": "AGPL-3", "category": "Maintenance", diff --git a/maintenance_project_plan/data/demo_maintenance_project_plan.xml b/maintenance_project_plan/data/demo_maintenance_project_plan.xml index 48e10dbf7..f1f66e19f 100644 --- a/maintenance_project_plan/data/demo_maintenance_project_plan.xml +++ b/maintenance_project_plan/data/demo_maintenance_project_plan.xml @@ -1,24 +1,30 @@ - - - - + + + 30 day 2 - - + - - + + 7 day 1 - diff --git a/maintenance_project_plan/i18n/maintenance_project_plan.pot b/maintenance_project_plan/i18n/maintenance_project_plan.pot index 39030c024..7da0a7393 100644 --- a/maintenance_project_plan/i18n/maintenance_project_plan.pot +++ b/maintenance_project_plan/i18n/maintenance_project_plan.pot @@ -1,12 +1,12 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * maintenance_project_plan +# * maintenance_project_plan # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: <>\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,4 +32,3 @@ msgstr "" #: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_plan__task_id msgid "Task" msgstr "" - diff --git a/maintenance_project_plan/static/description/index.html b/maintenance_project_plan/static/description/index.html index bca16a34c..3d959efa4 100644 --- a/maintenance_project_plan/static/description/index.html +++ b/maintenance_project_plan/static/description/index.html @@ -367,7 +367,7 @@

Maintenance Project Plans

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

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

+

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

This module adds project and task fields to a Maintenance Plan, which will be automatically propagated to any maintenance request generated from a Plan.

Table of contents

@@ -386,7 +386,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.

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

+

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

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

diff --git a/maintenance_project_plan/tests/test_maintenance_project_plan.py b/maintenance_project_plan/tests/test_maintenance_project_plan.py index edee6ca1a..2874401f8 100644 --- a/maintenance_project_plan/tests/test_maintenance_project_plan.py +++ b/maintenance_project_plan/tests/test_maintenance_project_plan.py @@ -21,7 +21,6 @@ def setUp(self): 0, { "maintenance_kind_id": self.maintenance_kind_weekly.id, - "period": 7, "duration": 1, "project_id": self.env.ref( "maintenance_project.project_project_1" @@ -32,6 +31,9 @@ def setUp(self): ] def test_prepare_request_from_plan(self): + self.env["maintenance.request"].search( + [("maintenance_type", "=", "preventive")] + ).unlink() # request cleanup in order to grant test execution plans = self.env["maintenance.plan"].search([("project_id", "!=", False)]) for plan in plans: requests = plan.equipment_id._create_new_request(plan) diff --git a/maintenance_project_plan/views/maintenance_equipment_views.xml b/maintenance_project_plan/views/maintenance_equipment_views.xml index c17aa45e0..b4706a342 100644 --- a/maintenance_project_plan/views/maintenance_equipment_views.xml +++ b/maintenance_project_plan/views/maintenance_equipment_views.xml @@ -1,14 +1,15 @@ - + - maintenance.equipment - {'default_project_id': project_id, 'default_task_id': preventive_default_task_id} + { + 'default_equipment_id': active_id, 'hide_equipment_id': 1, + 'default_project_id': project_id, + 'default_task_id': preventive_default_task_id} - diff --git a/maintenance_project_plan/views/maintenance_plan_views.xml b/maintenance_project_plan/views/maintenance_plan_views.xml index ec70210de..b93ba3fec 100644 --- a/maintenance_project_plan/views/maintenance_plan_views.xml +++ b/maintenance_project_plan/views/maintenance_plan_views.xml @@ -1,30 +1,31 @@ - + - - + maintenance.plan - - + + - - + maintenance.plan - - + + - From 86e460afc178dcc93b30cb9a65337cba0283dff7 Mon Sep 17 00:00:00 2001 From: David Alonso Date: Thu, 17 Dec 2020 17:52:39 +0100 Subject: [PATCH 05/12] [IMP] maintenance_project_plan: black, isort, prettier --- maintenance_project_plan/__manifest__.py | 4 ++-- maintenance_project_plan/models/maintenance_equipment.py | 2 +- maintenance_project_plan/models/maintenance_plan.py | 2 +- .../tests/test_maintenance_project_plan.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/maintenance_project_plan/__manifest__.py b/maintenance_project_plan/__manifest__.py index 0e73a15cb..712f96ae9 100644 --- a/maintenance_project_plan/__manifest__.py +++ b/maintenance_project_plan/__manifest__.py @@ -1,9 +1,9 @@ -# Copyright 2019 Solvos Consultor??a Inform??tica () +# Copyright 2019 Solvos Consultoría Informática () # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html { "name": "Maintenance Project Plans", "summary": "Adds project and task to a Maintenance Plan", - "version": "13.0.1.0.0", + "version": "14.0.1.0.0", "author": "Odoo Community Association (OCA), Solvos", "license": "AGPL-3", "category": "Maintenance", diff --git a/maintenance_project_plan/models/maintenance_equipment.py b/maintenance_project_plan/models/maintenance_equipment.py index 04b418e84..4891d0c90 100644 --- a/maintenance_project_plan/models/maintenance_equipment.py +++ b/maintenance_project_plan/models/maintenance_equipment.py @@ -1,4 +1,4 @@ -# Copyright 2019 Solvos Consultor??a Inform??tica () +# Copyright 2019 Solvos Consultoría Informática () # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from odoo import models diff --git a/maintenance_project_plan/models/maintenance_plan.py b/maintenance_project_plan/models/maintenance_plan.py index 890743601..5b855bc39 100644 --- a/maintenance_project_plan/models/maintenance_plan.py +++ b/maintenance_project_plan/models/maintenance_plan.py @@ -1,4 +1,4 @@ -# Copyright 2019 Solvos Consultor??a Inform??tica () +# Copyright 2019 Solvos Consultoría Informática () # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from odoo import api, fields, models diff --git a/maintenance_project_plan/tests/test_maintenance_project_plan.py b/maintenance_project_plan/tests/test_maintenance_project_plan.py index 2874401f8..6f74a5d69 100644 --- a/maintenance_project_plan/tests/test_maintenance_project_plan.py +++ b/maintenance_project_plan/tests/test_maintenance_project_plan.py @@ -1,4 +1,4 @@ -# Copyright 2019 Solvos Consultor??a Inform??tica () +# Copyright 2019 Solvos Consultoría Informática () # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html import odoo.tests.common as test_common From 03e5285a7990bc297fca60544692600e992bc4d3 Mon Sep 17 00:00:00 2001 From: David Alonso Date: Thu, 17 Dec 2020 18:31:39 +0100 Subject: [PATCH 06/12] [MIG] maintenance_project_plan: Migration to 14.0 --- maintenance_project_plan/README.rst | 10 ++++----- .../i18n/maintenance_project_plan.pot | 20 ++++++++++++++++- .../models/maintenance_plan.py | 22 +++++++++---------- .../static/description/index.html | 6 ++--- .../tests/test_maintenance_project_plan.py | 17 +++++--------- 5 files changed, 43 insertions(+), 32 deletions(-) diff --git a/maintenance_project_plan/README.rst b/maintenance_project_plan/README.rst index 56c0d9837..3bfc54718 100644 --- a/maintenance_project_plan/README.rst +++ b/maintenance_project_plan/README.rst @@ -14,13 +14,13 @@ Maintenance Project Plans :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmaintenance-lightgray.png?logo=github - :target: https://github.com/OCA/maintenance/tree/13.0/maintenance_project_plan + :target: https://github.com/OCA/maintenance/tree/14.0/maintenance_project_plan :alt: OCA/maintenance .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/maintenance-13-0/maintenance-13-0-maintenance_project_plan + :target: https://translation.odoo-community.org/projects/maintenance-14-0/maintenance-14-0-maintenance_project_plan :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/240/13.0 + :target: https://runbot.odoo-community.org/runbot/240/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -38,7 +38,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. @@ -68,6 +68,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/maintenance `_ project on GitHub. +This module is part of the `OCA/maintenance `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/maintenance_project_plan/i18n/maintenance_project_plan.pot b/maintenance_project_plan/i18n/maintenance_project_plan.pot index 7da0a7393..6d50ea242 100644 --- a/maintenance_project_plan/i18n/maintenance_project_plan.pot +++ b/maintenance_project_plan/i18n/maintenance_project_plan.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -13,6 +13,24 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: maintenance_project_plan +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_equipment__display_name +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_plan__display_name +msgid "Display Name" +msgstr "" + +#. module: maintenance_project_plan +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_equipment__id +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_plan__id +msgid "ID" +msgstr "" + +#. module: maintenance_project_plan +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_equipment____last_update +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_plan____last_update +msgid "Last Modified on" +msgstr "" + #. module: maintenance_project_plan #: model:ir.model,name:maintenance_project_plan.model_maintenance_equipment msgid "Maintenance Equipment" diff --git a/maintenance_project_plan/models/maintenance_plan.py b/maintenance_project_plan/models/maintenance_plan.py index 5b855bc39..dd1f2a971 100644 --- a/maintenance_project_plan/models/maintenance_plan.py +++ b/maintenance_project_plan/models/maintenance_plan.py @@ -1,4 +1,4 @@ -# Copyright 2019 Solvos Consultoría Informática () +# Copyright 2020 Solvos Consultoría Informática () # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html from odoo import api, fields, models @@ -8,14 +8,14 @@ class MaintenancePlan(models.Model): _inherit = "maintenance.plan" project_id = fields.Many2one(comodel_name="project.project", ondelete="restrict") - task_id = fields.Many2one(comodel_name="project.task") + task_id = fields.Many2one( + comodel_name="project.task", + compute="_compute_task_id", + store="True", + readonly=False, + ) - @api.onchange("project_id") - def onchange_project_id(self): - if self.project_id: - if self.project_id != self.task_id.project_id: - self.task_id = False - return {"domain": {"task_id": [("project_id", "=", self.project_id.id)]}} - else: - self.task_id = False - return {"domain": {"task_id": [("project_id", "=", False)]}} + @api.depends("project_id") + def _compute_task_id(self): + for plan in self: + plan.task_id = False diff --git a/maintenance_project_plan/static/description/index.html b/maintenance_project_plan/static/description/index.html index 3d959efa4..86004286b 100644 --- a/maintenance_project_plan/static/description/index.html +++ b/maintenance_project_plan/static/description/index.html @@ -367,7 +367,7 @@

Maintenance Project Plans

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

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

+

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

This module adds project and task fields to a Maintenance Plan, which will be automatically propagated to any maintenance request generated from a Plan.

Table of contents

@@ -386,7 +386,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.

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

+

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

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

diff --git a/maintenance_project_plan/tests/test_maintenance_project_plan.py b/maintenance_project_plan/tests/test_maintenance_project_plan.py index 6f74a5d69..864854d4f 100644 --- a/maintenance_project_plan/tests/test_maintenance_project_plan.py +++ b/maintenance_project_plan/tests/test_maintenance_project_plan.py @@ -1,4 +1,4 @@ -# Copyright 2019 Solvos Consultoría Informática () +# Copyright 2020 Solvos Consultoría Informática () # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html import odoo.tests.common as test_common @@ -10,8 +10,8 @@ def setUp(self): self.cron = self.env.ref("maintenance.maintenance_requests_cron") - self.maintenance_kind_weekly = self.env.ref( - "maintenance_plan.maintenance_kind_weekly" + self.maintenance_kind_test = self.env["maintenance.kind"].create( + {"name": "Test kind"} ) self.monitor1 = self.env.ref("maintenance.equipment_monitor1") @@ -20,7 +20,7 @@ def setUp(self): 0, 0, { - "maintenance_kind_id": self.maintenance_kind_weekly.id, + "maintenance_kind_id": self.maintenance_kind_test.id, "duration": 1, "project_id": self.env.ref( "maintenance_project.project_project_1" @@ -51,7 +51,7 @@ def test_plan_onchange_project(self): "equipment_id": self.env.ref( "maintenance_plan.maintenance_plan_monthly_monitor4" ).id, - "maintenance_kind_id": self.maintenance_kind_weekly.id, + "maintenance_kind_id": self.maintenance_kind_test.id, "duration": 1, "project_id": self.env.ref("maintenance_project.project_project_1").id, "task_id": self.env.ref("maintenance_project.project_task_11").id, @@ -64,14 +64,7 @@ def test_plan_onchange_project(self): plan1.task_id, self.env.ref("maintenance_project.project_task_11") ) plan1.project_id = False - ctx1 = plan1.onchange_project_id() self.assertFalse(plan1.task_id) - self.assertFalse(ctx1["domain"]["task_id"][0][2]) plan1.project_id = self.env.ref("maintenance_project.project_project_1") - ctx2 = plan1.onchange_project_id() self.assertFalse(plan1.task_id) - self.assertEqual( - ctx2["domain"]["task_id"][0][2], - self.env.ref("maintenance_project.project_project_1").id, - ) From ff4f9a205da7d83805b69760586e8ba6541e9719 Mon Sep 17 00:00:00 2001 From: mymage Date: Wed, 28 Jul 2021 09:03:29 +0000 Subject: [PATCH 07/12] Added translation using Weblate (Italian) --- maintenance_project_plan/README.rst | 15 +++-- maintenance_project_plan/i18n/es.po | 18 ++++++ maintenance_project_plan/i18n/it.po | 55 +++++++++++++++++++ .../static/description/index.html | 34 ++++++------ 4 files changed, 100 insertions(+), 22 deletions(-) create mode 100644 maintenance_project_plan/i18n/it.po diff --git a/maintenance_project_plan/README.rst b/maintenance_project_plan/README.rst index 3bfc54718..ca97c723c 100644 --- a/maintenance_project_plan/README.rst +++ b/maintenance_project_plan/README.rst @@ -2,10 +2,13 @@ Maintenance Project Plans ========================= -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:a67a3138349e359b726e1e9e6965b49ffb6e4c914fcd6bec67883c0e6312a681 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Maintenance Project Plans .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/maintenance-14-0/maintenance-14-0-maintenance_project_plan :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/240/14.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/maintenance&target_branch=14.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module adds project and task fields to a Maintenance Plan, which will be automatically propagated to any maintenance request generated from a Plan. @@ -37,7 +40,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 +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. diff --git a/maintenance_project_plan/i18n/es.po b/maintenance_project_plan/i18n/es.po index 30d3cf824..e1ee48a7c 100644 --- a/maintenance_project_plan/i18n/es.po +++ b/maintenance_project_plan/i18n/es.po @@ -16,6 +16,24 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: maintenance_project_plan +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_equipment__display_name +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_plan__display_name +msgid "Display Name" +msgstr "" + +#. module: maintenance_project_plan +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_equipment__id +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_plan__id +msgid "ID" +msgstr "" + +#. module: maintenance_project_plan +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_equipment____last_update +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_plan____last_update +msgid "Last Modified on" +msgstr "" + #. module: maintenance_project_plan #: model:ir.model,name:maintenance_project_plan.model_maintenance_equipment msgid "Maintenance Equipment" diff --git a/maintenance_project_plan/i18n/it.po b/maintenance_project_plan/i18n/it.po new file mode 100644 index 000000000..ca6c401ea --- /dev/null +++ b/maintenance_project_plan/i18n/it.po @@ -0,0 +1,55 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * maintenance_project_plan +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2021-07-28 11:49+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 4.3.2\n" + +#. module: maintenance_project_plan +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_equipment__display_name +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_plan__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: maintenance_project_plan +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_equipment__id +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_plan__id +msgid "ID" +msgstr "ID" + +#. module: maintenance_project_plan +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_equipment____last_update +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_plan____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: maintenance_project_plan +#: model:ir.model,name:maintenance_project_plan.model_maintenance_equipment +msgid "Maintenance Equipment" +msgstr "Attrezzatura manutenzione" + +#. module: maintenance_project_plan +#: model:ir.model,name:maintenance_project_plan.model_maintenance_plan +msgid "Maintenance Plan" +msgstr "Piano manutenzione" + +#. module: maintenance_project_plan +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_plan__project_id +msgid "Project" +msgstr "Progetto" + +#. module: maintenance_project_plan +#: model:ir.model.fields,field_description:maintenance_project_plan.field_maintenance_plan__task_id +msgid "Task" +msgstr "Lavoro" diff --git a/maintenance_project_plan/static/description/index.html b/maintenance_project_plan/static/description/index.html index 86004286b..be1c99e3c 100644 --- a/maintenance_project_plan/static/description/index.html +++ b/maintenance_project_plan/static/description/index.html @@ -1,20 +1,20 @@ - + - + Maintenance Project Plans