From 7798581c0d94e9b354efcf53b4cd29ff9ca91af1 Mon Sep 17 00:00:00 2001 From: Nikul Chaudhary Date: Fri, 20 Dec 2019 18:38:22 +0530 Subject: [PATCH 1/6] [RFC] fieldservice_operating_unit v12 [UPD] Update fieldservice_operating_unit.pot [UPD] README.rst --- fieldservice_operating_unit/README.rst | 96 ++++ fieldservice_operating_unit/__init__.py | 2 + fieldservice_operating_unit/__manifest__.py | 28 ++ .../i18n/fieldservice_operating_unit.pot | 25 + fieldservice_operating_unit/i18n/pt.po | 25 + .../models/__init__.py | 2 + .../models/fsm_order.py | 15 + .../readme/CONTRIBUTORS.rst | 2 + .../readme/CREDITS.rst | 2 + .../readme/DESCRIPTION.rst | 1 + fieldservice_operating_unit/readme/USAGE.rst | 3 + .../security/fieldservice_security.xml | 19 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 440 ++++++++++++++++++ fieldservice_operating_unit/tests/__init__.py | 2 + .../tests/test_fieldservice_operating_unit.py | 73 +++ .../views/fsm_order.xml | 18 + 17 files changed, 753 insertions(+) create mode 100644 fieldservice_operating_unit/README.rst create mode 100644 fieldservice_operating_unit/__init__.py create mode 100644 fieldservice_operating_unit/__manifest__.py create mode 100644 fieldservice_operating_unit/i18n/fieldservice_operating_unit.pot create mode 100644 fieldservice_operating_unit/i18n/pt.po create mode 100644 fieldservice_operating_unit/models/__init__.py create mode 100644 fieldservice_operating_unit/models/fsm_order.py create mode 100644 fieldservice_operating_unit/readme/CONTRIBUTORS.rst create mode 100644 fieldservice_operating_unit/readme/CREDITS.rst create mode 100644 fieldservice_operating_unit/readme/DESCRIPTION.rst create mode 100644 fieldservice_operating_unit/readme/USAGE.rst create mode 100644 fieldservice_operating_unit/security/fieldservice_security.xml create mode 100644 fieldservice_operating_unit/static/description/icon.png create mode 100644 fieldservice_operating_unit/static/description/index.html create mode 100644 fieldservice_operating_unit/tests/__init__.py create mode 100644 fieldservice_operating_unit/tests/test_fieldservice_operating_unit.py create mode 100644 fieldservice_operating_unit/views/fsm_order.xml diff --git a/fieldservice_operating_unit/README.rst b/fieldservice_operating_unit/README.rst new file mode 100644 index 0000000000..bb0d6da7da --- /dev/null +++ b/fieldservice_operating_unit/README.rst @@ -0,0 +1,96 @@ +================================== +Field Service with Operating Units +================================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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%2Foperating--unit-lightgray.png?logo=github + :target: https://github.com/OCA/operating-unit/tree/12.0/fieldservice_operating_unit + :alt: OCA/operating-unit +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/operating-unit-12-0/operating-unit-12-0-fieldservice_operating_unit + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/213/12.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module adds operating unit information to Field Service orders. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +* Go to Field Service +* You only see the FSM orders of your operating units +* Create an order. It is assigned to your default operating unit. + +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 +~~~~~~~ + +* Open Source Integrators +* Serpent Consulting Services Pvt. Ltd. + +Contributors +~~~~~~~~~~~~ + +* Nikul Chaudhary +* Maxime Chambreuil + +Other credits +~~~~~~~~~~~~~ + +* Open Source Integrators +* Serpent Consulting Services Pvt. Ltd. + +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-max3903| image:: https://github.com/max3903.png?size=40px + :target: https://github.com/max3903 + :alt: max3903 + +Current `maintainer `__: + +|maintainer-max3903| + +This module is part of the `OCA/operating-unit `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/fieldservice_operating_unit/__init__.py b/fieldservice_operating_unit/__init__.py new file mode 100644 index 0000000000..c32fd62b78 --- /dev/null +++ b/fieldservice_operating_unit/__init__.py @@ -0,0 +1,2 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from . import models diff --git a/fieldservice_operating_unit/__manifest__.py b/fieldservice_operating_unit/__manifest__.py new file mode 100644 index 0000000000..a1d775c722 --- /dev/null +++ b/fieldservice_operating_unit/__manifest__.py @@ -0,0 +1,28 @@ +# Copyright (C) 2019 Open Source Integrators +# Copyright (C) 2019 Serpent Consulting Services +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": 'Field Service with Operating Units', + "summary": """ + This module adds operating unit information to Field Service orders.""", + "version": "12.0.1.0.0", + "author": "Open Source Integrators, " + "Serpent Consulting Services Pvt. Ltd.," + "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/operating-unit", + "category": "Field Service", + "depends": [ + 'operating_unit', + 'fieldservice' + ], + "license": "AGPL-3", + "data": [ + 'security/fieldservice_security.xml', + 'views/fsm_order.xml', + ], + 'installable': True, + 'development_status': 'Beta', + 'maintainers': [ + 'max3903', + ], +} diff --git a/fieldservice_operating_unit/i18n/fieldservice_operating_unit.pot b/fieldservice_operating_unit/i18n/fieldservice_operating_unit.pot new file mode 100644 index 0000000000..250f19801e --- /dev/null +++ b/fieldservice_operating_unit/i18n/fieldservice_operating_unit.pot @@ -0,0 +1,25 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fieldservice_operating_unit +# +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: fieldservice_operating_unit +#: model:ir.model,name:fieldservice_operating_unit.model_fsm_order +msgid "Field Service Order" +msgstr "" + +#. module: fieldservice_operating_unit +#: model:ir.model.fields,field_description:fieldservice_operating_unit.field_fsm_order__operating_unit_id +msgid "Operating Unit" +msgstr "" + diff --git a/fieldservice_operating_unit/i18n/pt.po b/fieldservice_operating_unit/i18n/pt.po new file mode 100644 index 0000000000..780c96975a --- /dev/null +++ b/fieldservice_operating_unit/i18n/pt.po @@ -0,0 +1,25 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fieldservice_operating_unit +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: pt\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: fieldservice_operating_unit +#: model:ir.model,name:fieldservice_operating_unit.model_fsm_order +msgid "Field Service Order" +msgstr "" + +#. module: fieldservice_operating_unit +#: model:ir.model.fields,field_description:fieldservice_operating_unit.field_fsm_order__operating_unit_id +msgid "Operating Unit" +msgstr "" diff --git a/fieldservice_operating_unit/models/__init__.py b/fieldservice_operating_unit/models/__init__.py new file mode 100644 index 0000000000..9b363ee05a --- /dev/null +++ b/fieldservice_operating_unit/models/__init__.py @@ -0,0 +1,2 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from . import fsm_order diff --git a/fieldservice_operating_unit/models/fsm_order.py b/fieldservice_operating_unit/models/fsm_order.py new file mode 100644 index 0000000000..e7990f85aa --- /dev/null +++ b/fieldservice_operating_unit/models/fsm_order.py @@ -0,0 +1,15 @@ +# Copyright (C) 2019 Open Source Integrators +# Copyright (C) 2019 Serpent Consulting Services +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo import fields, models + + +class FSMOrder(models.Model): + _inherit = 'fsm.order' + + operating_unit_id = fields.Many2one( + comodel_name='operating.unit', + string='Operating Unit', + default=lambda self: self.env['res.users'].operating_unit_default_get( + self._uid) + ) diff --git a/fieldservice_operating_unit/readme/CONTRIBUTORS.rst b/fieldservice_operating_unit/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..e61704632a --- /dev/null +++ b/fieldservice_operating_unit/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* Nikul Chaudhary +* Maxime Chambreuil diff --git a/fieldservice_operating_unit/readme/CREDITS.rst b/fieldservice_operating_unit/readme/CREDITS.rst new file mode 100644 index 0000000000..bfc05668a8 --- /dev/null +++ b/fieldservice_operating_unit/readme/CREDITS.rst @@ -0,0 +1,2 @@ +* Open Source Integrators +* Serpent Consulting Services Pvt. Ltd. diff --git a/fieldservice_operating_unit/readme/DESCRIPTION.rst b/fieldservice_operating_unit/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..6c6723b0a0 --- /dev/null +++ b/fieldservice_operating_unit/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module adds operating unit information to Field Service orders. diff --git a/fieldservice_operating_unit/readme/USAGE.rst b/fieldservice_operating_unit/readme/USAGE.rst new file mode 100644 index 0000000000..a572667e9a --- /dev/null +++ b/fieldservice_operating_unit/readme/USAGE.rst @@ -0,0 +1,3 @@ +* Go to Field Service +* You only see the FSM orders of your operating units +* Create an order. It is assigned to your default operating unit. diff --git a/fieldservice_operating_unit/security/fieldservice_security.xml b/fieldservice_operating_unit/security/fieldservice_security.xml new file mode 100644 index 0000000000..e95f8097e1 --- /dev/null +++ b/fieldservice_operating_unit/security/fieldservice_security.xml @@ -0,0 +1,19 @@ + + + + + + + ['|', ('operating_unit_id','=',False), ('operating_unit_id','in',user.operating_unit_ids.ids)] + + Field Service Operating Unit + + + + + + + + diff --git a/fieldservice_operating_unit/static/description/icon.png b/fieldservice_operating_unit/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/fieldservice_operating_unit/static/description/index.html b/fieldservice_operating_unit/static/description/index.html new file mode 100644 index 0000000000..589c04b219 --- /dev/null +++ b/fieldservice_operating_unit/static/description/index.html @@ -0,0 +1,440 @@ + + + + + + +Field Service with Operating Units + + + +
+

Field Service with Operating Units

+ + +

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

+

This module adds operating unit information to Field Service orders.

+

Table of contents

+ +
+

Usage

+
    +
  • Go to Field Service
  • +
  • You only see the FSM orders of your operating units
  • +
  • Create an order. It is assigned to your default operating unit.
  • +
+
+
+

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

+
    +
  • Open Source Integrators
  • +
  • Serpent Consulting Services Pvt. Ltd.
  • +
+
+ +
+

Other credits

+
    +
  • Open Source Integrators
  • +
  • Serpent Consulting Services Pvt. Ltd.
  • +
+
+
+

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.

+

Current maintainer:

+

max3903

+

This module is part of the OCA/operating-unit project on GitHub.

+

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

+
+
+
+ + diff --git a/fieldservice_operating_unit/tests/__init__.py b/fieldservice_operating_unit/tests/__init__.py new file mode 100644 index 0000000000..149f816014 --- /dev/null +++ b/fieldservice_operating_unit/tests/__init__.py @@ -0,0 +1,2 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from . import test_fieldservice_operating_unit diff --git a/fieldservice_operating_unit/tests/test_fieldservice_operating_unit.py b/fieldservice_operating_unit/tests/test_fieldservice_operating_unit.py new file mode 100644 index 0000000000..1a76f4a79d --- /dev/null +++ b/fieldservice_operating_unit/tests/test_fieldservice_operating_unit.py @@ -0,0 +1,73 @@ +# Copyright (C) 2019 Open Source Integrators +# Copyright (C) 2019 Serpent Consulting Services +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo.tests import common +from datetime import timedelta +from odoo import fields + + +class TestFSMOrder(common.TransactionCase): + + def setUp(self): + super(TestFSMOrder, self).setUp() + self.fsm_order_obj = self.env['fsm.order'] + self.res_users_model = self.env['res.users'] + self.test_location = self.env.ref('fieldservice.test_location') + + # Groups + self.grp_fieldservice_mngr =\ + self.env.ref('fieldservice.group_fsm_manager') + self.grp_user = self.env.ref('base.group_user') + # Company + self.company = self.env.ref('base.main_company') + # Main Operating Unit + self.main_OU = self.env.ref('operating_unit.main_operating_unit') + # B2C Operating Unit + self.b2c_OU = self.env.ref('operating_unit.b2c_operating_unit') + # Create User 1 with Main OU + self.user1 = self._create_user('user_1', [self.grp_fieldservice_mngr, + self.grp_user], + self.company, [self.main_OU]) + # Create User 2 with B2C OU + self.user2 = self._create_user('user_2', [self.grp_fieldservice_mngr, + self.grp_user], + self.company, [self.b2c_OU]) + + self.fsm_order1 = self._create_fsm_order(self.user1, self.main_OU) + self.fsm_order2 = self._create_fsm_order(self.user2, self.b2c_OU) + + def _create_user(self, login, groups, company, operating_units): + """ Create a user. """ + group_ids = [group.id for group in groups] + user = self.res_users_model.create({ + 'name': login, + 'login': login, + 'password': 'demo', + 'email': 'test@yourcompany.com', + 'company_id': company.id, + 'company_ids': [(4, company.id)], + 'operating_unit_ids': [(4, ou.id) for ou in operating_units], + 'groups_id': [(6, 0, group_ids)] + }) + return user + + def _create_fsm_order(self, uid, operating_unit): + fsm_order = self.fsm_order_obj.sudo(uid).create({ + 'location_id': self.test_location.id, + 'operating_unit_id': operating_unit.id, + 'date_start': fields.Datetime.today(), + 'date_end': fields.Datetime.today() + timedelta(hours=100), + 'request_early': fields.Datetime.today() + }) + return fsm_order + + def test_fsm_order(self): + # User 2 is only assigned to B2C Operating Unit, and cannot + # access FSM Orders for Main Operating Unit. + fsm_orders = self.fsm_order_obj.sudo(self.user2.id).search( + [('id', '=', self.fsm_order2.id), + ('operating_unit_id', '=', self.main_OU.id)]) + self.assertEqual(fsm_orders.ids, [], 'User 2 should not have access to ' + '%s' % self.main_OU.name) + + self.assertEqual(self.fsm_order1.operating_unit_id.id, self.main_OU.id) diff --git a/fieldservice_operating_unit/views/fsm_order.xml b/fieldservice_operating_unit/views/fsm_order.xml new file mode 100644 index 0000000000..00906d2993 --- /dev/null +++ b/fieldservice_operating_unit/views/fsm_order.xml @@ -0,0 +1,18 @@ + + + + + + fsm.order.form + fsm.order + + + + + + + + + From 6906e4f5923b3a2cae755f413710bbec7e8d5551 Mon Sep 17 00:00:00 2001 From: Vimal Patel Date: Tue, 29 Jun 2021 16:41:25 +0530 Subject: [PATCH 2/6] [14.0][MIG]fieldservice_operating_unit: migrated to v14 [MIG] pre-commit --- fieldservice_operating_unit/README.rst | 10 +- fieldservice_operating_unit/__init__.py | 4 +- fieldservice_operating_unit/__manifest__.py | 29 +++--- .../i18n/fieldservice_operating_unit.pot | 20 +++- fieldservice_operating_unit/i18n/pt.po | 17 +++- .../models/fsm_order.py | 13 ++- .../security/fieldservice_security.xml | 20 ++-- .../static/description/index.html | 6 +- fieldservice_operating_unit/tests/__init__.py | 5 +- .../tests/test_fieldservice_operating_unit.py | 99 +++++++++++-------- .../views/fsm_order.xml | 9 +- 11 files changed, 139 insertions(+), 93 deletions(-) diff --git a/fieldservice_operating_unit/README.rst b/fieldservice_operating_unit/README.rst index bb0d6da7da..118f054d34 100644 --- a/fieldservice_operating_unit/README.rst +++ b/fieldservice_operating_unit/README.rst @@ -14,13 +14,13 @@ Field Service with Operating Units :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Foperating--unit-lightgray.png?logo=github - :target: https://github.com/OCA/operating-unit/tree/12.0/fieldservice_operating_unit + :target: https://github.com/OCA/operating-unit/tree/14.0/fieldservice_operating_unit :alt: OCA/operating-unit .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/operating-unit-12-0/operating-unit-12-0-fieldservice_operating_unit + :target: https://translation.odoo-community.org/projects/operating-unit-14-0/operating-unit-14-0-fieldservice_operating_unit :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/213/12.0 + :target: https://runbot.odoo-community.org/runbot/213/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -45,7 +45,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. @@ -91,6 +91,6 @@ Current `maintainer `__: |maintainer-max3903| -This module is part of the `OCA/operating-unit `_ project on GitHub. +This module is part of the `OCA/operating-unit `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/fieldservice_operating_unit/__init__.py b/fieldservice_operating_unit/__init__.py index c32fd62b78..0bf91417fc 100644 --- a/fieldservice_operating_unit/__init__.py +++ b/fieldservice_operating_unit/__init__.py @@ -1,2 +1,4 @@ -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +# Copyright (C) 2021 Open Source Integrators +# Copyright (C) 2021 Serpent Consulting Services +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from . import models diff --git a/fieldservice_operating_unit/__manifest__.py b/fieldservice_operating_unit/__manifest__.py index a1d775c722..5ae3118eb3 100644 --- a/fieldservice_operating_unit/__manifest__.py +++ b/fieldservice_operating_unit/__manifest__.py @@ -1,28 +1,25 @@ -# Copyright (C) 2019 Open Source Integrators -# Copyright (C) 2019 Serpent Consulting Services +# Copyright (C) 2021 Open Source Integrators +# Copyright (C) 2021 Serpent Consulting Services # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { - "name": 'Field Service with Operating Units', + "name": "Field Service with Operating Units", "summary": """ This module adds operating unit information to Field Service orders.""", - "version": "12.0.1.0.0", + "version": "14.0.1.0.0", "author": "Open Source Integrators, " - "Serpent Consulting Services Pvt. Ltd.," - "Odoo Community Association (OCA)", + "Serpent Consulting Services Pvt. Ltd.," + "Odoo Community Association (OCA)", "website": "https://github.com/OCA/operating-unit", "category": "Field Service", - "depends": [ - 'operating_unit', - 'fieldservice' - ], + "depends": ["operating_unit", "fieldservice"], "license": "AGPL-3", "data": [ - 'security/fieldservice_security.xml', - 'views/fsm_order.xml', + "security/fieldservice_security.xml", + "views/fsm_order.xml", ], - 'installable': True, - 'development_status': 'Beta', - 'maintainers': [ - 'max3903', + "installable": True, + "development_status": "Beta", + "maintainers": [ + "max3903", ], } diff --git a/fieldservice_operating_unit/i18n/fieldservice_operating_unit.pot b/fieldservice_operating_unit/i18n/fieldservice_operating_unit.pot index 250f19801e..85c51ca091 100644 --- a/fieldservice_operating_unit/i18n/fieldservice_operating_unit.pot +++ b/fieldservice_operating_unit/i18n/fieldservice_operating_unit.pot @@ -1,12 +1,12 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * fieldservice_operating_unit +# * fieldservice_operating_unit # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 12.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: <>\n" +"Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,8 +18,22 @@ msgstr "" msgid "Field Service Order" msgstr "" +#. module: fieldservice_operating_unit +#: model:ir.model.fields,field_description:fieldservice_operating_unit.field_fsm_order__id +msgid "ID" +msgstr "" + +#. module: fieldservice_operating_unit +#: model:ir.model.fields,field_description:fieldservice_operating_unit.field_fsm_order____last_update +msgid "Last Modified on" +msgstr "" + #. module: fieldservice_operating_unit #: model:ir.model.fields,field_description:fieldservice_operating_unit.field_fsm_order__operating_unit_id msgid "Operating Unit" msgstr "" +#. module: fieldservice_operating_unit +#: model:ir.model.fields,field_description:fieldservice_operating_unit.field_fsm_order__display_name +msgid "Order" +msgstr "" diff --git a/fieldservice_operating_unit/i18n/pt.po b/fieldservice_operating_unit/i18n/pt.po index 780c96975a..ac80be9c6b 100644 --- a/fieldservice_operating_unit/i18n/pt.po +++ b/fieldservice_operating_unit/i18n/pt.po @@ -1,6 +1,6 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * fieldservice_operating_unit +# * fieldservice_operating_unit # msgid "" msgstr "" @@ -19,7 +19,22 @@ msgstr "" msgid "Field Service Order" msgstr "" +#. module: fieldservice_operating_unit +#: model:ir.model.fields,field_description:fieldservice_operating_unit.field_fsm_order__id +msgid "ID" +msgstr "" + +#. module: fieldservice_operating_unit +#: model:ir.model.fields,field_description:fieldservice_operating_unit.field_fsm_order____last_update +msgid "Last Modified on" +msgstr "" + #. module: fieldservice_operating_unit #: model:ir.model.fields,field_description:fieldservice_operating_unit.field_fsm_order__operating_unit_id msgid "Operating Unit" msgstr "" + +#. module: fieldservice_operating_unit +#: model:ir.model.fields,field_description:fieldservice_operating_unit.field_fsm_order__display_name +msgid "Order" +msgstr "" diff --git a/fieldservice_operating_unit/models/fsm_order.py b/fieldservice_operating_unit/models/fsm_order.py index e7990f85aa..5dccb29139 100644 --- a/fieldservice_operating_unit/models/fsm_order.py +++ b/fieldservice_operating_unit/models/fsm_order.py @@ -1,15 +1,14 @@ -# Copyright (C) 2019 Open Source Integrators -# Copyright (C) 2019 Serpent Consulting Services +# Copyright (C) 2021 Open Source Integrators +# Copyright (C) 2021 Serpent Consulting Services # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from odoo import fields, models class FSMOrder(models.Model): - _inherit = 'fsm.order' + _inherit = "fsm.order" operating_unit_id = fields.Many2one( - comodel_name='operating.unit', - string='Operating Unit', - default=lambda self: self.env['res.users'].operating_unit_default_get( - self._uid) + comodel_name="operating.unit", + string="Operating Unit", + default=lambda self: self.env.user.default_operating_unit_id, ) diff --git a/fieldservice_operating_unit/security/fieldservice_security.xml b/fieldservice_operating_unit/security/fieldservice_security.xml index e95f8097e1..9b1d07a0fe 100644 --- a/fieldservice_operating_unit/security/fieldservice_security.xml +++ b/fieldservice_operating_unit/security/fieldservice_security.xml @@ -1,19 +1,21 @@ - - - ['|', ('operating_unit_id','=',False), ('operating_unit_id','in',user.operating_unit_ids.ids)] + + ['|', ('operating_unit_id','=',False), ('operating_unit_id','in',user.operating_unit_ids.ids)] Field Service Operating Unit - - - - - + + + + + diff --git a/fieldservice_operating_unit/static/description/index.html b/fieldservice_operating_unit/static/description/index.html index 589c04b219..8903dcc493 100644 --- a/fieldservice_operating_unit/static/description/index.html +++ b/fieldservice_operating_unit/static/description/index.html @@ -367,7 +367,7 @@

Field Service with Operating Units

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

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

+

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

This module adds operating unit information to Field Service orders.

Table of contents

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

@@ -431,7 +431,7 @@

Maintainers

promote its widespread use.

Current maintainer:

max3903

-

This module is part of the OCA/operating-unit project on GitHub.

+

This module is part of the OCA/operating-unit project on GitHub.

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

diff --git a/fieldservice_operating_unit/tests/__init__.py b/fieldservice_operating_unit/tests/__init__.py index 149f816014..98ffc0b3de 100644 --- a/fieldservice_operating_unit/tests/__init__.py +++ b/fieldservice_operating_unit/tests/__init__.py @@ -1,2 +1,5 @@ -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +# Copyright (C) 2021 Open Source Integrators +# Copyright (C) 2021 Serpent Consulting Services +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + from . import test_fieldservice_operating_unit diff --git a/fieldservice_operating_unit/tests/test_fieldservice_operating_unit.py b/fieldservice_operating_unit/tests/test_fieldservice_operating_unit.py index 1a76f4a79d..1f1a0267d2 100644 --- a/fieldservice_operating_unit/tests/test_fieldservice_operating_unit.py +++ b/fieldservice_operating_unit/tests/test_fieldservice_operating_unit.py @@ -1,73 +1,88 @@ -# Copyright (C) 2019 Open Source Integrators -# Copyright (C) 2019 Serpent Consulting Services +# Copyright (C) 2021 Open Source Integrators +# Copyright (C) 2021 Serpent Consulting Services # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -from odoo.tests import common from datetime import timedelta + from odoo import fields +from odoo.tests import common class TestFSMOrder(common.TransactionCase): - def setUp(self): super(TestFSMOrder, self).setUp() - self.fsm_order_obj = self.env['fsm.order'] - self.res_users_model = self.env['res.users'] - self.test_location = self.env.ref('fieldservice.test_location') + self.fsm_order_obj = self.env["fsm.order"] + self.res_users_model = self.env["res.users"] + self.test_location = self.env.ref("fieldservice.test_location") # Groups - self.grp_fieldservice_mngr =\ - self.env.ref('fieldservice.group_fsm_manager') - self.grp_user = self.env.ref('base.group_user') + self.grp_fieldservice_mngr = self.env.ref("fieldservice.group_fsm_manager") + self.grp_user = self.env.ref("base.group_user") # Company - self.company = self.env.ref('base.main_company') + self.company = self.env.ref("base.main_company") # Main Operating Unit - self.main_OU = self.env.ref('operating_unit.main_operating_unit') + self.main_OU = self.env.ref("operating_unit.main_operating_unit") # B2C Operating Unit - self.b2c_OU = self.env.ref('operating_unit.b2c_operating_unit') + self.b2c_OU = self.env.ref("operating_unit.b2c_operating_unit") # Create User 1 with Main OU - self.user1 = self._create_user('user_1', [self.grp_fieldservice_mngr, - self.grp_user], - self.company, [self.main_OU]) + self.user1 = self._create_user( + "user_1", + [self.grp_fieldservice_mngr, self.grp_user], + self.company, + [self.main_OU], + ) # Create User 2 with B2C OU - self.user2 = self._create_user('user_2', [self.grp_fieldservice_mngr, - self.grp_user], - self.company, [self.b2c_OU]) + self.user2 = self._create_user( + "user_2", + [self.grp_fieldservice_mngr, self.grp_user], + self.company, + [self.b2c_OU], + ) self.fsm_order1 = self._create_fsm_order(self.user1, self.main_OU) self.fsm_order2 = self._create_fsm_order(self.user2, self.b2c_OU) def _create_user(self, login, groups, company, operating_units): - """ Create a user. """ + """Create a user.""" group_ids = [group.id for group in groups] - user = self.res_users_model.create({ - 'name': login, - 'login': login, - 'password': 'demo', - 'email': 'test@yourcompany.com', - 'company_id': company.id, - 'company_ids': [(4, company.id)], - 'operating_unit_ids': [(4, ou.id) for ou in operating_units], - 'groups_id': [(6, 0, group_ids)] - }) + user = self.res_users_model.create( + { + "name": login, + "login": login, + "password": "demo", + "email": "test@yourcompany.com", + "company_id": company.id, + "company_ids": [(4, company.id)], + "operating_unit_ids": [(4, ou.id) for ou in operating_units], + "groups_id": [(6, 0, group_ids)], + } + ) return user def _create_fsm_order(self, uid, operating_unit): - fsm_order = self.fsm_order_obj.sudo(uid).create({ - 'location_id': self.test_location.id, - 'operating_unit_id': operating_unit.id, - 'date_start': fields.Datetime.today(), - 'date_end': fields.Datetime.today() + timedelta(hours=100), - 'request_early': fields.Datetime.today() - }) + fsm_order = self.fsm_order_obj.with_user(uid).create( + { + "location_id": self.test_location.id, + "operating_unit_id": operating_unit.id, + "date_start": fields.Datetime.today(), + "date_end": fields.Datetime.today() + timedelta(hours=100), + "request_early": fields.Datetime.today(), + } + ) return fsm_order def test_fsm_order(self): # User 2 is only assigned to B2C Operating Unit, and cannot # access FSM Orders for Main Operating Unit. - fsm_orders = self.fsm_order_obj.sudo(self.user2.id).search( - [('id', '=', self.fsm_order2.id), - ('operating_unit_id', '=', self.main_OU.id)]) - self.assertEqual(fsm_orders.ids, [], 'User 2 should not have access to ' - '%s' % self.main_OU.name) + fsm_orders = self.fsm_order_obj.with_user(self.user2).search( + [ + ("id", "=", self.fsm_order2.id), + ("operating_unit_id", "=", self.main_OU.id), + ] + ) + self.assertEqual( + fsm_orders.ids, + [], + "User 2 should not have access to " "%s" % self.main_OU.name, + ) self.assertEqual(self.fsm_order1.operating_unit_id.id, self.main_OU.id) diff --git a/fieldservice_operating_unit/views/fsm_order.xml b/fieldservice_operating_unit/views/fsm_order.xml index 00906d2993..51da56080a 100644 --- a/fieldservice_operating_unit/views/fsm_order.xml +++ b/fieldservice_operating_unit/views/fsm_order.xml @@ -1,16 +1,15 @@ - - fsm.order.form fsm.order - + - + From 300628ddd8a50233ae6c3b298199628a4f6e66fc Mon Sep 17 00:00:00 2001 From: Khalid Hazam Date: Tue, 28 Jun 2022 08:27:43 +0000 Subject: [PATCH 3/6] Added translation using Weblate (French) --- fieldservice_operating_unit/README.rst | 15 ++++--- fieldservice_operating_unit/i18n/fr.po | 43 ++++++++++++++++++ .../static/description/index.html | 44 ++++++++++--------- 3 files changed, 75 insertions(+), 27 deletions(-) create mode 100644 fieldservice_operating_unit/i18n/fr.po diff --git a/fieldservice_operating_unit/README.rst b/fieldservice_operating_unit/README.rst index 118f054d34..acfb00955b 100644 --- a/fieldservice_operating_unit/README.rst +++ b/fieldservice_operating_unit/README.rst @@ -2,10 +2,13 @@ Field Service with Operating Units ================================== -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:3c9da5ccbc80d8789bb8f449c9145d75861c0d39a3f6222d05aec95e35b3c379 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Field Service with Operating Units .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/operating-unit-14-0/operating-unit-14-0-fieldservice_operating_unit :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/213/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/operating-unit&target_branch=14.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module adds operating unit information to Field Service orders. @@ -44,7 +47,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/fieldservice_operating_unit/i18n/fr.po b/fieldservice_operating_unit/i18n/fr.po new file mode 100644 index 0000000000..4dae2d6599 --- /dev/null +++ b/fieldservice_operating_unit/i18n/fr.po @@ -0,0 +1,43 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * fieldservice_operating_unit +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2022-06-28 11:05+0000\n" +"Last-Translator: Khalid Hazam \n" +"Language-Team: none\n" +"Language: fr\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: fieldservice_operating_unit +#: model:ir.model,name:fieldservice_operating_unit.model_fsm_order +#, fuzzy +msgid "Field Service Order" +msgstr "Ordre de mission" + +#. module: fieldservice_operating_unit +#: model:ir.model.fields,field_description:fieldservice_operating_unit.field_fsm_order__id +msgid "ID" +msgstr "ID" + +#. module: fieldservice_operating_unit +#: model:ir.model.fields,field_description:fieldservice_operating_unit.field_fsm_order____last_update +msgid "Last Modified on" +msgstr "Dernière modification le" + +#. module: fieldservice_operating_unit +#: model:ir.model.fields,field_description:fieldservice_operating_unit.field_fsm_order__operating_unit_id +msgid "Operating Unit" +msgstr "Unité opérationnelle" + +#. module: fieldservice_operating_unit +#: model:ir.model.fields,field_description:fieldservice_operating_unit.field_fsm_order__display_name +msgid "Order" +msgstr "Ordre" diff --git a/fieldservice_operating_unit/static/description/index.html b/fieldservice_operating_unit/static/description/index.html index 8903dcc493..5a7b8e4be9 100644 --- a/fieldservice_operating_unit/static/description/index.html +++ b/fieldservice_operating_unit/static/description/index.html @@ -1,20 +1,20 @@ - + - + Field Service with Operating Units