Skip to content

Commit

Permalink
16.0[IMP]document_page: menu_parent_id context domain of menu creation
Browse files Browse the repository at this point in the history
  • Loading branch information
Tisho99 committed Jan 10, 2024
1 parent 77fead8 commit 1897d3b
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 1 deletion.
1 change: 1 addition & 0 deletions document_page/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ Trobz
* `Sygel <https://www.sygel.es>`_:

* Ángel García de la Chica Herrera
* Alberto Martínez Rodríguez

Other credits
~~~~~~~~~~~~~
Expand Down
1 change: 1 addition & 0 deletions document_page/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@

from . import document_page
from . import document_page_history
from . import ir_ui_menu
27 changes: 27 additions & 0 deletions document_page/models/ir_ui_menu.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Copyright 2024 Alberto Martínez <alberto.martinez@sygel.es>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import models


class IrUiMenu(models.Model):
_inherit = "ir.ui.menu"

def _visible_menu_ids(self, debug=False):
visible_ids = super()._visible_menu_ids(debug)
if self._context.get("ir.ui.menu.authorized_list"):
# Add the authorized by groups menus that does not have an action
menus = (
self.with_context(**{"ir.ui.menu.full_list": True}).search([]).sudo()
)
groups = (
self.env.user.groups_id
if not debug
else self.env.user.groups_id - self.env.ref("base.group_no_one")
)
authorized_menus = menus.filtered(
lambda m: not m.groups_id or m.groups_id and groups
)
authorized_folder_menus = authorized_menus.filtered(lambda m: not m.action)
visible_ids = visible_ids.union(authorized_folder_menus.ids)
return visible_ids
14 changes: 14 additions & 0 deletions document_page/tests/test_document_page_create_menu.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,17 @@ def test_page_menu_creation(self):
).default_get(fields_list)

self.assertEqual(res["menu_name"], "Odoo 15.0 Functional Demo")

def test_page_menu_parent_id_context(self):
"""Test page menu parent_id context."""
menu_parent = self.env["ir.ui.menu"].create({"name": "Test Folder Menu"})
context_results = (
self.env["ir.ui.menu"]
.with_context(**{"ir.ui.menu.authorized_list": True})
.search([("id", "=", menu_parent.id)])
)
no_context_results = self.env["ir.ui.menu"].search(
[("id", "=", menu_parent.id)]
)
self.assertEqual(context_results[:1].id, menu_parent.id)
self.assertEqual(any(no_context_results), False)
5 changes: 4 additions & 1 deletion document_page/wizard/document_page_create_menu.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,10 @@
<form>
<group string="Menu Information">
<field name="menu_name" />
<field name="menu_parent_id" />
<field
name="menu_parent_id"
context="{'ir.ui.menu.authorized_list': True}"
/>
</group>
<footer>
<button
Expand Down

0 comments on commit 1897d3b

Please sign in to comment.