我尝试在单个 Odoo 12 网站的多个页面部分中实现单独的顶部菜单。每个部分都有自己的顶部菜单(=网页顶部的菜单)。这些页面都在一个 Odoo 网站中。根据当前页面所在的部分,顶部菜单应包含特定于部分的菜单。
就我而言,这些部分是几乎相同页面的两个“语言”版本。页面内容会有所不同,因此标准的多语言 Odoo 网站不适合这种情况。两个部分的 dns 名称也应该相同,所以我不想使用多网站。
目前,我已经在 qweb 模板中使用 if-logic 实现了这一点,并为另一个菜单提供了固定的 html。这不是一个好的解决方案,因为普通 Odoo 用户很难更新 html 模板。最好使用内置的 Odoo 菜单模型。
未经修改的 Odoo 12 网站菜单结构可以有多个根级别(=未设置父 ID)。我无法在标准 Odoo 中弄清楚如何设置每个页面将使用哪些。源代码似乎总是在 addons/website/models/website.py 第 123 行中按 id 选择第一个菜单。
website.menu_id = Menu.search([('parent_id', '=', False), ('website_id', '=', website.id)], order='id', limit=1).id
是否有可能为一个网站指定具有唯一顶部菜单的不同部分,或者在页面级别指定顶部菜单,以便每个“部分”上的页面都链接到某个菜单?如果在标准 Odoo 中不可能,是否已经有一个模块?如果不是,那么从哪里开始编码并将此功能扩展为新模块?