From 26b9b677fef568beb59e746d250822d73329108c Mon Sep 17 00:00:00 2001 From: Nikul Chaudhary Date: Mon, 23 Dec 2019 16:36:42 +0530 Subject: [PATCH 01/27] project_operating_unit v12 --- project_operating_unit/__init__.py | 2 + project_operating_unit/__manifest__.py | 29 ++++++ project_operating_unit/models/__init__.py | 3 + .../models/project_project.py | 15 +++ project_operating_unit/models/project_task.py | 16 ++++ .../readme/CONTRIBUTORS.rst | 2 + project_operating_unit/readme/CREDITS.rst | 2 + project_operating_unit/readme/DESCRIPTION.rst | 1 + project_operating_unit/readme/USAGE.rst | 4 + .../security/project_security.xml | 31 ++++++ project_operating_unit/tests/__init__.py | 2 + .../tests/test_project_operating_unit.py | 94 +++++++++++++++++++ .../views/project_project.xml | 17 ++++ project_operating_unit/views/project_task.xml | 17 ++++ 14 files changed, 235 insertions(+) create mode 100644 project_operating_unit/__init__.py create mode 100644 project_operating_unit/__manifest__.py create mode 100644 project_operating_unit/models/__init__.py create mode 100644 project_operating_unit/models/project_project.py create mode 100644 project_operating_unit/models/project_task.py create mode 100644 project_operating_unit/readme/CONTRIBUTORS.rst create mode 100644 project_operating_unit/readme/CREDITS.rst create mode 100644 project_operating_unit/readme/DESCRIPTION.rst create mode 100644 project_operating_unit/readme/USAGE.rst create mode 100644 project_operating_unit/security/project_security.xml create mode 100644 project_operating_unit/tests/__init__.py create mode 100644 project_operating_unit/tests/test_project_operating_unit.py create mode 100644 project_operating_unit/views/project_project.xml create mode 100644 project_operating_unit/views/project_task.xml diff --git a/project_operating_unit/__init__.py b/project_operating_unit/__init__.py new file mode 100644 index 0000000000..c32fd62b78 --- /dev/null +++ b/project_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/project_operating_unit/__manifest__.py b/project_operating_unit/__manifest__.py new file mode 100644 index 0000000000..0431cfbfdf --- /dev/null +++ b/project_operating_unit/__manifest__.py @@ -0,0 +1,29 @@ +# 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": 'Project with Operating Units', + "summary": """ + This module adds operating unit information to projects and tasks.""", + "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": "Project", + "depends": [ + 'operating_unit', + 'project' + ], + "license": "AGPL-3", + "data": [ + 'security/project_security.xml', + 'views/project_project.xml', + 'views/project_task.xml', + ], + 'installable': True, + 'development_status': 'Beta', + 'maintainers': [ + 'max3903', + ], +} diff --git a/project_operating_unit/models/__init__.py b/project_operating_unit/models/__init__.py new file mode 100644 index 0000000000..6d7b86671a --- /dev/null +++ b/project_operating_unit/models/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from . import project_project +from . import project_task diff --git a/project_operating_unit/models/project_project.py b/project_operating_unit/models/project_project.py new file mode 100644 index 0000000000..89f0c3597a --- /dev/null +++ b/project_operating_unit/models/project_project.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 ProjectProject(models.Model): + _inherit = 'project.project' + + 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/project_operating_unit/models/project_task.py b/project_operating_unit/models/project_task.py new file mode 100644 index 0000000000..c744090f5e --- /dev/null +++ b/project_operating_unit/models/project_task.py @@ -0,0 +1,16 @@ +# 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 ProjectTask(models.Model): + _inherit = 'project.task' + + operating_unit_id = fields.Many2one( + comodel_name='operating.unit', + related="project_id.operating_unit_id", + string='Operating Unit', + default=lambda self: self.env['res.users'].operating_unit_default_get( + self._uid) + ) diff --git a/project_operating_unit/readme/CONTRIBUTORS.rst b/project_operating_unit/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..e61704632a --- /dev/null +++ b/project_operating_unit/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +* Nikul Chaudhary +* Maxime Chambreuil diff --git a/project_operating_unit/readme/CREDITS.rst b/project_operating_unit/readme/CREDITS.rst new file mode 100644 index 0000000000..bfc05668a8 --- /dev/null +++ b/project_operating_unit/readme/CREDITS.rst @@ -0,0 +1,2 @@ +* Open Source Integrators +* Serpent Consulting Services Pvt. Ltd. diff --git a/project_operating_unit/readme/DESCRIPTION.rst b/project_operating_unit/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..b49aac6edb --- /dev/null +++ b/project_operating_unit/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module adds operating unit information to projects and tasks. diff --git a/project_operating_unit/readme/USAGE.rst b/project_operating_unit/readme/USAGE.rst new file mode 100644 index 0000000000..256fbca567 --- /dev/null +++ b/project_operating_unit/readme/USAGE.rst @@ -0,0 +1,4 @@ +* Go to Project +* You only see the projects and tasks of your operating units +* Create a new project. It is assigned to your default operating unit. +* Create a task within a project. It inherits the operating unit of the project. diff --git a/project_operating_unit/security/project_security.xml b/project_operating_unit/security/project_security.xml new file mode 100644 index 0000000000..5fff7f644b --- /dev/null +++ b/project_operating_unit/security/project_security.xml @@ -0,0 +1,31 @@ + + + + + + + ['|', ('operating_unit_id','=',False), ('operating_unit_id','in',user.operating_unit_ids.ids)] + + Project Operating Unit + + + + + + + + + + ['|', ('operating_unit_id','=',False), ('operating_unit_id','in',user.operating_unit_ids.ids)] + + Project Task Operating Unit + + + + + + + + diff --git a/project_operating_unit/tests/__init__.py b/project_operating_unit/tests/__init__.py new file mode 100644 index 0000000000..8f99fb0e63 --- /dev/null +++ b/project_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_project_operating_unit diff --git a/project_operating_unit/tests/test_project_operating_unit.py b/project_operating_unit/tests/test_project_operating_unit.py new file mode 100644 index 0000000000..2f64ee0129 --- /dev/null +++ b/project_operating_unit/tests/test_project_operating_unit.py @@ -0,0 +1,94 @@ +# 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 + + +class TestProject(common.TransactionCase): + + def setUp(self): + super(TestProject, self).setUp() + self.project_obj = self.env['project.project'] + self.task_obj = self.env['project.task'] + self.res_users_model = self.env['res.users'] + + self.partner_1 = self.env['res.partner'].create({ + 'name': 'SERPENTCS ', + 'email': 'serpentcs@gmail.com'}) + + # Groups + self.grp_mngr =\ + self.env.ref('project.group_project_manager') + self.grp_user = self.env.ref('project.group_project_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_mngr, + self.grp_user], + self.company, [self.main_OU]) + # Create User 2 with B2C OU + self.user2 = self._create_user('user_2', [self.grp_mngr, + self.grp_user], + self.company, [self.b2c_OU]) + + self.project1 = self._create_project(self.user1, self.main_OU) + self.project2 = self._create_project(self.user2, self.b2c_OU) + self.task1 = self._create_task(self.user1, self.project1) + self.task2 = self._create_task(self.user2, self.project2) + + 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_project(self, uid, operating_unit): + project = self.project_obj.sudo(uid).create({ + 'name': 'Test Project', + 'operating_unit_id': operating_unit.id, + 'privacy_visibility': 'employees', + 'partner_id': self.partner_1.id + }) + return project + + def _create_task(self, uid, project): + task = self.task_obj.sudo(uid).create({ + 'name': 'Test Task', + 'user_id': uid.id, + 'project_id': project.id + }) + return task + + def test_project(self): + # User 2 is only assigned to B2C Operating Unit, and cannot + # access Project for Main Operating Unit. + projects = self.project_obj.sudo(self.user2.id).search( + [('id', '=', self.project2.id), + ('operating_unit_id', '=', self.main_OU.id)]) + self.assertEqual(projects.ids, [], 'User 2 should not have access to ' + '%s' % self.main_OU.name) + self.assertEqual(self.project1.operating_unit_id.id, self.main_OU.id) + + def test_project_task(self): + # User 2 is only assigned to B2C Operating Unit, and cannot + # access Task for Main Operating Unit. + tasks = self.task_obj.sudo(self.user2.id).search( + [('id', '=', self.task2.id), + ('operating_unit_id', '=', self.main_OU.id)]) + self.assertEqual(tasks.ids, [], 'User 2 should not have access to ' + '%s' % self.main_OU.name) + self.assertEqual(self.task1.operating_unit_id.id, + self.project1.operating_unit_id.id) diff --git a/project_operating_unit/views/project_project.xml b/project_operating_unit/views/project_project.xml new file mode 100644 index 0000000000..65f3068789 --- /dev/null +++ b/project_operating_unit/views/project_project.xml @@ -0,0 +1,17 @@ + + + + + project.project.form + project.project + + + + + + + + + diff --git a/project_operating_unit/views/project_task.xml b/project_operating_unit/views/project_task.xml new file mode 100644 index 0000000000..ee53d883ac --- /dev/null +++ b/project_operating_unit/views/project_task.xml @@ -0,0 +1,17 @@ + + + + + project.task.form + project.task + + + + + + + + + From 803c58be920530689675c35fdb1c564bd476de89 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Sat, 28 Dec 2019 15:05:42 +0000 Subject: [PATCH 02/27] Update project_operating_unit.pot --- .../i18n/project_operating_unit.pot | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 project_operating_unit/i18n/project_operating_unit.pot diff --git a/project_operating_unit/i18n/project_operating_unit.pot b/project_operating_unit/i18n/project_operating_unit.pot new file mode 100644 index 0000000000..07f0df5cbc --- /dev/null +++ b/project_operating_unit/i18n/project_operating_unit.pot @@ -0,0 +1,31 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_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: project_operating_unit +#: model:ir.model.fields,field_description:project_operating_unit.field_project_project__operating_unit_id +#: model:ir.model.fields,field_description:project_operating_unit.field_project_task__operating_unit_id +msgid "Operating Unit" +msgstr "" + +#. module: project_operating_unit +#: model:ir.model,name:project_operating_unit.model_project_project +msgid "Project" +msgstr "" + +#. module: project_operating_unit +#: model:ir.model,name:project_operating_unit.model_project_task +msgid "Task" +msgstr "" + From 13e9b3ce40daa154fda78aabd63cc646c1419644 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sat, 28 Dec 2019 15:12:13 +0000 Subject: [PATCH 03/27] README.rst --- project_operating_unit/README.rst | 97 ++++ .../static/description/index.html | 441 ++++++++++++++++++ 2 files changed, 538 insertions(+) create mode 100644 project_operating_unit/README.rst create mode 100644 project_operating_unit/static/description/index.html diff --git a/project_operating_unit/README.rst b/project_operating_unit/README.rst new file mode 100644 index 0000000000..485ee82663 --- /dev/null +++ b/project_operating_unit/README.rst @@ -0,0 +1,97 @@ +============================ +Project 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/project_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-project_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 projects and tasks. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +* Go to Project +* You only see the projects and tasks of your operating units +* Create a new project. It is assigned to your default operating unit. +* Create a task within a project. It inherits the operating unit of the project. + +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/project_operating_unit/static/description/index.html b/project_operating_unit/static/description/index.html new file mode 100644 index 0000000000..0a9ce5cd75 --- /dev/null +++ b/project_operating_unit/static/description/index.html @@ -0,0 +1,441 @@ + + + + + + +Project with Operating Units + + + +
+

Project 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 projects and tasks.

+

Table of contents

+ +
+

Usage

+
    +
  • Go to Project
  • +
  • You only see the projects and tasks of your operating units
  • +
  • Create a new project. It is assigned to your default operating unit.
  • +
  • Create a task within a project. It inherits the operating unit of the project.
  • +
+
+
+

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.

+
+
+
+ + From 01ea234187bda4a2d31923d3f0dbd31616222886 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sat, 28 Dec 2019 15:12:13 +0000 Subject: [PATCH 04/27] icon.png --- .../static/description/icon.png | Bin 0 -> 9455 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 project_operating_unit/static/description/icon.png diff --git a/project_operating_unit/static/description/icon.png b/project_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 From 06e9de5434a8ac4718aec628ad91a96cb834cc0f Mon Sep 17 00:00:00 2001 From: Hiren Dangar Date: Mon, 23 Dec 2019 15:08:09 +0530 Subject: [PATCH 05/27] res_partner_operating_unit. --- project_operating_unit/tests/test_project_operating_unit.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project_operating_unit/tests/test_project_operating_unit.py b/project_operating_unit/tests/test_project_operating_unit.py index 2f64ee0129..ce7394b894 100644 --- a/project_operating_unit/tests/test_project_operating_unit.py +++ b/project_operating_unit/tests/test_project_operating_unit.py @@ -65,7 +65,7 @@ def _create_project(self, uid, operating_unit): return project def _create_task(self, uid, project): - task = self.task_obj.sudo(uid).create({ + task = self.task_obj.create({ 'name': 'Test Task', 'user_id': uid.id, 'project_id': project.id From d441ff568e8fa22c3bdd4a60b8a75a1548de8123 Mon Sep 17 00:00:00 2001 From: Pedro Castro Silva Date: Sat, 29 Feb 2020 12:08:24 +0000 Subject: [PATCH 06/27] Added translation using Weblate (Portuguese) --- project_operating_unit/i18n/pt.po | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 project_operating_unit/i18n/pt.po diff --git a/project_operating_unit/i18n/pt.po b/project_operating_unit/i18n/pt.po new file mode 100644 index 0000000000..c17acd8dc0 --- /dev/null +++ b/project_operating_unit/i18n/pt.po @@ -0,0 +1,31 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_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: project_operating_unit +#: model:ir.model.fields,field_description:project_operating_unit.field_project_project__operating_unit_id +#: model:ir.model.fields,field_description:project_operating_unit.field_project_task__operating_unit_id +msgid "Operating Unit" +msgstr "" + +#. module: project_operating_unit +#: model:ir.model,name:project_operating_unit.model_project_project +msgid "Project" +msgstr "" + +#. module: project_operating_unit +#: model:ir.model,name:project_operating_unit.model_project_task +msgid "Task" +msgstr "" From b9cb38e84d074aa083b9dae042d6ed7938f62d8a Mon Sep 17 00:00:00 2001 From: Pedro Castro Silva Date: Sat, 29 Feb 2020 12:35:29 +0000 Subject: [PATCH 07/27] Translated using Weblate (Portuguese) Currently translated at 100.0% (3 of 3 strings) Translation: operating-unit-12.0/operating-unit-12.0-project_operating_unit Translate-URL: https://translation.odoo-community.org/projects/operating-unit-12-0/operating-unit-12-0-project_operating_unit/pt/ --- project_operating_unit/i18n/pt.po | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/project_operating_unit/i18n/pt.po b/project_operating_unit/i18n/pt.po index c17acd8dc0..12e5bc3905 100644 --- a/project_operating_unit/i18n/pt.po +++ b/project_operating_unit/i18n/pt.po @@ -6,26 +6,28 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2020-02-29 15:13+0000\n" +"Last-Translator: Pedro Castro Silva \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" +"X-Generator: Weblate 3.10\n" #. module: project_operating_unit #: model:ir.model.fields,field_description:project_operating_unit.field_project_project__operating_unit_id #: model:ir.model.fields,field_description:project_operating_unit.field_project_task__operating_unit_id msgid "Operating Unit" -msgstr "" +msgstr "Unidade Operacional" #. module: project_operating_unit #: model:ir.model,name:project_operating_unit.model_project_project msgid "Project" -msgstr "" +msgstr "Projeto" #. module: project_operating_unit #: model:ir.model,name:project_operating_unit.model_project_task msgid "Task" -msgstr "" +msgstr "Tarefa" From 380bbf60411a583771bdb6d8e7e66c6db68e4f54 Mon Sep 17 00:00:00 2001 From: scampbell Date: Sat, 7 Mar 2020 12:09:41 -0800 Subject: [PATCH 08/27] Group By Operating Unit Projects --- project_operating_unit/views/project_project.xml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/project_operating_unit/views/project_project.xml b/project_operating_unit/views/project_project.xml index 65f3068789..9b72bf68e4 100644 --- a/project_operating_unit/views/project_project.xml +++ b/project_operating_unit/views/project_project.xml @@ -14,4 +14,17 @@ + + project.group.by.ou + project.project + + + + + + + + From e7f01fa37229f60918fac4a5be7d7c768b522c74 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Tue, 17 Mar 2020 15:21:54 +0000 Subject: [PATCH 09/27] Update project_operating_unit.pot --- project_operating_unit/i18n/project_operating_unit.pot | 1 + 1 file changed, 1 insertion(+) diff --git a/project_operating_unit/i18n/project_operating_unit.pot b/project_operating_unit/i18n/project_operating_unit.pot index 07f0df5cbc..bf8bb02577 100644 --- a/project_operating_unit/i18n/project_operating_unit.pot +++ b/project_operating_unit/i18n/project_operating_unit.pot @@ -16,6 +16,7 @@ msgstr "" #. module: project_operating_unit #: model:ir.model.fields,field_description:project_operating_unit.field_project_project__operating_unit_id #: model:ir.model.fields,field_description:project_operating_unit.field_project_task__operating_unit_id +#: model_terms:ir.ui.view,arch_db:project_operating_unit.project_group_by_ou msgid "Operating Unit" msgstr "" From 33f2dc9627c44db54110ee9d080da6e59695b1d9 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 17 Mar 2020 15:42:12 +0000 Subject: [PATCH 10/27] project_operating_unit 12.0.1.1.0 --- project_operating_unit/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project_operating_unit/__manifest__.py b/project_operating_unit/__manifest__.py index 0431cfbfdf..ed6514d4c0 100644 --- a/project_operating_unit/__manifest__.py +++ b/project_operating_unit/__manifest__.py @@ -5,7 +5,7 @@ "name": 'Project with Operating Units', "summary": """ This module adds operating unit information to projects and tasks.""", - "version": "12.0.1.0.0", + "version": "12.0.1.1.0", "author": "Open Source Integrators, " "Serpent Consulting Services Pvt. Ltd.," "Odoo Community Association (OCA)", From 37b0c3010a7ce1b2f6064869ba13030f7965f8f7 Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Tue, 17 Mar 2020 15:42:29 +0000 Subject: [PATCH 11/27] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: operating-unit-12.0/operating-unit-12.0-project_operating_unit Translate-URL: https://translation.odoo-community.org/projects/operating-unit-12-0/operating-unit-12-0-project_operating_unit/ --- project_operating_unit/i18n/pt.po | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/project_operating_unit/i18n/pt.po b/project_operating_unit/i18n/pt.po index 12e5bc3905..7a9de7a96e 100644 --- a/project_operating_unit/i18n/pt.po +++ b/project_operating_unit/i18n/pt.po @@ -1,6 +1,6 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * project_operating_unit +# * project_operating_unit # msgid "" msgstr "" @@ -19,6 +19,7 @@ msgstr "" #. module: project_operating_unit #: model:ir.model.fields,field_description:project_operating_unit.field_project_project__operating_unit_id #: model:ir.model.fields,field_description:project_operating_unit.field_project_task__operating_unit_id +#: model_terms:ir.ui.view,arch_db:project_operating_unit.project_group_by_ou msgid "Operating Unit" msgstr "Unidade Operacional" From 59004fb6418066b9b74531c452ae8fffc18b485a Mon Sep 17 00:00:00 2001 From: Nikul Chaudhary Date: Sun, 16 Aug 2020 13:10:07 +0530 Subject: [PATCH 12/27] [MIG] Migrated project_operating_unit in v13 --- project_operating_unit/README.rst | 6 +- project_operating_unit/__manifest__.py | 27 ++--- .../models/project_project.py | 11 +- project_operating_unit/models/project_task.py | 11 +- .../security/project_security.xml | 36 +++--- .../tests/test_project_operating_unit.py | 109 +++++++++--------- .../views/project_project.xml | 19 +-- project_operating_unit/views/project_task.xml | 8 +- 8 files changed, 114 insertions(+), 113 deletions(-) diff --git a/project_operating_unit/README.rst b/project_operating_unit/README.rst index 485ee82663..b572cf5cf2 100644 --- a/project_operating_unit/README.rst +++ b/project_operating_unit/README.rst @@ -14,13 +14,13 @@ Project 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/project_operating_unit + :target: https://github.com/OCA/operating-unit/tree/13.0/project_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-project_operating_unit + :target: https://translation.odoo-community.org/projects/operating-unit-13-0/operating-unit-13-0-project_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/13.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| diff --git a/project_operating_unit/__manifest__.py b/project_operating_unit/__manifest__.py index ed6514d4c0..dee25f92cc 100644 --- a/project_operating_unit/__manifest__.py +++ b/project_operating_unit/__manifest__.py @@ -2,28 +2,23 @@ # Copyright (C) 2019 Serpent Consulting Services # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { - "name": 'Project with Operating Units', + "name": "Project with Operating Units", "summary": """ This module adds operating unit information to projects and tasks.""", - "version": "12.0.1.1.0", + "version": "13.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": "Project", - "depends": [ - 'operating_unit', - 'project' - ], + "depends": ["operating_unit", "project"], "license": "AGPL-3", "data": [ - 'security/project_security.xml', - 'views/project_project.xml', - 'views/project_task.xml', - ], - 'installable': True, - 'development_status': 'Beta', - 'maintainers': [ - 'max3903', + "security/project_security.xml", + "views/project_project.xml", + "views/project_task.xml", ], + "installable": True, + "development_status": "Beta", + "maintainers": ["max3903"], } diff --git a/project_operating_unit/models/project_project.py b/project_operating_unit/models/project_project.py index 89f0c3597a..76406a036e 100644 --- a/project_operating_unit/models/project_project.py +++ b/project_operating_unit/models/project_project.py @@ -5,11 +5,12 @@ class ProjectProject(models.Model): - _inherit = 'project.project' + _inherit = "project.project" 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["res.users"].operating_unit_default_get( + self._uid + ), ) diff --git a/project_operating_unit/models/project_task.py b/project_operating_unit/models/project_task.py index c744090f5e..cbb568f70c 100644 --- a/project_operating_unit/models/project_task.py +++ b/project_operating_unit/models/project_task.py @@ -5,12 +5,13 @@ class ProjectTask(models.Model): - _inherit = 'project.task' + _inherit = "project.task" operating_unit_id = fields.Many2one( - comodel_name='operating.unit', + comodel_name="operating.unit", related="project_id.operating_unit_id", - string='Operating Unit', - default=lambda self: self.env['res.users'].operating_unit_default_get( - self._uid) + string="Operating Unit", + default=lambda self: self.env["res.users"].operating_unit_default_get( + self._uid + ), ) diff --git a/project_operating_unit/security/project_security.xml b/project_operating_unit/security/project_security.xml index 5fff7f644b..7ad8cffd31 100644 --- a/project_operating_unit/security/project_security.xml +++ b/project_operating_unit/security/project_security.xml @@ -1,31 +1,31 @@ - - - - ['|', ('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)] Project Operating Unit - - - - - + + + + + - - - ['|', ('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)] Project Task Operating Unit - - - - - + + + + + - diff --git a/project_operating_unit/tests/test_project_operating_unit.py b/project_operating_unit/tests/test_project_operating_unit.py index ce7394b894..5e84b473e6 100644 --- a/project_operating_unit/tests/test_project_operating_unit.py +++ b/project_operating_unit/tests/test_project_operating_unit.py @@ -5,35 +5,33 @@ class TestProject(common.TransactionCase): - def setUp(self): super(TestProject, self).setUp() - self.project_obj = self.env['project.project'] - self.task_obj = self.env['project.task'] - self.res_users_model = self.env['res.users'] + self.project_obj = self.env["project.project"] + self.task_obj = self.env["project.task"] + self.res_users_model = self.env["res.users"] - self.partner_1 = self.env['res.partner'].create({ - 'name': 'SERPENTCS ', - 'email': 'serpentcs@gmail.com'}) + self.partner_1 = self.env["res.partner"].create( + {"name": "SERPENTCS ", "email": "serpentcs@gmail.com"} + ) # Groups - self.grp_mngr =\ - self.env.ref('project.group_project_manager') - self.grp_user = self.env.ref('project.group_project_user') + self.grp_mngr = self.env.ref("project.group_project_manager") + self.grp_user = self.env.ref("project.group_project_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_mngr, - self.grp_user], - self.company, [self.main_OU]) + self.user1 = self._create_user( + "user_1", [self.grp_mngr, self.grp_user], self.company, [self.main_OU] + ) # Create User 2 with B2C OU - self.user2 = self._create_user('user_2', [self.grp_mngr, - self.grp_user], - self.company, [self.b2c_OU]) + self.user2 = self._create_user( + "user_2", [self.grp_mngr, self.grp_user], self.company, [self.b2c_OU] + ) self.project1 = self._create_project(self.user1, self.main_OU) self.project2 = self._create_project(self.user2, self.b2c_OU) @@ -43,52 +41,59 @@ def setUp(self): 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)] - }) + 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_project(self, uid, operating_unit): - project = self.project_obj.sudo(uid).create({ - 'name': 'Test Project', - 'operating_unit_id': operating_unit.id, - 'privacy_visibility': 'employees', - 'partner_id': self.partner_1.id - }) + project = self.project_obj.with_user(uid).create( + { + "name": "Test Project", + "operating_unit_id": operating_unit.id, + "privacy_visibility": "employees", + "partner_id": self.partner_1.id, + } + ) return project def _create_task(self, uid, project): - task = self.task_obj.create({ - 'name': 'Test Task', - 'user_id': uid.id, - 'project_id': project.id - }) + task = self.task_obj.create( + {"name": "Test Task", "user_id": uid.id, "project_id": project.id} + ) return task def test_project(self): # User 2 is only assigned to B2C Operating Unit, and cannot # access Project for Main Operating Unit. - projects = self.project_obj.sudo(self.user2.id).search( - [('id', '=', self.project2.id), - ('operating_unit_id', '=', self.main_OU.id)]) - self.assertEqual(projects.ids, [], 'User 2 should not have access to ' - '%s' % self.main_OU.name) + projects = self.project_obj.with_user(self.user2.id).search( + [("id", "=", self.project2.id), ("operating_unit_id", "=", self.main_OU.id)] + ) + self.assertEqual( + projects.ids, + [], + "User 2 should not have access to " "%s" % self.main_OU.name, + ) self.assertEqual(self.project1.operating_unit_id.id, self.main_OU.id) def test_project_task(self): # User 2 is only assigned to B2C Operating Unit, and cannot # access Task for Main Operating Unit. - tasks = self.task_obj.sudo(self.user2.id).search( - [('id', '=', self.task2.id), - ('operating_unit_id', '=', self.main_OU.id)]) - self.assertEqual(tasks.ids, [], 'User 2 should not have access to ' - '%s' % self.main_OU.name) - self.assertEqual(self.task1.operating_unit_id.id, - self.project1.operating_unit_id.id) + tasks = self.task_obj.with_user(self.user2.id).search( + [("id", "=", self.task2.id), ("operating_unit_id", "=", self.main_OU.id)] + ) + self.assertEqual( + tasks.ids, [], "User 2 should not have access to " "%s" % self.main_OU.name + ) + self.assertEqual( + self.task1.operating_unit_id.id, self.project1.operating_unit_id.id + ) diff --git a/project_operating_unit/views/project_project.xml b/project_operating_unit/views/project_project.xml index 9b72bf68e4..dc949d4e86 100644 --- a/project_operating_unit/views/project_project.xml +++ b/project_operating_unit/views/project_project.xml @@ -2,29 +2,30 @@ - project.project.form project.project - + - + - project.group.by.ou project.project - + - + - diff --git a/project_operating_unit/views/project_task.xml b/project_operating_unit/views/project_task.xml index ee53d883ac..bc90cbb544 100644 --- a/project_operating_unit/views/project_task.xml +++ b/project_operating_unit/views/project_task.xml @@ -2,16 +2,14 @@ - project.task.form - project.task - + project.task + - + - From 9bcb800207c2f8a957f05e17e82e2b3d9b82f2bd Mon Sep 17 00:00:00 2001 From: Murtaza Mithaiwala Date: Fri, 25 Jun 2021 15:08:28 +0530 Subject: [PATCH 13/27] [FIX] pre-commit. --- project_operating_unit/README.rst | 7 ++++--- project_operating_unit/__manifest__.py | 2 +- project_operating_unit/readme/CONTRIBUTORS.rst | 1 + 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/project_operating_unit/README.rst b/project_operating_unit/README.rst index b572cf5cf2..316fc93b0b 100644 --- a/project_operating_unit/README.rst +++ b/project_operating_unit/README.rst @@ -14,13 +14,13 @@ Project 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/13.0/project_operating_unit + :target: https://github.com/OCA/operating-unit/tree/14.0/project_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-13-0/operating-unit-13-0-project_operating_unit + :target: https://translation.odoo-community.org/projects/operating-unit-14-0/operating-unit-14-0-project_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/13.0 + :target: https://runbot.odoo-community.org/runbot/213/14.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -64,6 +64,7 @@ Contributors * Nikul Chaudhary * Maxime Chambreuil +* Murtaza Mithaiwala Other credits ~~~~~~~~~~~~~ diff --git a/project_operating_unit/__manifest__.py b/project_operating_unit/__manifest__.py index dee25f92cc..895b24bdad 100644 --- a/project_operating_unit/__manifest__.py +++ b/project_operating_unit/__manifest__.py @@ -5,7 +5,7 @@ "name": "Project with Operating Units", "summary": """ This module adds operating unit information to projects and tasks.""", - "version": "13.0.1.0.0", + "version": "14.0.1.0.0", "author": "Open Source Integrators, " "Serpent Consulting Services Pvt. Ltd.," "Odoo Community Association (OCA)", diff --git a/project_operating_unit/readme/CONTRIBUTORS.rst b/project_operating_unit/readme/CONTRIBUTORS.rst index e61704632a..6530909328 100644 --- a/project_operating_unit/readme/CONTRIBUTORS.rst +++ b/project_operating_unit/readme/CONTRIBUTORS.rst @@ -1,2 +1,3 @@ * Nikul Chaudhary * Maxime Chambreuil +* Murtaza Mithaiwala From 6c526e52efb19fba95c60378c77f2df5ef96332c Mon Sep 17 00:00:00 2001 From: Murtaza Mithaiwala Date: Fri, 25 Jun 2021 15:36:51 +0530 Subject: [PATCH 14/27] [14.0][MIG] project_operating_unit. --- .../security/project_security.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/project_operating_unit/security/project_security.xml b/project_operating_unit/security/project_security.xml index 7ad8cffd31..1b067bd778 100644 --- a/project_operating_unit/security/project_security.xml +++ b/project_operating_unit/security/project_security.xml @@ -10,10 +10,10 @@ Project Operating Unit - - - - + + + + @@ -23,9 +23,9 @@ Project Task Operating Unit - - - - + + + + From fb8b11b96697d918fa2a7753c57f279e1fa2ec1e Mon Sep 17 00:00:00 2001 From: Urvisha-OSI Date: Fri, 4 Nov 2022 15:06:56 +0530 Subject: [PATCH 15/27] [FIX] run pre-commit for solve issue --- project_operating_unit/README.rst | 4 +-- .../i18n/project_operating_unit.pot | 25 ++++++++++++++++--- .../static/description/index.html | 7 +++--- .../tests/test_project_operating_unit.py | 2 +- 4 files changed, 28 insertions(+), 10 deletions(-) diff --git a/project_operating_unit/README.rst b/project_operating_unit/README.rst index 316fc93b0b..344a398d55 100644 --- a/project_operating_unit/README.rst +++ b/project_operating_unit/README.rst @@ -46,7 +46,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. @@ -93,6 +93,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/project_operating_unit/i18n/project_operating_unit.pot b/project_operating_unit/i18n/project_operating_unit.pot index bf8bb02577..1ada1ac686 100644 --- a/project_operating_unit/i18n/project_operating_unit.pot +++ b/project_operating_unit/i18n/project_operating_unit.pot @@ -1,18 +1,36 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * project_operating_unit +# * project_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" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" +#. module: project_operating_unit +#: model:ir.model.fields,field_description:project_operating_unit.field_project_project__display_name +#: model:ir.model.fields,field_description:project_operating_unit.field_project_task__display_name +msgid "Display Name" +msgstr "" + +#. module: project_operating_unit +#: model:ir.model.fields,field_description:project_operating_unit.field_project_project__id +#: model:ir.model.fields,field_description:project_operating_unit.field_project_task__id +msgid "ID" +msgstr "" + +#. module: project_operating_unit +#: model:ir.model.fields,field_description:project_operating_unit.field_project_project____last_update +#: model:ir.model.fields,field_description:project_operating_unit.field_project_task____last_update +msgid "Last Modified on" +msgstr "" + #. module: project_operating_unit #: model:ir.model.fields,field_description:project_operating_unit.field_project_project__operating_unit_id #: model:ir.model.fields,field_description:project_operating_unit.field_project_task__operating_unit_id @@ -29,4 +47,3 @@ msgstr "" #: model:ir.model,name:project_operating_unit.model_project_task msgid "Task" msgstr "" - diff --git a/project_operating_unit/static/description/index.html b/project_operating_unit/static/description/index.html index 0a9ce5cd75..c26ef91d2b 100644 --- a/project_operating_unit/static/description/index.html +++ b/project_operating_unit/static/description/index.html @@ -367,7 +367,7 @@

Project 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 projects and tasks.

Table of contents

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

@@ -414,6 +414,7 @@

Contributors

@@ -432,7 +433,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/project_operating_unit/tests/test_project_operating_unit.py b/project_operating_unit/tests/test_project_operating_unit.py index 5e84b473e6..073e8d6d80 100644 --- a/project_operating_unit/tests/test_project_operating_unit.py +++ b/project_operating_unit/tests/test_project_operating_unit.py @@ -39,7 +39,7 @@ def setUp(self): self.task2 = self._create_task(self.user2, self.project2) 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( { From 6115aeed89f88750873e29aba84ff702dbaa4673 Mon Sep 17 00:00:00 2001 From: Weblate Date: Tue, 17 Jan 2023 15:36:22 +0000 Subject: [PATCH 16/27] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: operating-unit-14.0/operating-unit-14.0-project_operating_unit Translate-URL: https://translation.odoo-community.org/projects/operating-unit-14-0/operating-unit-14-0-project_operating_unit/ --- project_operating_unit/i18n/pt.po | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/project_operating_unit/i18n/pt.po b/project_operating_unit/i18n/pt.po index 7a9de7a96e..b57bdbcf92 100644 --- a/project_operating_unit/i18n/pt.po +++ b/project_operating_unit/i18n/pt.po @@ -16,6 +16,24 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 3.10\n" +#. module: project_operating_unit +#: model:ir.model.fields,field_description:project_operating_unit.field_project_project__display_name +#: model:ir.model.fields,field_description:project_operating_unit.field_project_task__display_name +msgid "Display Name" +msgstr "" + +#. module: project_operating_unit +#: model:ir.model.fields,field_description:project_operating_unit.field_project_project__id +#: model:ir.model.fields,field_description:project_operating_unit.field_project_task__id +msgid "ID" +msgstr "" + +#. module: project_operating_unit +#: model:ir.model.fields,field_description:project_operating_unit.field_project_project____last_update +#: model:ir.model.fields,field_description:project_operating_unit.field_project_task____last_update +msgid "Last Modified on" +msgstr "" + #. module: project_operating_unit #: model:ir.model.fields,field_description:project_operating_unit.field_project_project__operating_unit_id #: model:ir.model.fields,field_description:project_operating_unit.field_project_task__operating_unit_id From b40fe50ad6f26c3df85ec461fe1c027296f2465e Mon Sep 17 00:00:00 2001 From: hugues de keyzer Date: Fri, 17 Mar 2023 13:32:29 +0100 Subject: [PATCH 17/27] [MIG] project_operating_unit: migration to 15.0 --- project_operating_unit/__manifest__.py | 10 +-- project_operating_unit/models/project_task.py | 3 - .../tests/test_project_operating_unit.py | 71 +++++++++++-------- project_operating_unit/views/project_task.xml | 2 +- 4 files changed, 48 insertions(+), 38 deletions(-) diff --git a/project_operating_unit/__manifest__.py b/project_operating_unit/__manifest__.py index 895b24bdad..f9aaf20df0 100644 --- a/project_operating_unit/__manifest__.py +++ b/project_operating_unit/__manifest__.py @@ -5,20 +5,22 @@ "name": "Project with Operating Units", "summary": """ This module adds operating unit information to projects and tasks.""", - "version": "14.0.1.0.0", + "version": "15.0.1.0.0", "author": "Open Source Integrators, " - "Serpent Consulting Services Pvt. Ltd.," + "Serpent Consulting Services Pvt. Ltd., " "Odoo Community Association (OCA)", "website": "https://github.com/OCA/operating-unit", "category": "Project", - "depends": ["operating_unit", "project"], + "depends": [ + "operating_unit", + "project", + ], "license": "AGPL-3", "data": [ "security/project_security.xml", "views/project_project.xml", "views/project_task.xml", ], - "installable": True, "development_status": "Beta", "maintainers": ["max3903"], } diff --git a/project_operating_unit/models/project_task.py b/project_operating_unit/models/project_task.py index cbb568f70c..60f59348ef 100644 --- a/project_operating_unit/models/project_task.py +++ b/project_operating_unit/models/project_task.py @@ -11,7 +11,4 @@ class ProjectTask(models.Model): comodel_name="operating.unit", related="project_id.operating_unit_id", string="Operating Unit", - default=lambda self: self.env["res.users"].operating_unit_default_get( - self._uid - ), ) diff --git a/project_operating_unit/tests/test_project_operating_unit.py b/project_operating_unit/tests/test_project_operating_unit.py index 073e8d6d80..82e5ba439a 100644 --- a/project_operating_unit/tests/test_project_operating_unit.py +++ b/project_operating_unit/tests/test_project_operating_unit.py @@ -1,74 +1,85 @@ # 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 from odoo.tests import common class TestProject(common.TransactionCase): - def setUp(self): - super(TestProject, self).setUp() - self.project_obj = self.env["project.project"] - self.task_obj = self.env["project.task"] - self.res_users_model = self.env["res.users"] + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.project_obj = cls.env["project.project"] + cls.task_obj = cls.env["project.task"] + cls.res_users_model = cls.env["res.users"] - self.partner_1 = self.env["res.partner"].create( + cls.partner_1 = cls.env["res.partner"].create( {"name": "SERPENTCS ", "email": "serpentcs@gmail.com"} ) # Groups - self.grp_mngr = self.env.ref("project.group_project_manager") - self.grp_user = self.env.ref("project.group_project_user") + cls.grp_mngr = cls.env.ref("project.group_project_manager") + cls.grp_user = cls.env.ref("project.group_project_user") # Company - self.company = self.env.ref("base.main_company") + cls.company = cls.env.ref("base.main_company") # Main Operating Unit - self.main_OU = self.env.ref("operating_unit.main_operating_unit") + cls.main_OU = cls.env.ref("operating_unit.main_operating_unit") # B2C Operating Unit - self.b2c_OU = self.env.ref("operating_unit.b2c_operating_unit") + cls.b2c_OU = cls.env.ref("operating_unit.b2c_operating_unit") # Create User 1 with Main OU - self.user1 = self._create_user( - "user_1", [self.grp_mngr, self.grp_user], self.company, [self.main_OU] + cls.user1 = cls._create_user( + "user_1", [cls.grp_mngr, cls.grp_user], cls.company, [cls.main_OU] ) # Create User 2 with B2C OU - self.user2 = self._create_user( - "user_2", [self.grp_mngr, self.grp_user], self.company, [self.b2c_OU] + cls.user2 = cls._create_user( + "user_2", [cls.grp_mngr, cls.grp_user], cls.company, [cls.b2c_OU] ) - self.project1 = self._create_project(self.user1, self.main_OU) - self.project2 = self._create_project(self.user2, self.b2c_OU) - self.task1 = self._create_task(self.user1, self.project1) - self.task2 = self._create_task(self.user2, self.project2) + cls.project1 = cls._create_project(cls.user1, cls.main_OU) + cls.project2 = cls._create_project(cls.user2, cls.b2c_OU) + cls.task1 = cls._create_task(cls.user1, cls.project1) + cls.task2 = cls._create_task(cls.user2, cls.project2) - def _create_user(self, login, groups, company, operating_units): + @classmethod + def _create_user(cls, login, groups, company, operating_units): """Create a user.""" group_ids = [group.id for group in groups] - user = self.res_users_model.create( + user = cls.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)], + "company_ids": [fields.Command.link(company.id)], + "operating_unit_ids": [ + fields.Command.link(ou.id) for ou in operating_units + ], + "groups_id": [fields.Command.set(group_ids)], } ) return user - def _create_project(self, uid, operating_unit): - project = self.project_obj.with_user(uid).create( + @classmethod + def _create_project(cls, uid, operating_unit): + project = cls.project_obj.with_user(uid).create( { "name": "Test Project", "operating_unit_id": operating_unit.id, "privacy_visibility": "employees", - "partner_id": self.partner_1.id, + "partner_id": cls.partner_1.id, } ) return project - def _create_task(self, uid, project): - task = self.task_obj.create( - {"name": "Test Task", "user_id": uid.id, "project_id": project.id} + @classmethod + def _create_task(cls, uid, project): + task = cls.task_obj.create( + { + "name": "Test Task", + "user_ids": [fields.Command.link(uid.id)], + "project_id": project.id, + } ) return task diff --git a/project_operating_unit/views/project_task.xml b/project_operating_unit/views/project_task.xml index bc90cbb544..7a196bcadd 100644 --- a/project_operating_unit/views/project_task.xml +++ b/project_operating_unit/views/project_task.xml @@ -7,7 +7,7 @@ project.task - + From d726480078891493dc5b5f5ed9258d670ddb1829 Mon Sep 17 00:00:00 2001 From: hugues de keyzer Date: Fri, 17 Mar 2023 15:55:53 +0100 Subject: [PATCH 18/27] [MIG] project_operating_unit: migration to 16.0 --- project_operating_unit/README.rst | 10 +++++----- project_operating_unit/__manifest__.py | 2 +- .../i18n/project_operating_unit.pot | 20 +------------------ .../static/description/index.html | 6 +++--- 4 files changed, 10 insertions(+), 28 deletions(-) diff --git a/project_operating_unit/README.rst b/project_operating_unit/README.rst index 344a398d55..c1fafcff74 100644 --- a/project_operating_unit/README.rst +++ b/project_operating_unit/README.rst @@ -14,13 +14,13 @@ Project 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/14.0/project_operating_unit + :target: https://github.com/OCA/operating-unit/tree/16.0/project_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-14-0/operating-unit-14-0-project_operating_unit + :target: https://translation.odoo-community.org/projects/operating-unit-16-0/operating-unit-16-0-project_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 + :target: https://runbot.odoo-community.org/runbot/213/16.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -46,7 +46,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. @@ -93,6 +93,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/project_operating_unit/__manifest__.py b/project_operating_unit/__manifest__.py index f9aaf20df0..3ddc626358 100644 --- a/project_operating_unit/__manifest__.py +++ b/project_operating_unit/__manifest__.py @@ -5,7 +5,7 @@ "name": "Project with Operating Units", "summary": """ This module adds operating unit information to projects and tasks.""", - "version": "15.0.1.0.0", + "version": "16.0.1.0.0", "author": "Open Source Integrators, " "Serpent Consulting Services Pvt. Ltd., " "Odoo Community Association (OCA)", diff --git a/project_operating_unit/i18n/project_operating_unit.pot b/project_operating_unit/i18n/project_operating_unit.pot index 1ada1ac686..8e66fe6236 100644 --- a/project_operating_unit/i18n/project_operating_unit.pot +++ b/project_operating_unit/i18n/project_operating_unit.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -13,24 +13,6 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" -#. module: project_operating_unit -#: model:ir.model.fields,field_description:project_operating_unit.field_project_project__display_name -#: model:ir.model.fields,field_description:project_operating_unit.field_project_task__display_name -msgid "Display Name" -msgstr "" - -#. module: project_operating_unit -#: model:ir.model.fields,field_description:project_operating_unit.field_project_project__id -#: model:ir.model.fields,field_description:project_operating_unit.field_project_task__id -msgid "ID" -msgstr "" - -#. module: project_operating_unit -#: model:ir.model.fields,field_description:project_operating_unit.field_project_project____last_update -#: model:ir.model.fields,field_description:project_operating_unit.field_project_task____last_update -msgid "Last Modified on" -msgstr "" - #. module: project_operating_unit #: model:ir.model.fields,field_description:project_operating_unit.field_project_project__operating_unit_id #: model:ir.model.fields,field_description:project_operating_unit.field_project_task__operating_unit_id diff --git a/project_operating_unit/static/description/index.html b/project_operating_unit/static/description/index.html index c26ef91d2b..39f5ce2028 100644 --- a/project_operating_unit/static/description/index.html +++ b/project_operating_unit/static/description/index.html @@ -367,7 +367,7 @@

Project 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 projects and tasks.

Table of contents

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

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

From cf8e30f3e088ee1bd3bfd9c95399a8b519515c6a Mon Sep 17 00:00:00 2001 From: Weblate Date: Tue, 15 Aug 2023 15:07:19 +0000 Subject: [PATCH 19/27] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: operating-unit-16.0/operating-unit-16.0-project_operating_unit Translate-URL: https://translation.odoo-community.org/projects/operating-unit-16-0/operating-unit-16-0-project_operating_unit/ --- project_operating_unit/README.rst | 15 ++++--- project_operating_unit/i18n/pt.po | 18 -------- .../static/description/index.html | 44 ++++++++++--------- 3 files changed, 32 insertions(+), 45 deletions(-) diff --git a/project_operating_unit/README.rst b/project_operating_unit/README.rst index c1fafcff74..7b0b230201 100644 --- a/project_operating_unit/README.rst +++ b/project_operating_unit/README.rst @@ -2,10 +2,13 @@ Project with Operating Units ============================ -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:9b62c87767d573deaf62aaec01eaa849edc553018ba92d581d94655f4899f53a + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Project with Operating Units .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/operating-unit-16-0/operating-unit-16-0-project_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/16.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=16.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module adds operating unit information to projects and tasks. @@ -45,7 +48,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/project_operating_unit/i18n/pt.po b/project_operating_unit/i18n/pt.po index b57bdbcf92..7a9de7a96e 100644 --- a/project_operating_unit/i18n/pt.po +++ b/project_operating_unit/i18n/pt.po @@ -16,24 +16,6 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 3.10\n" -#. module: project_operating_unit -#: model:ir.model.fields,field_description:project_operating_unit.field_project_project__display_name -#: model:ir.model.fields,field_description:project_operating_unit.field_project_task__display_name -msgid "Display Name" -msgstr "" - -#. module: project_operating_unit -#: model:ir.model.fields,field_description:project_operating_unit.field_project_project__id -#: model:ir.model.fields,field_description:project_operating_unit.field_project_task__id -msgid "ID" -msgstr "" - -#. module: project_operating_unit -#: model:ir.model.fields,field_description:project_operating_unit.field_project_project____last_update -#: model:ir.model.fields,field_description:project_operating_unit.field_project_task____last_update -msgid "Last Modified on" -msgstr "" - #. module: project_operating_unit #: model:ir.model.fields,field_description:project_operating_unit.field_project_project__operating_unit_id #: model:ir.model.fields,field_description:project_operating_unit.field_project_task__operating_unit_id diff --git a/project_operating_unit/static/description/index.html b/project_operating_unit/static/description/index.html index 39f5ce2028..ce81cb8411 100644 --- a/project_operating_unit/static/description/index.html +++ b/project_operating_unit/static/description/index.html @@ -1,20 +1,20 @@ - + - + Project with Operating Units