首页 > 其他分享 >odoo17开发教程(7):用户界面UI的交互-菜单

odoo17开发教程(7):用户界面UI的交互-菜单

时间:2024-03-14 15:36:07浏览次数:26  
标签:菜单 用户界面 estate views odoo17 action UI test model

声明菜单menuitem

为了减少声明菜单(ir.ui.menu)并将其连接到相应操作的复杂性,我们可以使用 <menuitem> 快捷方式。
 

还是拿 test_model_action 举例,一个最简单的菜单如下:

<menuitem id="test_model_menu_action" action="test_model_action"/>

菜单 test_model_menu_action 与操作 test_model_action 相连,而操作 test_model_action 与模型 test_model 相连。如前所述,动作可以看作是菜单和模型之间的链接。

不过,菜单总是遵循一种结构,在实践中有三个层次的菜单:

  1. 根菜单,显示在应用程序切换器中(Odoo 社区应用程序切换器是一个下拉菜单)
  2. 一级菜单,显示在顶部栏中
  3. 操作菜单

下图分别是1级菜单,2,3级菜单

Root menus

 

First level and action menus

定义结构的最简单方法是在 XML 文件中创建结构。 为test_model_action准备的最基本的结构如下:

<menuitem id="test_menu_root" name="Test">
    <menuitem id="test_first_level_menu" name="First Level">
        <menuitem id="test_model_menu_action" action="test_model_action"/>
    </menuitem>
</menuitem>

第三级菜单的名称取自动作名称。

实践

为我们的 estate.property 动作创建3层的菜单

创建以下文件views/estate_menus.xml:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <menuitem id="estate_property_menu_root" name="Real Estate">
        <menuitem id="real_restate_advertisements_menu" name="Advertisements">
            <menuitem id="estate_property_menu_action" action="estate_property_action"/>
        </menuitem>
    </menuitem>
</odoo>

记得在manifest.py中定义它。

 然后修改views/estate_property_views.xml为:

<?xml version="1.0"?>
<odoo>
    <record id="estate_property_action" model="ir.actions.act_window">
        <field name="name">房屋</field>
        <field name="res_model">estate_property</field>
        <field name="view_mode">tree,form</field>
    </record>
</odoo>

重启你的容器,刷新浏览器,应该能够看到你刚刚定义的菜单啦!

 甚至已经可以新建房产信息了,太棒了!

ps: 如果重启容器后,不起作用,记得开启开发者模式

如果还看不到,请找到apps里面找到你的模块,点击Upgrade


"Live as if you were to die tomorrow. Learn as if you were to live forever." - Mahatma Gandhi

标签:菜单,用户界面,estate,views,odoo17,action,UI,test,model
From: https://blog.csdn.net/loethen/article/details/136692391

相关文章

  • 迅为iTOP-RK3588开发板Buildroot系统功能测试
     第三章Buildroot系统功能测试烧写buildroot系统镜像,buildroot系统镜像在网盘资料“iTOP-3588开发板\01_【iTOP-RK3588开发板】基础资料\06_iTOP-RK3588开发板Linux镜像\01_Buildroot镜像”目录下,本小节测试buildroot系统。 3.1系统启动Buildroot系统启动后,串口如下图所示......
  • odoo17开发教程(5):权限的简单介绍
    在之前的文章中,我们创建了第一个用于存储业务数据的表。在Odoo这样的商业应用程序中,首先要考虑的问题之一是谁可以访问数据。Odoo提供了一种安全机制,允许特定用户组访问数据。本章旨在对权限有个最低要求对了解数据文件(CSV)Odoo是一个高度数据驱动的系统。虽然行为是通过......
  • 最奢华区块链游戏LouisTheGame:时尚精品LV结合NFT探索品牌历史
    数字化时代,奢侈品牌LouisVuitton(LV)不仅以其独特的设计和传统的工艺闻名,还在不断探索新的市场和创新方式来吸引年轻一代的消费者。其中,最奢华区块链游戏LouisTheGame作为LV品牌历史上的一次尝试,结合了游戏化元素和区块链技术,为玩家提供了一次与品牌互动的全新体验。让我们深入......
  • 一次对requirements环境的配置
    事情是这样的,我需要跑通一个代码,因此要配置环境,但是并不能利用requirements中给的指令直接配置,于是开始找一些其他的解决方法。作为一名小白,总是绕很多弯路。记下一些蜿蜒。首先,摘录requirements中写的#Thisfilemaybeusedtocreateanenvironmentusing:#$condacrea......
  • pytest+selenium+allure web端UI自动化框架设计
    一、框架目录actions:封装业务操作链,是一个包pages:封装各模块页面操作方法,是一个包testcase:封装具体业务测试用例,是一个包common:底层代码封装,比如:核心操作,文件处理,日志等,是一个包doc:程序指南文件目录pagefiles:页面元素定位信息,是一个目录config:管理配置文件,是一个目录dat......
  • arduino uno R3驱动直流减速电机(蓝牙控制)
    此篇博客用于记录使用arduino驱动直流减速电机的过程,仅实现简单的功能:PID调速、蓝牙控制1、直流减速电机简介2、DRV8833电机驱动模块简介3、HC-05蓝牙模块简介电机转动测试4、PID控制5、蓝牙控制电机1、直流减速电机简介我在淘宝购买的电机,减速比是21.3,旋转一圈产生......
  • [GPT] export, export default, import, module.exports, require
     ES6规范:export和import配对 import的{}大括号里面指定要从其他模块导入的变量名, 如果export命令没有写default,那么import{}大括号里面的变量名,必须与export导出的名称相同。  exportdefault为模块指定默认输出,这样在引入时就不必关心模块输出的名字。 本质......
  • 【MATLAB源码-第146期】基于matlab的信源编码仿真GUI,对比霍夫曼编码,算术编码和LZ编码
    操作环境:MATLAB2022a1、算法描述霍夫曼编码、算术编码和LZ编码是三种广泛应用于数据压缩领域的编码技术。它们各自拥有独特的设计哲学、实现方式和适用场景,因此在压缩效率、编解码速度和内存使用等方面表现出不同的特点。接下来详细描述这三种编码技术,并对它们进行比较。......
  • 浅谈Java中的String,StringBuffer与StringBuilder
    String,StringBuffer与StringBuilder类是我们比较常用的三个类,弄懂它们也是很重的,下面是我学习之后对这三个类的总结,欢迎评论纠错String类用法:1、String对象用于保存字符串,也就是一组字符序列2、字符串常量(如"Tom")对象是用双引号括起的字符序列。例如:“你好”、“12.2......
  • Python学习+PySimpleGUI+Pyinstaller,制作Windows桌面小工具
    1开发环境Python+PyCharm2第三方库2.1PySimpleGUI是基于Python的图形界面开发工具pipinstall PySimpleGUIPySimpleGUI5.0版本后开始收费,好像注册个人用户是免费,嫌麻烦我直接用的之前的版本 pip installPySimpleGUI==4.60.5 2.2PyInstaller是一个在Windows、G......