From a7c3986dd8597366564a7ea61289b9de17f91979 Mon Sep 17 00:00:00 2001 From: Enric Tobella Date: Wed, 22 Jan 2025 11:27:22 +0100 Subject: [PATCH 1/8] [ADD] project_group --- project_group/README.rst | 83 ++++ project_group/__init__.py | 1 + project_group/__manifest__.py | 17 + project_group/i18n/project_group.pot | 24 ++ project_group/models/__init__.py | 1 + project_group/models/project_project.py | 10 + project_group/pyproject.toml | 3 + project_group/readme/CONTRIBUTORS.md | 1 + project_group/readme/DESCRIPTION.md | 1 + project_group/readme/USAGE.md | 1 + project_group/security/project_project.xml | 25 ++ project_group/static/description/icon.png | Bin 0 -> 9455 bytes project_group/static/description/index.html | 430 ++++++++++++++++++++ project_group/views/project_project.xml | 22 + 14 files changed, 619 insertions(+) create mode 100644 project_group/README.rst create mode 100644 project_group/__init__.py create mode 100644 project_group/__manifest__.py create mode 100644 project_group/i18n/project_group.pot create mode 100644 project_group/models/__init__.py create mode 100644 project_group/models/project_project.py create mode 100644 project_group/pyproject.toml create mode 100644 project_group/readme/CONTRIBUTORS.md create mode 100644 project_group/readme/DESCRIPTION.md create mode 100644 project_group/readme/USAGE.md create mode 100644 project_group/security/project_project.xml create mode 100644 project_group/static/description/icon.png create mode 100644 project_group/static/description/index.html create mode 100644 project_group/views/project_project.xml diff --git a/project_group/README.rst b/project_group/README.rst new file mode 100644 index 0000000000..5a3700bd85 --- /dev/null +++ b/project_group/README.rst @@ -0,0 +1,83 @@ +============= +Project Group +============= + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:0b1c58f8bd55b88d087c90ccf4163aefbb1ff2f5b1e88dd0195b6dd0624756b6 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Fproject-lightgray.png?logo=github + :target: https://github.com/OCA/project/tree/17.0/project_group + :alt: OCA/project +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/project-17-0/project-17-0-project_group + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/project&target_branch=17.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Allows us to define groups directly on projects. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +Now, when we use Invited internal users options on visibility, a groups +field will appear. Then, all users with access to the project will be +able to see project and related tasks. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Dixmit + +Contributors +------------ + +- Enric Tobella (``Dixmit ``\ \_\_) + +Maintainers +----------- + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/project `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/project_group/__init__.py b/project_group/__init__.py new file mode 100644 index 0000000000..0650744f6b --- /dev/null +++ b/project_group/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/project_group/__manifest__.py b/project_group/__manifest__.py new file mode 100644 index 0000000000..2e9b8f9098 --- /dev/null +++ b/project_group/__manifest__.py @@ -0,0 +1,17 @@ +# Copyright 2025 Dixmit +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +{ + "name": "Project Group", + "summary": """Add groups for filtering on projects""", + "version": "17.0.1.0.0", + "license": "AGPL-3", + "author": "Dixmit,Odoo Community Association (OCA)", + "website": "https://github.com/OCA/project", + "depends": ["project"], + "data": [ + "security/project_project.xml", + "views/project_project.xml", + ], + "demo": [], +} diff --git a/project_group/i18n/project_group.pot b/project_group/i18n/project_group.pot new file mode 100644 index 0000000000..f329a2dc77 --- /dev/null +++ b/project_group/i18n/project_group.pot @@ -0,0 +1,24 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_group +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.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_group +#: model:ir.model.fields,field_description:project_group.field_project_project__group_ids +msgid "Group" +msgstr "" + +#. module: project_group +#: model:ir.model,name:project_group.model_project_project +msgid "Project" +msgstr "" diff --git a/project_group/models/__init__.py b/project_group/models/__init__.py new file mode 100644 index 0000000000..56545d0d4f --- /dev/null +++ b/project_group/models/__init__.py @@ -0,0 +1 @@ +from . import project_project diff --git a/project_group/models/project_project.py b/project_group/models/project_project.py new file mode 100644 index 0000000000..729bfdf248 --- /dev/null +++ b/project_group/models/project_project.py @@ -0,0 +1,10 @@ +# Copyright 2025 Dixmit +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ProjectProject(models.Model): + _inherit = "project.project" + + group_ids = fields.Many2many("res.groups") diff --git a/project_group/pyproject.toml b/project_group/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/project_group/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/project_group/readme/CONTRIBUTORS.md b/project_group/readme/CONTRIBUTORS.md new file mode 100644 index 0000000000..50d19cd9c0 --- /dev/null +++ b/project_group/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +- Enric Tobella (`Dixmit `__) diff --git a/project_group/readme/DESCRIPTION.md b/project_group/readme/DESCRIPTION.md new file mode 100644 index 0000000000..e186df8589 --- /dev/null +++ b/project_group/readme/DESCRIPTION.md @@ -0,0 +1 @@ +Allows us to define groups directly on projects. diff --git a/project_group/readme/USAGE.md b/project_group/readme/USAGE.md new file mode 100644 index 0000000000..edb8498693 --- /dev/null +++ b/project_group/readme/USAGE.md @@ -0,0 +1 @@ +Now, when we use Invited internal users options on visibility, a groups field will appear. Then, all users with access to the project will be able to see project and related tasks. diff --git a/project_group/security/project_project.xml b/project_group/security/project_project.xml new file mode 100644 index 0000000000..004636b68f --- /dev/null +++ b/project_group/security/project_project.xml @@ -0,0 +1,25 @@ + + + + + Project: employees: Groups + + [ + ('privacy_visibility', '=', 'followers'), + ('group_ids', 'in', user.groups_id.ids) + ] + + + + + Task: employees: Groups + + [ + ('project_id', '!=', False), + ('project_id.privacy_visibility', '=', 'followers'), + ('project_id.group_ids', 'in', user.groups_id.ids) + ] + + + diff --git a/project_group/static/description/icon.png b/project_group/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/project_group/static/description/index.html b/project_group/static/description/index.html new file mode 100644 index 0000000000..f7fa1f0615 --- /dev/null +++ b/project_group/static/description/index.html @@ -0,0 +1,430 @@ + + + + + +Project Group + + + +
+

Project Group

+ + +

Beta License: AGPL-3 OCA/project Translate me on Weblate Try me on Runboat

+

Allows us to define groups directly on projects.

+

Table of contents

+ +
+

Usage

+

Now, when we use Invited internal users options on visibility, a groups +field will appear. Then, all users with access to the project will be +able to see project and related tasks.

+
+
+

Bug Tracker

+

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

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • Dixmit
  • +
+
+
+

Contributors

+
    +
  • Enric Tobella (Dixmit <https://www.dixmit.com/>__)
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

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

+

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

+
+
+
+ + diff --git a/project_group/views/project_project.xml b/project_group/views/project_project.xml new file mode 100644 index 0000000000..a7f010ff2b --- /dev/null +++ b/project_group/views/project_project.xml @@ -0,0 +1,22 @@ + + + + + + project.project + + + + + + + + + + + From d2a061b7750c652ee641a9d4422bc7c0c84b21c4 Mon Sep 17 00:00:00 2001 From: mymage Date: Wed, 12 Feb 2025 13:58:01 +0000 Subject: [PATCH 2/8] Added translation using Weblate (Italian) --- project_group/i18n/it.po | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 project_group/i18n/it.po diff --git a/project_group/i18n/it.po b/project_group/i18n/it.po new file mode 100644 index 0000000000..f1e97b6e01 --- /dev/null +++ b/project_group/i18n/it.po @@ -0,0 +1,27 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * project_group +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2025-02-12 16:06+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.6.2\n" + +#. module: project_group +#: model:ir.model.fields,field_description:project_group.field_project_project__group_ids +msgid "Group" +msgstr "Gruppo" + +#. module: project_group +#: model:ir.model,name:project_group.model_project_project +msgid "Project" +msgstr "Progetto" From 836d2dfda286c68357ddfb5495e8b7c357e63028 Mon Sep 17 00:00:00 2001 From: Ruchir Shukla Date: Tue, 8 Jul 2025 14:23:30 +0530 Subject: [PATCH 3/8] [IMP] project_group: pre-commit auto fixes --- project_group/views/project_project.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/project_group/views/project_project.xml b/project_group/views/project_project.xml index a7f010ff2b..e129a5ac74 100644 --- a/project_group/views/project_project.xml +++ b/project_group/views/project_project.xml @@ -2,7 +2,6 @@ - project.project @@ -16,7 +15,4 @@ - - - From ad8ee6a1832f012984be748e2a46ff92ee19d49b Mon Sep 17 00:00:00 2001 From: Ruchir Shukla Date: Tue, 8 Jul 2025 14:41:55 +0530 Subject: [PATCH 4/8] [MIG] project_group: Migration to 18.0 --- project_group/README.rst | 10 +++++----- project_group/__manifest__.py | 2 +- project_group/static/description/index.html | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/project_group/README.rst b/project_group/README.rst index 5a3700bd85..98a0ffc2bb 100644 --- a/project_group/README.rst +++ b/project_group/README.rst @@ -17,13 +17,13 @@ Project Group :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fproject-lightgray.png?logo=github - :target: https://github.com/OCA/project/tree/17.0/project_group + :target: https://github.com/OCA/project/tree/18.0/project_group :alt: OCA/project .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/project-17-0/project-17-0-project_group + :target: https://translation.odoo-community.org/projects/project-18-0/project-18-0-project_group :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/project&target_branch=17.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/project&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -48,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 to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -78,6 +78,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/project `_ project on GitHub. +This module is part of the `OCA/project `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/project_group/__manifest__.py b/project_group/__manifest__.py index 2e9b8f9098..27a997d0bd 100644 --- a/project_group/__manifest__.py +++ b/project_group/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Project Group", "summary": """Add groups for filtering on projects""", - "version": "17.0.1.0.0", + "version": "18.0.1.0.0", "license": "AGPL-3", "author": "Dixmit,Odoo Community Association (OCA)", "website": "https://github.com/OCA/project", diff --git a/project_group/static/description/index.html b/project_group/static/description/index.html index f7fa1f0615..f3fdc4c037 100644 --- a/project_group/static/description/index.html +++ b/project_group/static/description/index.html @@ -369,7 +369,7 @@

Project Group

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:0b1c58f8bd55b88d087c90ccf4163aefbb1ff2f5b1e88dd0195b6dd0624756b6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/project Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/project Translate me on Weblate Try me on Runboat

Allows us to define groups directly on projects.

Table of contents

@@ -395,7 +395,7 @@

Bug Tracker

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

+feedback.

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

@@ -421,7 +421,7 @@

Maintainers

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

-

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

+

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

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

From 5eb5f341912cd54661a978f874ed7a738a8e7394 Mon Sep 17 00:00:00 2001 From: Ruchir Shukla Date: Tue, 8 Jul 2025 15:20:06 +0530 Subject: [PATCH 5/8] [ADD] project_group: Added test cases. --- project_group/tests/__init__.py | 1 + .../tests/test_project_visibility.py | 108 ++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 project_group/tests/__init__.py create mode 100644 project_group/tests/test_project_visibility.py diff --git a/project_group/tests/__init__.py b/project_group/tests/__init__.py new file mode 100644 index 0000000000..cacdf75892 --- /dev/null +++ b/project_group/tests/__init__.py @@ -0,0 +1 @@ +from . import test_project_visibility diff --git a/project_group/tests/test_project_visibility.py b/project_group/tests/test_project_visibility.py new file mode 100644 index 0000000000..bcfa96c798 --- /dev/null +++ b/project_group/tests/test_project_visibility.py @@ -0,0 +1,108 @@ +from odoo import Command + +from odoo.addons.base.tests.common import BaseCommon +from odoo.addons.mail.tests.common import mail_new_test_user + + +class TestProjectVisibility(BaseCommon): + @classmethod + def setUpClass(cls): + """Set up the class with initial data for tests.""" + super().setUpClass() + cls.ProjectObj = cls.env["project.project"] + cls.GroupObj = cls.env["res.groups"] + cls.project_group_user = mail_new_test_user( + cls.env, + login="projectgroupuser", + name="Project Group User", + email="projectgroupuser@example.com", + company_id=cls.env.company.id, + groups="base.group_user", + ) + cls.group1 = cls.GroupObj.create({"name": "Test Group 1"}) + cls.group2 = cls.GroupObj.create({"name": "Test Group 2"}) + cls.project = cls.ProjectObj.create( + {"name": "Test Project", "privacy_visibility": "portal"} + ) + cls.restricted_project = cls.ProjectObj.create( + { + "name": "Restricted Project", + "privacy_visibility": "followers", + "group_ids": [Command.set([cls.group1.id])], + } + ) + + def test_01_group_ids_visibility(self): + """Test the visibility of group_ids based on project privacy settings.""" + self.assertFalse( + self.project.group_ids, + "group_ids should not be set when visibility is 'portal'", + ) + self.assertEqual( + self.project.privacy_visibility, + "portal", + "privacy_visibility should be 'portal' initially", + ) + + self.project.write( + { + "privacy_visibility": "followers", + "group_ids": [Command.set([self.group1.id, self.group2.id])], + } + ) + self.assertEqual( + self.project.privacy_visibility, + "followers", + "privacy_visibility should be 'followers' after update", + ) + self.assertTrue( + self.project.group_ids, + "group_ids should be set when visibility is 'followers'", + ) + self.assertEqual( + len(self.project.group_ids), 2, "There should be two groups assigned" + ) + + self.project.write( + { + "privacy_visibility": "employees", + } + ) + self.assertEqual( + self.project.privacy_visibility, + "employees", + "privacy_visibility should be 'employees' after update", + ) + + def test_02_access_rights(self): + """Test the access rights of users based on group membership.""" + self.assertEqual( + self.restricted_project.privacy_visibility, + "followers", + "privacy_visibility should be 'followers' initially", + ) + + self.project_group_user.write({"groups_id": [Command.set([self.group2.id])]}) + self.assertNotIn( + self.project_group_user.id, + self.restricted_project.sudo().mapped("group_ids.users.id"), + "User should not have access", + ) + + self.project_group_user.write({"groups_id": [Command.set([self.group1.id])]}) + self.assertIn( + self.project_group_user.id, + self.restricted_project.sudo().mapped("group_ids.users.id"), + "User should have access", + ) + + self.restricted_project.write( + { + "privacy_visibility": "employees", + } + ) + self.assertEqual( + self.restricted_project.privacy_visibility, + "employees", + "privacy_visibility should be 'employees' after update", + ) From a87e147932c6ab5d59acb3c4bccc54b1de999624 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Tue, 12 Aug 2025 07:10:42 +0000 Subject: [PATCH 6/8] [UPD] Update project_group.pot --- project_group/i18n/project_group.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project_group/i18n/project_group.pot b/project_group/i18n/project_group.pot index f329a2dc77..abedced062 100644 --- a/project_group/i18n/project_group.pot +++ b/project_group/i18n/project_group.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 17.0\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" From d5b6a90f65f0ef55e0faee0078f9b56e83a1f651 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 12 Aug 2025 07:14:54 +0000 Subject: [PATCH 7/8] [BOT] post-merge updates --- project_group/README.rst | 8 ++++-- project_group/static/description/index.html | 28 +++++++++++++-------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/project_group/README.rst b/project_group/README.rst index 98a0ffc2bb..811aee85cc 100644 --- a/project_group/README.rst +++ b/project_group/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ============= Project Group ============= @@ -7,13 +11,13 @@ Project Group !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:0b1c58f8bd55b88d087c90ccf4163aefbb1ff2f5b1e88dd0195b6dd0624756b6 + !! source digest: sha256:d80c6e6c5d23df4b85f0d969f29a4168d71e3fe77c68980ea913055e0e5dfe0b !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |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 +.. |badge2| image:: https://img.shields.io/badge/license-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%2Fproject-lightgray.png?logo=github diff --git a/project_group/static/description/index.html b/project_group/static/description/index.html index f3fdc4c037..ca65cb304f 100644 --- a/project_group/static/description/index.html +++ b/project_group/static/description/index.html @@ -3,7 +3,7 @@ -Project Group +README.rst -
-

Project Group

+
+ + +Odoo Community Association + +
+

Project Group

-

Beta License: AGPL-3 OCA/project Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/project Translate me on Weblate Try me on Runboat

Allows us to define groups directly on projects.

Table of contents

@@ -385,13 +390,13 @@

Project Group

-

Usage

+

Usage

Now, when we use Invited internal users options on visibility, a groups field will appear. Then, all users with access to the project will be able to see project and related tasks.

-

Bug Tracker

+

Bug Tracker

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

Bug Tracker

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

-

Credits

+

Credits

-

Authors

+

Authors

  • Dixmit
-

Contributors

+

Contributors

  • Enric Tobella (Dixmit <https://www.dixmit.com/>__)
-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -426,5 +431,6 @@

Maintainers

+
From 3b90eda1bfdf411668f76301eae8e66a79f241d5 Mon Sep 17 00:00:00 2001 From: Xavier Bol Date: Mon, 23 Mar 2026 23:16:22 +0100 Subject: [PATCH 8/8] [MIG] project_group: Migration to 19.0 --- project_group/README.rst | 11 ++++++----- project_group/__manifest__.py | 4 ++-- project_group/models/project_project.py | 2 +- project_group/readme/CONTRIBUTORS.md | 1 + project_group/security/project_project.xml | 4 ++-- project_group/static/description/index.html | 7 ++++--- project_group/tests/test_project_visibility.py | 12 ++++++------ 7 files changed, 22 insertions(+), 19 deletions(-) diff --git a/project_group/README.rst b/project_group/README.rst index 811aee85cc..27c3229b6b 100644 --- a/project_group/README.rst +++ b/project_group/README.rst @@ -21,13 +21,13 @@ Project Group :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fproject-lightgray.png?logo=github - :target: https://github.com/OCA/project/tree/18.0/project_group + :target: https://github.com/OCA/project/tree/19.0/project_group :alt: OCA/project .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/project-18-0/project-18-0-project_group + :target: https://translation.odoo-community.org/projects/project-19-0/project-19-0-project_group :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/project&target_branch=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/project&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -52,7 +52,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -68,6 +68,7 @@ Contributors ------------ - Enric Tobella (``Dixmit ``\ \_\_) +- Xavier Bol Maintainers ----------- @@ -82,6 +83,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/project `_ project on GitHub. +This module is part of the `OCA/project `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/project_group/__manifest__.py b/project_group/__manifest__.py index 27a997d0bd..c76336e771 100644 --- a/project_group/__manifest__.py +++ b/project_group/__manifest__.py @@ -4,9 +4,9 @@ { "name": "Project Group", "summary": """Add groups for filtering on projects""", - "version": "18.0.1.0.0", + "version": "19.0.1.0.0", "license": "AGPL-3", - "author": "Dixmit,Odoo Community Association (OCA)", + "author": "Dixmit, Odoo Community Association (OCA)", "website": "https://github.com/OCA/project", "depends": ["project"], "data": [ diff --git a/project_group/models/project_project.py b/project_group/models/project_project.py index 729bfdf248..1f1e6b2a81 100644 --- a/project_group/models/project_project.py +++ b/project_group/models/project_project.py @@ -7,4 +7,4 @@ class ProjectProject(models.Model): _inherit = "project.project" - group_ids = fields.Many2many("res.groups") + group_ids = fields.Many2many("res.groups", string="Groups") diff --git a/project_group/readme/CONTRIBUTORS.md b/project_group/readme/CONTRIBUTORS.md index 50d19cd9c0..9a3655f41a 100644 --- a/project_group/readme/CONTRIBUTORS.md +++ b/project_group/readme/CONTRIBUTORS.md @@ -1 +1,2 @@ - Enric Tobella (`Dixmit `__) +- Xavier Bol \<\> diff --git a/project_group/security/project_project.xml b/project_group/security/project_project.xml index 004636b68f..7bbfb19a13 100644 --- a/project_group/security/project_project.xml +++ b/project_group/security/project_project.xml @@ -7,7 +7,7 @@ [ ('privacy_visibility', '=', 'followers'), - ('group_ids', 'in', user.groups_id.ids) + ('group_ids', 'in', user.all_group_ids.ids) ] @@ -18,7 +18,7 @@ [ ('project_id', '!=', False), ('project_id.privacy_visibility', '=', 'followers'), - ('project_id.group_ids', 'in', user.groups_id.ids) + ('project_id.group_ids', 'in', user.all_group_ids.ids) ] diff --git a/project_group/static/description/index.html b/project_group/static/description/index.html index ca65cb304f..e6dba9a50b 100644 --- a/project_group/static/description/index.html +++ b/project_group/static/description/index.html @@ -374,7 +374,7 @@

Project Group

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:d80c6e6c5d23df4b85f0d969f29a4168d71e3fe77c68980ea913055e0e5dfe0b !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/project Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/project Translate me on Weblate Try me on Runboat

Allows us to define groups directly on projects.

Table of contents

@@ -400,7 +400,7 @@

Bug Tracker

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

+feedback.

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

@@ -415,6 +415,7 @@

Authors

Contributors

  • Enric Tobella (Dixmit <https://www.dixmit.com/>__)
  • +
  • Xavier Bol <xavierbol@ik.me>
@@ -426,7 +427,7 @@

Maintainers

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

-

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

+

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

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

diff --git a/project_group/tests/test_project_visibility.py b/project_group/tests/test_project_visibility.py index bcfa96c798..6a8dea12fe 100644 --- a/project_group/tests/test_project_visibility.py +++ b/project_group/tests/test_project_visibility.py @@ -82,17 +82,17 @@ def test_02_access_rights(self): "privacy_visibility should be 'followers' initially", ) - self.project_group_user.write({"groups_id": [Command.set([self.group2.id])]}) + self.project_group_user.write({"group_ids": [Command.set([self.group2.id])]}) self.assertNotIn( - self.project_group_user.id, - self.restricted_project.sudo().mapped("group_ids.users.id"), + self.project_group_user, + self.restricted_project.sudo().group_ids.all_user_ids, "User should not have access", ) - self.project_group_user.write({"groups_id": [Command.set([self.group1.id])]}) + self.project_group_user.write({"group_ids": [Command.set([self.group1.id])]}) self.assertIn( - self.project_group_user.id, - self.restricted_project.sudo().mapped("group_ids.users.id"), + self.project_group_user, + self.restricted_project.sudo().group_ids.all_user_ids, "User should have access", )