From 63464d8a62be38de8db48538dcfd7bade1be1d05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Fri, 31 May 2024 12:29:33 +0200 Subject: [PATCH 01/19] [ADD] document_page_access_group_user_role: New module TT48787 --- .../README.rst | 96 ++++ .../__init__.py | 1 + .../__manifest__.py | 16 + .../document_page_access_group_user_role.pot | 27 ++ .../i18n/es.po | 29 ++ .../models/__init__.py | 3 + .../models/document_page.py | 23 + .../readme/CONTRIBUTORS.rst | 4 + .../readme/DESCRIPTION.rst | 1 + .../readme/USAGE.rst | 5 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 438 ++++++++++++++++++ .../tests/__init__.py | 3 + ...st_document_page_access_group_user_role.py | 30 ++ .../views/document_page_views.xml | 31 ++ 15 files changed, 707 insertions(+) create mode 100644 document_page_access_group_user_role/README.rst create mode 100644 document_page_access_group_user_role/__init__.py create mode 100644 document_page_access_group_user_role/__manifest__.py create mode 100644 document_page_access_group_user_role/i18n/document_page_access_group_user_role.pot create mode 100644 document_page_access_group_user_role/i18n/es.po create mode 100644 document_page_access_group_user_role/models/__init__.py create mode 100644 document_page_access_group_user_role/models/document_page.py create mode 100644 document_page_access_group_user_role/readme/CONTRIBUTORS.rst create mode 100644 document_page_access_group_user_role/readme/DESCRIPTION.rst create mode 100644 document_page_access_group_user_role/readme/USAGE.rst create mode 100644 document_page_access_group_user_role/static/description/icon.png create mode 100644 document_page_access_group_user_role/static/description/index.html create mode 100644 document_page_access_group_user_role/tests/__init__.py create mode 100644 document_page_access_group_user_role/tests/test_document_page_access_group_user_role.py create mode 100644 document_page_access_group_user_role/views/document_page_views.xml diff --git a/document_page_access_group_user_role/README.rst b/document_page_access_group_user_role/README.rst new file mode 100644 index 00000000000..da78eeab3e5 --- /dev/null +++ b/document_page_access_group_user_role/README.rst @@ -0,0 +1,96 @@ +==================================== +Document Page Access Group User Role +==================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:3dfd28474555ec556de2976f5339491a487ac211497f0396b3aa176dc457ec79 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Fknowledge-lightgray.png?logo=github + :target: https://github.com/OCA/knowledge/tree/16.0/document_page_access_group_user_role + :alt: OCA/knowledge +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/knowledge-16-0/knowledge-16-0-document_page_access_group_user_role + :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/knowledge&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +Use of roles (module base_user_role) in Document Pages. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +#. Go to `Settings / Users & Companies / Roles` and create a new one. +#. Go to `Knowledge / Pages` and create or edit one. +#. Set in the "Roles" tab the one we have just created. +#. Go back to the role, edit it and add any group(s). +#. The role groups will have been added in the "Security" tab. + +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 +~~~~~~~ + +* Tecnativa + +Contributors +~~~~~~~~~~~~ + +* `Tecnativa `_: + + * Víctor Martínez + * Pedro M. Baeza + +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-victoralmau| image:: https://github.com/victoralmau.png?size=40px + :target: https://github.com/victoralmau + :alt: victoralmau + +Current `maintainer `__: + +|maintainer-victoralmau| + +This module is part of the `OCA/knowledge `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/document_page_access_group_user_role/__init__.py b/document_page_access_group_user_role/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/document_page_access_group_user_role/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/document_page_access_group_user_role/__manifest__.py b/document_page_access_group_user_role/__manifest__.py new file mode 100644 index 00000000000..45f5a0fc22c --- /dev/null +++ b/document_page_access_group_user_role/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright 2024 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Document Page Access Group User Role", + "author": "Tecnativa, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/knowledge", + "version": "16.0.1.0.0", + "depends": ["document_page_access_group", "base_user_role"], + "license": "AGPL-3", + "category": "Knowledge", + "data": [ + "views/document_page_views.xml", + ], + "installable": True, + "maintainers": ["victoralmau"], +} diff --git a/document_page_access_group_user_role/i18n/document_page_access_group_user_role.pot b/document_page_access_group_user_role/i18n/document_page_access_group_user_role.pot new file mode 100644 index 00000000000..b2c7f394160 --- /dev/null +++ b/document_page_access_group_user_role/i18n/document_page_access_group_user_role.pot @@ -0,0 +1,27 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * document_page_access_group_user_role +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-31 10:50+0000\n" +"PO-Revision-Date: 2024-05-31 10:50+0000\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: document_page_access_group_user_role +#: model:ir.model,name:document_page_access_group_user_role.model_document_page +msgid "Document Page" +msgstr "" + +#. module: document_page_access_group_user_role +#: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__role_ids +#: model_terms:ir.ui.view,arch_db:document_page_access_group_user_role.document_page_access_group_view_wiki_form +msgid "Roles" +msgstr "" diff --git a/document_page_access_group_user_role/i18n/es.po b/document_page_access_group_user_role/i18n/es.po new file mode 100644 index 00000000000..4dd81ee1e5c --- /dev/null +++ b/document_page_access_group_user_role/i18n/es.po @@ -0,0 +1,29 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * document_page_access_group_user_role +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-05-31 10:50+0000\n" +"PO-Revision-Date: 2024-05-31 12:51+0200\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"X-Generator: Poedit 3.0.1\n" + +#. module: document_page_access_group_user_role +#: model:ir.model,name:document_page_access_group_user_role.model_document_page +msgid "Document Page" +msgstr "Página del documento" + +#. module: document_page_access_group_user_role +#: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__role_ids +#: model_terms:ir.ui.view,arch_db:document_page_access_group_user_role.document_page_access_group_view_wiki_form +msgid "Roles" +msgstr "Roles" diff --git a/document_page_access_group_user_role/models/__init__.py b/document_page_access_group_user_role/models/__init__.py new file mode 100644 index 00000000000..14612b52296 --- /dev/null +++ b/document_page_access_group_user_role/models/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import document_page diff --git a/document_page_access_group_user_role/models/document_page.py b/document_page_access_group_user_role/models/document_page.py new file mode 100644 index 00000000000..f9bf89cfc3c --- /dev/null +++ b/document_page_access_group_user_role/models/document_page.py @@ -0,0 +1,23 @@ +# Copyright 2024 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models + + +class DocumentPage(models.Model): + _inherit = "document.page" + + groups_id = fields.Many2many(compute="_compute_groups_id", store=True) + role_ids = fields.Many2many( + comodel_name="res.users.role", + relation="document_page_user_roles_rel", + column1="page_id", + column2="role_id", + string="Roles", + ) + + @api.depends("role_ids", "role_ids.implied_ids") + def _compute_groups_id(self): + """Create a compute to auto-set all the groups of the related roles.""" + for item in self: + item.groups_id = item.mapped("role_ids.implied_ids") diff --git a/document_page_access_group_user_role/readme/CONTRIBUTORS.rst b/document_page_access_group_user_role/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000000..5fb71305308 --- /dev/null +++ b/document_page_access_group_user_role/readme/CONTRIBUTORS.rst @@ -0,0 +1,4 @@ +* `Tecnativa `_: + + * Víctor Martínez + * Pedro M. Baeza diff --git a/document_page_access_group_user_role/readme/DESCRIPTION.rst b/document_page_access_group_user_role/readme/DESCRIPTION.rst new file mode 100644 index 00000000000..cceffd15171 --- /dev/null +++ b/document_page_access_group_user_role/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +Use of roles (module base_user_role) in Document Pages. diff --git a/document_page_access_group_user_role/readme/USAGE.rst b/document_page_access_group_user_role/readme/USAGE.rst new file mode 100644 index 00000000000..568c9352f98 --- /dev/null +++ b/document_page_access_group_user_role/readme/USAGE.rst @@ -0,0 +1,5 @@ +#. Go to `Settings / Users & Companies / Roles` and create a new one. +#. Go to `Knowledge / Pages` and create or edit one. +#. Set in the "Roles" tab the one we have just created. +#. Go back to the role, edit it and add any group(s). +#. The role groups will have been added in the "Security" tab. diff --git a/document_page_access_group_user_role/static/description/icon.png b/document_page_access_group_user_role/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/document_page_access_group_user_role/static/description/index.html b/document_page_access_group_user_role/static/description/index.html new file mode 100644 index 00000000000..60c98a6a493 --- /dev/null +++ b/document_page_access_group_user_role/static/description/index.html @@ -0,0 +1,438 @@ + + + + + + +Document Page Access Group User Role + + + +
+

Document Page Access Group User Role

+ + +

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

+

Use of roles (module base_user_role) in Document Pages.

+

Table of contents

+ +
+

Usage

+
    +
  1. Go to Settings / Users & Companies / Roles and create a new one.
  2. +
  3. Go to Knowledge / Pages and create or edit one.
  4. +
  5. Set in the “Roles” tab the one we have just created.
  6. +
  7. Go back to the role, edit it and add any group(s).
  8. +
  9. The role groups will have been added in the “Security” tab.
  10. +
+
+
+

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

+
    +
  • Tecnativa
  • +
+
+
+

Contributors

+
    +
  • Tecnativa:
      +
    • Víctor Martínez
    • +
    • Pedro M. Baeza
    • +
    +
  • +
+
+
+

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:

+

victoralmau

+

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

+

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

+
+
+
+ + diff --git a/document_page_access_group_user_role/tests/__init__.py b/document_page_access_group_user_role/tests/__init__.py new file mode 100644 index 00000000000..60b3604408d --- /dev/null +++ b/document_page_access_group_user_role/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from . import test_document_page_access_group_user_role diff --git a/document_page_access_group_user_role/tests/test_document_page_access_group_user_role.py b/document_page_access_group_user_role/tests/test_document_page_access_group_user_role.py new file mode 100644 index 00000000000..f830ee1d4ce --- /dev/null +++ b/document_page_access_group_user_role/tests/test_document_page_access_group_user_role.py @@ -0,0 +1,30 @@ +# Copyright 2024 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.addons.base.tests.common import BaseCommon + + +class TestDocumentPageAccessGroupUserRole(BaseCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.page = cls.env["document.page"].create( + {"name": "Page 1", "type": "content"} + ) + cls.group_a = cls.env["res.groups"].create({"name": "Test group A"}) + cls.group_b = cls.env["res.groups"].create({"name": "Test group B"}) + cls.user_role = cls.env["res.users.role"].create( + {"name": "Test role", "implied_ids": [(6, 0, [cls.group_a.id])]} + ) + + def test_document_page_role(self): + self.assertFalse(self.page.groups_id) + self.page.role_ids = [(4, self.user_role.id)] + self.assertIn(self.group_a, self.page.groups_id) + self.assertNotIn(self.group_b, self.page.groups_id) + self.user_role.implied_ids = [(4, self.group_b.id)] + self.assertIn(self.group_a, self.page.groups_id) + self.assertIn(self.group_b, self.page.groups_id) + self.page.role_ids = [(6, 0, [])] + self.assertNotIn(self.group_a, self.page.groups_id) + self.assertNotIn(self.group_b, self.page.groups_id) diff --git a/document_page_access_group_user_role/views/document_page_views.xml b/document_page_access_group_user_role/views/document_page_views.xml new file mode 100644 index 00000000000..2a0fe5ae7f9 --- /dev/null +++ b/document_page_access_group_user_role/views/document_page_views.xml @@ -0,0 +1,31 @@ + + + + document.page.form + document.page + + + + + + + + + + + + + + + + + {'readonly': [('role_ids', '!=', [])]} + + + + From 16fe8a9f52242e5981549be0b1957967b56dc879 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Fri, 7 Jun 2024 08:50:30 +0000 Subject: [PATCH 02/19] [UPD] Update document_page_access_group_user_role.pot --- .../i18n/document_page_access_group_user_role.pot | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/document_page_access_group_user_role/i18n/document_page_access_group_user_role.pot b/document_page_access_group_user_role/i18n/document_page_access_group_user_role.pot index b2c7f394160..ec2750fbdfd 100644 --- a/document_page_access_group_user_role/i18n/document_page_access_group_user_role.pot +++ b/document_page_access_group_user_role/i18n/document_page_access_group_user_role.pot @@ -6,8 +6,6 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-05-31 10:50+0000\n" -"PO-Revision-Date: 2024-05-31 10:50+0000\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -20,6 +18,11 @@ msgstr "" msgid "Document Page" msgstr "" +#. module: document_page_access_group_user_role +#: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__groups_id +msgid "Groups" +msgstr "" + #. module: document_page_access_group_user_role #: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__role_ids #: model_terms:ir.ui.view,arch_db:document_page_access_group_user_role.document_page_access_group_view_wiki_form From 15671681850abc6f3ab1610a939c834cd4888452 Mon Sep 17 00:00:00 2001 From: Weblate Date: Fri, 7 Jun 2024 15:14:46 +0000 Subject: [PATCH 03/19] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: knowledge-16.0/knowledge-16.0-document_page_access_group_user_role Translate-URL: https://translation.odoo-community.org/projects/knowledge-16-0/knowledge-16-0-document_page_access_group_user_role/ --- document_page_access_group_user_role/i18n/es.po | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/document_page_access_group_user_role/i18n/es.po b/document_page_access_group_user_role/i18n/es.po index 4dd81ee1e5c..4af1f54b6b5 100644 --- a/document_page_access_group_user_role/i18n/es.po +++ b/document_page_access_group_user_role/i18n/es.po @@ -22,6 +22,11 @@ msgstr "" msgid "Document Page" msgstr "Página del documento" +#. module: document_page_access_group_user_role +#: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__groups_id +msgid "Groups" +msgstr "" + #. module: document_page_access_group_user_role #: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__role_ids #: model_terms:ir.ui.view,arch_db:document_page_access_group_user_role.document_page_access_group_view_wiki_form From 7ca6ff9419f5457c056655d3f5f23f4eecc9bc0e Mon Sep 17 00:00:00 2001 From: mymage Date: Wed, 12 Jun 2024 19:24:20 +0000 Subject: [PATCH 04/19] Added translation using Weblate (Italian) --- .../i18n/it.po | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 document_page_access_group_user_role/i18n/it.po diff --git a/document_page_access_group_user_role/i18n/it.po b/document_page_access_group_user_role/i18n/it.po new file mode 100644 index 00000000000..f3ef543d53d --- /dev/null +++ b/document_page_access_group_user_role/i18n/it.po @@ -0,0 +1,31 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * document_page_access_group_user_role +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\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" + +#. module: document_page_access_group_user_role +#: model:ir.model,name:document_page_access_group_user_role.model_document_page +msgid "Document Page" +msgstr "" + +#. module: document_page_access_group_user_role +#: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__groups_id +msgid "Groups" +msgstr "" + +#. module: document_page_access_group_user_role +#: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__role_ids +#: model_terms:ir.ui.view,arch_db:document_page_access_group_user_role.document_page_access_group_view_wiki_form +msgid "Roles" +msgstr "" From 5ad25983125b23e23c93cd4ed7df7d1541109fe7 Mon Sep 17 00:00:00 2001 From: mymage Date: Fri, 14 Jun 2024 15:10:23 +0000 Subject: [PATCH 05/19] Translated using Weblate (Italian) Currently translated at 100.0% (3 of 3 strings) Translation: knowledge-16.0/knowledge-16.0-document_page_access_group_user_role Translate-URL: https://translation.odoo-community.org/projects/knowledge-16-0/knowledge-16-0-document_page_access_group_user_role/it/ --- document_page_access_group_user_role/i18n/it.po | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/document_page_access_group_user_role/i18n/it.po b/document_page_access_group_user_role/i18n/it.po index f3ef543d53d..bef472f14b6 100644 --- a/document_page_access_group_user_role/i18n/it.po +++ b/document_page_access_group_user_role/i18n/it.po @@ -6,26 +6,28 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2024-06-14 17:39+0000\n" +"Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" #. module: document_page_access_group_user_role #: model:ir.model,name:document_page_access_group_user_role.model_document_page msgid "Document Page" -msgstr "" +msgstr "Pagina documento" #. module: document_page_access_group_user_role #: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__groups_id msgid "Groups" -msgstr "" +msgstr "Gruppi" #. module: document_page_access_group_user_role #: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__role_ids #: model_terms:ir.ui.view,arch_db:document_page_access_group_user_role.document_page_access_group_view_wiki_form msgid "Roles" -msgstr "" +msgstr "Ruoli" From 643db05acb7efad5caf6e5a22a9de7ebd6097910 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Rom=C3=A3o?= Date: Sat, 27 Jul 2024 03:03:35 +0000 Subject: [PATCH 06/19] Added translation using Weblate (Portuguese) --- .../i18n/pt.po | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 document_page_access_group_user_role/i18n/pt.po diff --git a/document_page_access_group_user_role/i18n/pt.po b/document_page_access_group_user_role/i18n/pt.po new file mode 100644 index 00000000000..bb8eaf33a02 --- /dev/null +++ b/document_page_access_group_user_role/i18n/pt.po @@ -0,0 +1,31 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * document_page_access_group_user_role +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.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: document_page_access_group_user_role +#: model:ir.model,name:document_page_access_group_user_role.model_document_page +msgid "Document Page" +msgstr "" + +#. module: document_page_access_group_user_role +#: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__groups_id +msgid "Groups" +msgstr "" + +#. module: document_page_access_group_user_role +#: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__role_ids +#: model_terms:ir.ui.view,arch_db:document_page_access_group_user_role.document_page_access_group_view_wiki_form +msgid "Roles" +msgstr "" From be66853bef29a3bf37a755c2000a6ee2170b74d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Rom=C3=A3o?= Date: Sat, 27 Jul 2024 03:03:58 +0000 Subject: [PATCH 07/19] Translated using Weblate (Portuguese) Currently translated at 100.0% (3 of 3 strings) Translation: knowledge-16.0/knowledge-16.0-document_page_access_group_user_role Translate-URL: https://translation.odoo-community.org/projects/knowledge-16-0/knowledge-16-0-document_page_access_group_user_role/pt/ --- document_page_access_group_user_role/i18n/pt.po | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/document_page_access_group_user_role/i18n/pt.po b/document_page_access_group_user_role/i18n/pt.po index bb8eaf33a02..cf55b1d18ca 100644 --- a/document_page_access_group_user_role/i18n/pt.po +++ b/document_page_access_group_user_role/i18n/pt.po @@ -6,26 +6,28 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2024-07-27 04:58+0000\n" +"Last-Translator: Peter Romão \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 5.6.2\n" #. module: document_page_access_group_user_role #: model:ir.model,name:document_page_access_group_user_role.model_document_page msgid "Document Page" -msgstr "" +msgstr "Página do Documento" #. module: document_page_access_group_user_role #: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__groups_id msgid "Groups" -msgstr "" +msgstr "Grupos" #. module: document_page_access_group_user_role #: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__role_ids #: model_terms:ir.ui.view,arch_db:document_page_access_group_user_role.document_page_access_group_view_wiki_form msgid "Roles" -msgstr "" +msgstr "Papéis" From cc2193a0a186489d79a7080a07e5a2ae858f90fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mart=C3=ADnez?= Date: Wed, 24 Jul 2024 08:55:20 +0200 Subject: [PATCH 08/19] [IMP] document_page_access_group_user_role: Users compatibility TT48786 --- .../README.rst | 2 +- .../__manifest__.py | 2 +- .../migrations/16.0.1.1.0/post-migration.py | 13 +++++ .../models/document_page.py | 10 ++-- .../readme/USAGE.rst | 2 +- .../static/description/index.html | 3 +- ...st_document_page_access_group_user_role.py | 55 ++++++++++++------- .../views/document_page_views.xml | 23 ++++---- 8 files changed, 68 insertions(+), 42 deletions(-) create mode 100644 document_page_access_group_user_role/migrations/16.0.1.1.0/post-migration.py diff --git a/document_page_access_group_user_role/README.rst b/document_page_access_group_user_role/README.rst index da78eeab3e5..8b160bc9fc7 100644 --- a/document_page_access_group_user_role/README.rst +++ b/document_page_access_group_user_role/README.rst @@ -42,7 +42,7 @@ Usage #. Go to `Knowledge / Pages` and create or edit one. #. Set in the "Roles" tab the one we have just created. #. Go back to the role, edit it and add any group(s). -#. The role groups will have been added in the "Security" tab. +#. The role users will have been added in the "Security" tab. Bug Tracker =========== diff --git a/document_page_access_group_user_role/__manifest__.py b/document_page_access_group_user_role/__manifest__.py index 45f5a0fc22c..54a075cb804 100644 --- a/document_page_access_group_user_role/__manifest__.py +++ b/document_page_access_group_user_role/__manifest__.py @@ -4,7 +4,7 @@ "name": "Document Page Access Group User Role", "author": "Tecnativa, Odoo Community Association (OCA)", "website": "https://github.com/OCA/knowledge", - "version": "16.0.1.0.0", + "version": "16.0.1.1.0", "depends": ["document_page_access_group", "base_user_role"], "license": "AGPL-3", "category": "Knowledge", diff --git a/document_page_access_group_user_role/migrations/16.0.1.1.0/post-migration.py b/document_page_access_group_user_role/migrations/16.0.1.1.0/post-migration.py new file mode 100644 index 00000000000..20d0931838b --- /dev/null +++ b/document_page_access_group_user_role/migrations/16.0.1.1.0/post-migration.py @@ -0,0 +1,13 @@ +# Copyright 2024 Tecnativa - Víctor Martínez +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from openupgradelib import openupgrade + + +@openupgrade.migrate() +def migrate(env, version): + """Pages that had roles should now have the correct users.""" + pages = env["document.page"].sudo().search([("role_ids", "!=", False)]) + for page in pages: + users = page.mapped("role_ids.users") + page.role_ids = False + page.user_ids = users diff --git a/document_page_access_group_user_role/models/document_page.py b/document_page_access_group_user_role/models/document_page.py index f9bf89cfc3c..a4db0ed05cd 100644 --- a/document_page_access_group_user_role/models/document_page.py +++ b/document_page_access_group_user_role/models/document_page.py @@ -7,7 +7,7 @@ class DocumentPage(models.Model): _inherit = "document.page" - groups_id = fields.Many2many(compute="_compute_groups_id", store=True) + user_ids = fields.Many2many(compute="_compute_user_ids", store=True, readonly=False) role_ids = fields.Many2many( comodel_name="res.users.role", relation="document_page_user_roles_rel", @@ -16,8 +16,8 @@ class DocumentPage(models.Model): string="Roles", ) - @api.depends("role_ids", "role_ids.implied_ids") - def _compute_groups_id(self): - """Create a compute to auto-set all the groups of the related roles.""" + @api.depends("role_ids", "role_ids.users") + def _compute_user_ids(self): + """Create a compute to auto-set all the users of the related roles.""" for item in self: - item.groups_id = item.mapped("role_ids.implied_ids") + item.user_ids += item.mapped("role_ids.users") diff --git a/document_page_access_group_user_role/readme/USAGE.rst b/document_page_access_group_user_role/readme/USAGE.rst index 568c9352f98..4d593dcabd3 100644 --- a/document_page_access_group_user_role/readme/USAGE.rst +++ b/document_page_access_group_user_role/readme/USAGE.rst @@ -2,4 +2,4 @@ #. Go to `Knowledge / Pages` and create or edit one. #. Set in the "Roles" tab the one we have just created. #. Go back to the role, edit it and add any group(s). -#. The role groups will have been added in the "Security" tab. +#. The role users will have been added in the "Security" tab. diff --git a/document_page_access_group_user_role/static/description/index.html b/document_page_access_group_user_role/static/description/index.html index 60c98a6a493..f725f4beb2c 100644 --- a/document_page_access_group_user_role/static/description/index.html +++ b/document_page_access_group_user_role/static/description/index.html @@ -1,4 +1,3 @@ - @@ -391,7 +390,7 @@

Usage

  • Go to Knowledge / Pages and create or edit one.
  • Set in the “Roles” tab the one we have just created.
  • Go back to the role, edit it and add any group(s).
  • -
  • The role groups will have been added in the “Security” tab.
  • +
  • The role users will have been added in the “Security” tab.
  • diff --git a/document_page_access_group_user_role/tests/test_document_page_access_group_user_role.py b/document_page_access_group_user_role/tests/test_document_page_access_group_user_role.py index f830ee1d4ce..777e2eaa24f 100644 --- a/document_page_access_group_user_role/tests/test_document_page_access_group_user_role.py +++ b/document_page_access_group_user_role/tests/test_document_page_access_group_user_role.py @@ -1,30 +1,47 @@ # Copyright 2024 Tecnativa - Víctor Martínez # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +from odoo.tests.common import users -from odoo.addons.base.tests.common import BaseCommon +from odoo.addons.document_page_access_group.tests.common import ( + TestDocumentPageAccessGroupBase, +) -class TestDocumentPageAccessGroupUserRole(BaseCommon): +class TestDocumentPageAccessGroupUserRole(TestDocumentPageAccessGroupBase): @classmethod def setUpClass(cls): super().setUpClass() - cls.page = cls.env["document.page"].create( - {"name": "Page 1", "type": "content"} - ) - cls.group_a = cls.env["res.groups"].create({"name": "Test group A"}) - cls.group_b = cls.env["res.groups"].create({"name": "Test group B"}) cls.user_role = cls.env["res.users.role"].create( - {"name": "Test role", "implied_ids": [(6, 0, [cls.group_a.id])]} + { + "name": "Test role", + "implied_ids": [(6, 0, [cls.group.id])], + "users": [(6, 0, [cls.manager_user.id])], + } + ) + cls.role_page = cls.env["document.page"].create( + { + "name": "Role Page (test role)", + "type": "content", + "role_ids": [(6, 0, [cls.user_role.id])], + } ) - def test_document_page_role(self): - self.assertFalse(self.page.groups_id) - self.page.role_ids = [(4, self.user_role.id)] - self.assertIn(self.group_a, self.page.groups_id) - self.assertNotIn(self.group_b, self.page.groups_id) - self.user_role.implied_ids = [(4, self.group_b.id)] - self.assertIn(self.group_a, self.page.groups_id) - self.assertIn(self.group_b, self.page.groups_id) - self.page.role_ids = [(6, 0, [])] - self.assertNotIn(self.group_a, self.page.groups_id) - self.assertNotIn(self.group_b, self.page.groups_id) + def test_document_page_role_misc(self): + self.assertFalse(self.role_page.groups_id) + self.assertTrue(self.role_page.user_ids) + + @users("test-user") + def test_document_page_role_access_01(self): + pages = self.env["document.page"].search([]) + self.assertIn(self.public_page, pages) + self.assertNotIn(self.knowledge_page, pages) + self.assertIn(self.user_page, pages) + self.assertNotIn(self.role_page, pages) + + @users("test-manager-user") + def test_document_page_role_access_02(self): + pages = self.env["document.page"].search([]) + self.assertIn(self.public_page, pages) + self.assertIn(self.knowledge_page, pages) + self.assertNotIn(self.user_page, pages) + self.assertIn(self.role_page, pages) diff --git a/document_page_access_group_user_role/views/document_page_views.xml b/document_page_access_group_user_role/views/document_page_views.xml index 2a0fe5ae7f9..555062923e0 100644 --- a/document_page_access_group_user_role/views/document_page_views.xml +++ b/document_page_access_group_user_role/views/document_page_views.xml @@ -8,24 +8,21 @@ ref="document_page_access_group.document_page_access_group_view_wiki_form" /> - - - + + + - - - - - - - {'readonly': [('role_ids', '!=', [])]} - + + From a8d691bf8848a1db14b1e668a1855883c76773bc Mon Sep 17 00:00:00 2001 From: oca-ci Date: Mon, 5 Aug 2024 17:49:04 +0000 Subject: [PATCH 09/19] [UPD] Update document_page_access_group_user_role.pot --- .../i18n/document_page_access_group_user_role.pot | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/document_page_access_group_user_role/i18n/document_page_access_group_user_role.pot b/document_page_access_group_user_role/i18n/document_page_access_group_user_role.pot index ec2750fbdfd..e2b80e08541 100644 --- a/document_page_access_group_user_role/i18n/document_page_access_group_user_role.pot +++ b/document_page_access_group_user_role/i18n/document_page_access_group_user_role.pot @@ -18,13 +18,13 @@ msgstr "" msgid "Document Page" msgstr "" -#. module: document_page_access_group_user_role -#: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__groups_id -msgid "Groups" -msgstr "" - #. module: document_page_access_group_user_role #: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__role_ids #: model_terms:ir.ui.view,arch_db:document_page_access_group_user_role.document_page_access_group_view_wiki_form msgid "Roles" msgstr "" + +#. module: document_page_access_group_user_role +#: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__user_ids +msgid "Users" +msgstr "" From ae1da1f416ec65494b57976bf7d1afa62eec4784 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 5 Aug 2024 17:51:12 +0000 Subject: [PATCH 10/19] [BOT] post-merge updates --- document_page_access_group_user_role/README.rst | 2 +- .../static/description/index.html | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/document_page_access_group_user_role/README.rst b/document_page_access_group_user_role/README.rst index 8b160bc9fc7..bfa4a241f6d 100644 --- a/document_page_access_group_user_role/README.rst +++ b/document_page_access_group_user_role/README.rst @@ -7,7 +7,7 @@ Document Page Access Group User Role !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:3dfd28474555ec556de2976f5339491a487ac211497f0396b3aa176dc457ec79 + !! source digest: sha256:bdf60e5b16d9c0c2dbecaa0d26f451b4bfed4319ed1b1f884d4797ec0ff30faf !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/document_page_access_group_user_role/static/description/index.html b/document_page_access_group_user_role/static/description/index.html index f725f4beb2c..fbce83e6cd0 100644 --- a/document_page_access_group_user_role/static/description/index.html +++ b/document_page_access_group_user_role/static/description/index.html @@ -8,10 +8,11 @@ /* :Author: David Goodger (goodger@python.org) -:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ +:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. +Despite the name, some widely supported CSS2 features are used. See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to customize this style sheet. @@ -274,7 +275,7 @@ margin-left: 2em ; margin-right: 2em } -pre.code .ln { color: grey; } /* line numbers */ +pre.code .ln { color: gray; } /* line numbers */ pre.code, code { background-color: #eeeeee } pre.code .comment, code .comment { color: #5C6576 } pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold } @@ -300,7 +301,7 @@ span.pre { white-space: pre } -span.problematic { +span.problematic, pre.problematic { color: red } span.section-subtitle { @@ -366,7 +367,7 @@

    Document Page Access Group User Role

    !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:3dfd28474555ec556de2976f5339491a487ac211497f0396b3aa176dc457ec79 +!! source digest: sha256:bdf60e5b16d9c0c2dbecaa0d26f451b4bfed4319ed1b1f884d4797ec0ff30faf !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

    Use of roles (module base_user_role) in Document Pages.

    @@ -422,7 +423,9 @@

    Contributors

    Maintainers

    This module is maintained by the OCA.

    -Odoo Community Association + +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.

    From 1058ec027bf65929c9137c41db89793f9838b559 Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 5 Aug 2024 17:51:20 +0000 Subject: [PATCH 11/19] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: knowledge-16.0/knowledge-16.0-document_page_access_group_user_role Translate-URL: https://translation.odoo-community.org/projects/knowledge-16-0/knowledge-16-0-document_page_access_group_user_role/ --- document_page_access_group_user_role/i18n/es.po | 10 +++++----- document_page_access_group_user_role/i18n/it.po | 13 ++++++++----- document_page_access_group_user_role/i18n/pt.po | 13 ++++++++----- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/document_page_access_group_user_role/i18n/es.po b/document_page_access_group_user_role/i18n/es.po index 4af1f54b6b5..ec752f89cc1 100644 --- a/document_page_access_group_user_role/i18n/es.po +++ b/document_page_access_group_user_role/i18n/es.po @@ -22,13 +22,13 @@ msgstr "" msgid "Document Page" msgstr "Página del documento" -#. module: document_page_access_group_user_role -#: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__groups_id -msgid "Groups" -msgstr "" - #. module: document_page_access_group_user_role #: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__role_ids #: model_terms:ir.ui.view,arch_db:document_page_access_group_user_role.document_page_access_group_view_wiki_form msgid "Roles" msgstr "Roles" + +#. module: document_page_access_group_user_role +#: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__user_ids +msgid "Users" +msgstr "" diff --git a/document_page_access_group_user_role/i18n/it.po b/document_page_access_group_user_role/i18n/it.po index bef472f14b6..fbd3e7edf97 100644 --- a/document_page_access_group_user_role/i18n/it.po +++ b/document_page_access_group_user_role/i18n/it.po @@ -21,13 +21,16 @@ msgstr "" msgid "Document Page" msgstr "Pagina documento" -#. module: document_page_access_group_user_role -#: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__groups_id -msgid "Groups" -msgstr "Gruppi" - #. module: document_page_access_group_user_role #: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__role_ids #: model_terms:ir.ui.view,arch_db:document_page_access_group_user_role.document_page_access_group_view_wiki_form msgid "Roles" msgstr "Ruoli" + +#. module: document_page_access_group_user_role +#: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__user_ids +msgid "Users" +msgstr "" + +#~ msgid "Groups" +#~ msgstr "Gruppi" diff --git a/document_page_access_group_user_role/i18n/pt.po b/document_page_access_group_user_role/i18n/pt.po index cf55b1d18ca..f1b0c4fbfe5 100644 --- a/document_page_access_group_user_role/i18n/pt.po +++ b/document_page_access_group_user_role/i18n/pt.po @@ -21,13 +21,16 @@ msgstr "" msgid "Document Page" msgstr "Página do Documento" -#. module: document_page_access_group_user_role -#: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__groups_id -msgid "Groups" -msgstr "Grupos" - #. module: document_page_access_group_user_role #: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__role_ids #: model_terms:ir.ui.view,arch_db:document_page_access_group_user_role.document_page_access_group_view_wiki_form msgid "Roles" msgstr "Papéis" + +#. module: document_page_access_group_user_role +#: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__user_ids +msgid "Users" +msgstr "" + +#~ msgid "Groups" +#~ msgstr "Grupos" From 8c260a9d9120d00953f0b4132b4ee545b8bf932c Mon Sep 17 00:00:00 2001 From: mymage Date: Mon, 12 Aug 2024 06:55:55 +0000 Subject: [PATCH 12/19] Translated using Weblate (Italian) Currently translated at 100.0% (3 of 3 strings) Translation: knowledge-16.0/knowledge-16.0-document_page_access_group_user_role Translate-URL: https://translation.odoo-community.org/projects/knowledge-16-0/knowledge-16-0-document_page_access_group_user_role/it/ --- document_page_access_group_user_role/i18n/it.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/document_page_access_group_user_role/i18n/it.po b/document_page_access_group_user_role/i18n/it.po index fbd3e7edf97..9118c3e5489 100644 --- a/document_page_access_group_user_role/i18n/it.po +++ b/document_page_access_group_user_role/i18n/it.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-06-14 17:39+0000\n" +"PO-Revision-Date: 2024-08-12 08:58+0000\n" "Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" @@ -14,7 +14,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.17\n" +"X-Generator: Weblate 5.6.2\n" #. module: document_page_access_group_user_role #: model:ir.model,name:document_page_access_group_user_role.model_document_page @@ -30,7 +30,7 @@ msgstr "Ruoli" #. module: document_page_access_group_user_role #: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__user_ids msgid "Users" -msgstr "" +msgstr "Utenti" #~ msgid "Groups" #~ msgstr "Gruppi" From b01b3458e76b0704f3e2b85d026246332f5350dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Rom=C3=A3o?= Date: Tue, 4 Feb 2025 17:11:02 +0000 Subject: [PATCH 13/19] Translated using Weblate (Portuguese) Currently translated at 100.0% (3 of 3 strings) Translation: knowledge-16.0/knowledge-16.0-document_page_access_group_user_role Translate-URL: https://translation.odoo-community.org/projects/knowledge-16-0/knowledge-16-0-document_page_access_group_user_role/pt/ --- document_page_access_group_user_role/i18n/pt.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/document_page_access_group_user_role/i18n/pt.po b/document_page_access_group_user_role/i18n/pt.po index f1b0c4fbfe5..2b226f062ea 100644 --- a/document_page_access_group_user_role/i18n/pt.po +++ b/document_page_access_group_user_role/i18n/pt.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2024-07-27 04:58+0000\n" +"PO-Revision-Date: 2025-02-04 17:11+0000\n" "Last-Translator: Peter Romão \n" "Language-Team: none\n" "Language: pt\n" @@ -30,7 +30,7 @@ msgstr "Papéis" #. module: document_page_access_group_user_role #: model:ir.model.fields,field_description:document_page_access_group_user_role.field_document_page__user_ids msgid "Users" -msgstr "" +msgstr "Utilizadores" #~ msgid "Groups" #~ msgstr "Grupos" From 2014266c03b1c9d85628b56513098d67f880a548 Mon Sep 17 00:00:00 2001 From: Anusha Date: Thu, 8 May 2025 11:12:34 +0200 Subject: [PATCH 14/19] [IMP] document_page_access_group_user_role: pre-commit auto fixes --- .../README.rst | 32 +++++++++---------- .../pyproject.toml | 3 ++ .../readme/CONTRIBUTORS.md | 3 ++ .../readme/CONTRIBUTORS.rst | 4 --- .../{DESCRIPTION.rst => DESCRIPTION.md} | 0 .../readme/USAGE.md | 5 +++ .../readme/USAGE.rst | 5 --- .../static/description/index.html | 10 +++--- 8 files changed, 32 insertions(+), 30 deletions(-) create mode 100644 document_page_access_group_user_role/pyproject.toml create mode 100644 document_page_access_group_user_role/readme/CONTRIBUTORS.md delete mode 100644 document_page_access_group_user_role/readme/CONTRIBUTORS.rst rename document_page_access_group_user_role/readme/{DESCRIPTION.rst => DESCRIPTION.md} (100%) create mode 100644 document_page_access_group_user_role/readme/USAGE.md delete mode 100644 document_page_access_group_user_role/readme/USAGE.rst diff --git a/document_page_access_group_user_role/README.rst b/document_page_access_group_user_role/README.rst index bfa4a241f6d..642d3011cff 100644 --- a/document_page_access_group_user_role/README.rst +++ b/document_page_access_group_user_role/README.rst @@ -17,13 +17,13 @@ Document Page Access Group User Role :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github - :target: https://github.com/OCA/knowledge/tree/16.0/document_page_access_group_user_role + :target: https://github.com/OCA/knowledge/tree/18.0/document_page_access_group_user_role :alt: OCA/knowledge .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/knowledge-16-0/knowledge-16-0-document_page_access_group_user_role + :target: https://translation.odoo-community.org/projects/knowledge-18-0/knowledge-18-0-document_page_access_group_user_role :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/knowledge&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/knowledge&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -38,11 +38,11 @@ Use of roles (module base_user_role) in Document Pages. Usage ===== -#. Go to `Settings / Users & Companies / Roles` and create a new one. -#. Go to `Knowledge / Pages` and create or edit one. -#. Set in the "Roles" tab the one we have just created. -#. Go back to the role, edit it and add any group(s). -#. The role users will have been added in the "Security" tab. +1. Go to Settings / Users & Companies / Roles and create a new one. +2. Go to Knowledge / Pages and create or edit one. +3. Set in the "Roles" tab the one we have just created. +4. Go back to the role, edit it and add any group(s). +5. The role users will have been added in the "Security" tab. Bug Tracker =========== @@ -50,7 +50,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. @@ -58,20 +58,20 @@ Credits ======= Authors -~~~~~~~ +------- * Tecnativa Contributors -~~~~~~~~~~~~ +------------ -* `Tecnativa `_: +- `Tecnativa `__: - * Víctor Martínez - * Pedro M. Baeza + - Víctor Martínez + - Pedro M. Baeza Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -91,6 +91,6 @@ Current `maintainer `__: |maintainer-victoralmau| -This module is part of the `OCA/knowledge `_ project on GitHub. +This module is part of the `OCA/knowledge `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/document_page_access_group_user_role/pyproject.toml b/document_page_access_group_user_role/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/document_page_access_group_user_role/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/document_page_access_group_user_role/readme/CONTRIBUTORS.md b/document_page_access_group_user_role/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..5fee3904270 --- /dev/null +++ b/document_page_access_group_user_role/readme/CONTRIBUTORS.md @@ -0,0 +1,3 @@ +- [Tecnativa](https://www.tecnativa.com): + - Víctor Martínez + - Pedro M. Baeza diff --git a/document_page_access_group_user_role/readme/CONTRIBUTORS.rst b/document_page_access_group_user_role/readme/CONTRIBUTORS.rst deleted file mode 100644 index 5fb71305308..00000000000 --- a/document_page_access_group_user_role/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1,4 +0,0 @@ -* `Tecnativa `_: - - * Víctor Martínez - * Pedro M. Baeza diff --git a/document_page_access_group_user_role/readme/DESCRIPTION.rst b/document_page_access_group_user_role/readme/DESCRIPTION.md similarity index 100% rename from document_page_access_group_user_role/readme/DESCRIPTION.rst rename to document_page_access_group_user_role/readme/DESCRIPTION.md diff --git a/document_page_access_group_user_role/readme/USAGE.md b/document_page_access_group_user_role/readme/USAGE.md new file mode 100644 index 00000000000..a60aa288a05 --- /dev/null +++ b/document_page_access_group_user_role/readme/USAGE.md @@ -0,0 +1,5 @@ +1. Go to Settings / Users & Companies / Roles and create a new one. +2. Go to Knowledge / Pages and create or edit one. +3. Set in the "Roles" tab the one we have just created. +4. Go back to the role, edit it and add any group(s). +5. The role users will have been added in the "Security" tab. diff --git a/document_page_access_group_user_role/readme/USAGE.rst b/document_page_access_group_user_role/readme/USAGE.rst deleted file mode 100644 index 4d593dcabd3..00000000000 --- a/document_page_access_group_user_role/readme/USAGE.rst +++ /dev/null @@ -1,5 +0,0 @@ -#. Go to `Settings / Users & Companies / Roles` and create a new one. -#. Go to `Knowledge / Pages` and create or edit one. -#. Set in the "Roles" tab the one we have just created. -#. Go back to the role, edit it and add any group(s). -#. The role users will have been added in the "Security" tab. diff --git a/document_page_access_group_user_role/static/description/index.html b/document_page_access_group_user_role/static/description/index.html index fbce83e6cd0..660c6ea45a4 100644 --- a/document_page_access_group_user_role/static/description/index.html +++ b/document_page_access_group_user_role/static/description/index.html @@ -369,7 +369,7 @@

    Document Page Access Group User Role

    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:bdf60e5b16d9c0c2dbecaa0d26f451b4bfed4319ed1b1f884d4797ec0ff30faf !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

    +

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

    Use of roles (module base_user_role) in Document Pages.

    Table of contents

    @@ -387,8 +387,8 @@

    Document Page Access Group User Role

    Usage

      -
    1. Go to Settings / Users & Companies / Roles and create a new one.
    2. -
    3. Go to Knowledge / Pages and create or edit one.
    4. +
    5. Go to Settings / Users & Companies / Roles and create a new one.
    6. +
    7. Go to Knowledge / Pages and create or edit one.
    8. Set in the “Roles” tab the one we have just created.
    9. Go back to the role, edit it and add any group(s).
    10. The role users will have been added in the “Security” tab.
    11. @@ -399,7 +399,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.

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

    Maintainers

    promote its widespread use.

    Current maintainer:

    victoralmau

    -

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

    +

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

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

    From 2579bd8f1319ec17198213b6a4719698f3593fbc Mon Sep 17 00:00:00 2001 From: Anusha Date: Thu, 8 May 2025 11:14:57 +0200 Subject: [PATCH 15/19] [MIG] document_page_access_group_user_role: Migration to 18.0 --- .../__manifest__.py | 2 +- .../migrations/16.0.1.1.0/post-migration.py | 13 ------------- .../models/document_page.py | 2 +- .../views/document_page_views.xml | 6 +++--- 4 files changed, 5 insertions(+), 18 deletions(-) delete mode 100644 document_page_access_group_user_role/migrations/16.0.1.1.0/post-migration.py diff --git a/document_page_access_group_user_role/__manifest__.py b/document_page_access_group_user_role/__manifest__.py index 54a075cb804..e7ebe10f2b9 100644 --- a/document_page_access_group_user_role/__manifest__.py +++ b/document_page_access_group_user_role/__manifest__.py @@ -4,7 +4,7 @@ "name": "Document Page Access Group User Role", "author": "Tecnativa, Odoo Community Association (OCA)", "website": "https://github.com/OCA/knowledge", - "version": "16.0.1.1.0", + "version": "18.0.1.0.0", "depends": ["document_page_access_group", "base_user_role"], "license": "AGPL-3", "category": "Knowledge", diff --git a/document_page_access_group_user_role/migrations/16.0.1.1.0/post-migration.py b/document_page_access_group_user_role/migrations/16.0.1.1.0/post-migration.py deleted file mode 100644 index 20d0931838b..00000000000 --- a/document_page_access_group_user_role/migrations/16.0.1.1.0/post-migration.py +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright 2024 Tecnativa - Víctor Martínez -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from openupgradelib import openupgrade - - -@openupgrade.migrate() -def migrate(env, version): - """Pages that had roles should now have the correct users.""" - pages = env["document.page"].sudo().search([("role_ids", "!=", False)]) - for page in pages: - users = page.mapped("role_ids.users") - page.role_ids = False - page.user_ids = users diff --git a/document_page_access_group_user_role/models/document_page.py b/document_page_access_group_user_role/models/document_page.py index a4db0ed05cd..54d5e44875f 100644 --- a/document_page_access_group_user_role/models/document_page.py +++ b/document_page_access_group_user_role/models/document_page.py @@ -18,6 +18,6 @@ class DocumentPage(models.Model): @api.depends("role_ids", "role_ids.users") def _compute_user_ids(self): - """Create a compute to auto-set all the users of the related roles.""" + """compute to auto-set all the users of the related roles.""" for item in self: item.user_ids += item.mapped("role_ids.users") diff --git a/document_page_access_group_user_role/views/document_page_views.xml b/document_page_access_group_user_role/views/document_page_views.xml index 555062923e0..63888e3bbd5 100644 --- a/document_page_access_group_user_role/views/document_page_views.xml +++ b/document_page_access_group_user_role/views/document_page_views.xml @@ -12,14 +12,14 @@ - + - + From 0b3a7d2a9b0ac54289aa00fbcf0fd166f507f8e8 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Mon, 30 Jun 2025 16:29:07 +0000 Subject: [PATCH 16/19] [UPD] Update document_page_access_group_user_role.pot --- .../i18n/document_page_access_group_user_role.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/document_page_access_group_user_role/i18n/document_page_access_group_user_role.pot b/document_page_access_group_user_role/i18n/document_page_access_group_user_role.pot index e2b80e08541..52c27490f0b 100644 --- a/document_page_access_group_user_role/i18n/document_page_access_group_user_role.pot +++ b/document_page_access_group_user_role/i18n/document_page_access_group_user_role.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" From c6241131d4d10623de4c91c6d8eda0931fdbd487 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 30 Jun 2025 16:31:08 +0000 Subject: [PATCH 17/19] [BOT] post-merge updates --- .../README.rst | 8 ++++-- .../static/description/index.html | 28 +++++++++++-------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/document_page_access_group_user_role/README.rst b/document_page_access_group_user_role/README.rst index 642d3011cff..e20ebe5e47d 100644 --- a/document_page_access_group_user_role/README.rst +++ b/document_page_access_group_user_role/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 + ==================================== Document Page Access Group User Role ==================================== @@ -7,13 +11,13 @@ Document Page Access Group User Role !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:bdf60e5b16d9c0c2dbecaa0d26f451b4bfed4319ed1b1f884d4797ec0ff30faf + !! source digest: sha256:94116a47bb3c0718e303c2056c7a8111748e80f677448f2fd96b059f8fca3311 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |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%2Fknowledge-lightgray.png?logo=github diff --git a/document_page_access_group_user_role/static/description/index.html b/document_page_access_group_user_role/static/description/index.html index 660c6ea45a4..763f5a2733c 100644 --- a/document_page_access_group_user_role/static/description/index.html +++ b/document_page_access_group_user_role/static/description/index.html @@ -3,7 +3,7 @@ -Document Page Access Group User Role +README.rst -
    -

    Document Page Access Group User Role

    +
    + + +Odoo Community Association + +
    +

    Document Page Access Group User Role

    -

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

    +

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

    Use of roles (module base_user_role) in Document Pages.

    Table of contents

    @@ -385,7 +390,7 @@

    Document Page Access Group User Role

    -

    Usage

    +

    Usage

    1. Go to Settings / Users & Companies / Roles and create a new one.
    2. Go to Knowledge / Pages and create or edit one.
    3. @@ -395,7 +400,7 @@

      Usage

    -

    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 @@ -403,15 +408,15 @@

    Bug Tracker

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

    -

    Credits

    +

    Credits

    -

    Authors

    +

    Authors

    • Tecnativa
    -

    Contributors

    +

    Contributors

    -

    Maintainers

    +

    Maintainers

    This module is maintained by the OCA.

    Odoo Community Association @@ -436,5 +441,6 @@

    Maintainers

    +
    From 51bca6e5bae40b9dbe94eab3203fd28382c2c2a3 Mon Sep 17 00:00:00 2001 From: Bhavesh Heliconia Date: Mon, 29 Dec 2025 16:09:07 +0530 Subject: [PATCH 18/19] [MIG] document_page_access_group_user_role: Migration to 19.0 --- document_page_access_group_user_role/README.rst | 14 +++++++++----- .../__manifest__.py | 2 +- .../models/document_page.py | 4 ++-- .../readme/CONTRIBUTORS.md | 2 ++ .../static/description/index.html | 10 +++++++--- .../test_document_page_access_group_user_role.py | 13 ++++++------- 6 files changed, 27 insertions(+), 18 deletions(-) diff --git a/document_page_access_group_user_role/README.rst b/document_page_access_group_user_role/README.rst index e20ebe5e47d..13e55fb195e 100644 --- a/document_page_access_group_user_role/README.rst +++ b/document_page_access_group_user_role/README.rst @@ -21,13 +21,13 @@ Document Page Access Group User Role :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github - :target: https://github.com/OCA/knowledge/tree/18.0/document_page_access_group_user_role + :target: https://github.com/OCA/knowledge/tree/19.0/document_page_access_group_user_role :alt: OCA/knowledge .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/knowledge-18-0/knowledge-18-0-document_page_access_group_user_role + :target: https://translation.odoo-community.org/projects/knowledge-19-0/knowledge-19-0-document_page_access_group_user_role :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/knowledge&target_branch=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/knowledge&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -54,7 +54,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. @@ -74,6 +74,10 @@ Contributors - Víctor Martínez - Pedro M. Baeza +- `Heliconia Solutions Pvt. Ltd. `__ + + - Bhavesh Heliconia + Maintainers ----------- @@ -95,6 +99,6 @@ Current `maintainer `__: |maintainer-victoralmau| -This module is part of the `OCA/knowledge `_ project on GitHub. +This module is part of the `OCA/knowledge `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/document_page_access_group_user_role/__manifest__.py b/document_page_access_group_user_role/__manifest__.py index e7ebe10f2b9..2500377effc 100644 --- a/document_page_access_group_user_role/__manifest__.py +++ b/document_page_access_group_user_role/__manifest__.py @@ -4,7 +4,7 @@ "name": "Document Page Access Group User Role", "author": "Tecnativa, Odoo Community Association (OCA)", "website": "https://github.com/OCA/knowledge", - "version": "18.0.1.0.0", + "version": "19.0.1.0.0", "depends": ["document_page_access_group", "base_user_role"], "license": "AGPL-3", "category": "Knowledge", diff --git a/document_page_access_group_user_role/models/document_page.py b/document_page_access_group_user_role/models/document_page.py index 54d5e44875f..0f85d4a33bc 100644 --- a/document_page_access_group_user_role/models/document_page.py +++ b/document_page_access_group_user_role/models/document_page.py @@ -16,8 +16,8 @@ class DocumentPage(models.Model): string="Roles", ) - @api.depends("role_ids", "role_ids.users") + @api.depends("role_ids", "role_ids.user_ids") def _compute_user_ids(self): """compute to auto-set all the users of the related roles.""" for item in self: - item.user_ids += item.mapped("role_ids.users") + item.user_ids += item.mapped("role_ids.user_ids") diff --git a/document_page_access_group_user_role/readme/CONTRIBUTORS.md b/document_page_access_group_user_role/readme/CONTRIBUTORS.md index 5fee3904270..7bf1b19ab3e 100644 --- a/document_page_access_group_user_role/readme/CONTRIBUTORS.md +++ b/document_page_access_group_user_role/readme/CONTRIBUTORS.md @@ -1,3 +1,5 @@ - [Tecnativa](https://www.tecnativa.com): - Víctor Martínez - Pedro M. Baeza +- [Heliconia Solutions Pvt. Ltd.](https://www.heliconia.io) + - Bhavesh Heliconia diff --git a/document_page_access_group_user_role/static/description/index.html b/document_page_access_group_user_role/static/description/index.html index 763f5a2733c..b43344fa0da 100644 --- a/document_page_access_group_user_role/static/description/index.html +++ b/document_page_access_group_user_role/static/description/index.html @@ -374,7 +374,7 @@

    Document Page Access Group User Role

    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:94116a47bb3c0718e303c2056c7a8111748e80f677448f2fd96b059f8fca3311 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

    +

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

    Use of roles (module base_user_role) in Document Pages.

    Table of contents

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

    @@ -423,6 +423,10 @@

    Contributors

  • Pedro M. Baeza
  • +
  • Heliconia Solutions Pvt. Ltd.
      +
    • Bhavesh Heliconia
    • +
    +
  • @@ -436,7 +440,7 @@

    Maintainers

    promote its widespread use.

    Current maintainer:

    victoralmau

    -

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

    +

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

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

    diff --git a/document_page_access_group_user_role/tests/test_document_page_access_group_user_role.py b/document_page_access_group_user_role/tests/test_document_page_access_group_user_role.py index 777e2eaa24f..dcf8cb08514 100644 --- a/document_page_access_group_user_role/tests/test_document_page_access_group_user_role.py +++ b/document_page_access_group_user_role/tests/test_document_page_access_group_user_role.py @@ -1,6 +1,6 @@ # Copyright 2024 Tecnativa - Víctor Martínez # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo.tests.common import users + from odoo.addons.document_page_access_group.tests.common import ( TestDocumentPageAccessGroupBase, @@ -11,11 +11,12 @@ class TestDocumentPageAccessGroupUserRole(TestDocumentPageAccessGroupBase): @classmethod def setUpClass(cls): super().setUpClass() + group_doc_user = cls.env.ref("document_knowledge.group_document_user") cls.user_role = cls.env["res.users.role"].create( { "name": "Test role", - "implied_ids": [(6, 0, [cls.group.id])], - "users": [(6, 0, [cls.manager_user.id])], + "implied_ids": [(6, 0, [cls.group.id, group_doc_user.id])], + "line_ids": [(0, 0, {"user_id": cls.manager_user.id})], } ) cls.role_page = cls.env["document.page"].create( @@ -30,17 +31,15 @@ def test_document_page_role_misc(self): self.assertFalse(self.role_page.groups_id) self.assertTrue(self.role_page.user_ids) - @users("test-user") def test_document_page_role_access_01(self): - pages = self.env["document.page"].search([]) + pages = self.env["document.page"].with_user(self.user).search([]) self.assertIn(self.public_page, pages) self.assertNotIn(self.knowledge_page, pages) self.assertIn(self.user_page, pages) self.assertNotIn(self.role_page, pages) - @users("test-manager-user") def test_document_page_role_access_02(self): - pages = self.env["document.page"].search([]) + pages = self.env["document.page"].with_user(self.manager_user).search([]) self.assertIn(self.public_page, pages) self.assertIn(self.knowledge_page, pages) self.assertNotIn(self.user_page, pages) From 0733dadcad45e6d61ac4a3835e1ffb5b3c4f77fb Mon Sep 17 00:00:00 2001 From: Bhavesh Heliconia Date: Mon, 29 Dec 2025 16:30:51 +0530 Subject: [PATCH 19/19] [DON'T MERGE] test-requirements.txt --- test-requirements.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 test-requirements.txt diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 00000000000..bf0223ee0dc --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,3 @@ +odoo-addon-document_knowledge @ git+https://github.com/OCA/knowledge.git@refs/pull/569/head#subdirectory=document_knowledge +odoo-addon-document_page @ git+https://github.com/OCA/knowledge.git@refs/pull/570/head#subdirectory=document_page +odoo-addon-document_page_access_group @ git+https://github.com/OCA/knowledge.git@refs/pull/571/head#subdirectory=document_page_access_group