Odoo12-动作与菜单

odoo把动作和菜单的定义都保存在数据库里。可以通过data数据文件添加。
动作可以通过以下几个方式触发:
1.点击菜单(菜单项需要关联某个动作)
2.点击页面里面的按钮(按钮需要关联某个动作)
3.作为上下文动作(contextual actions)里面的某个对象

现在来给已存在的classroom模块创建一个模型classroom.course:

# -*- coding: utf-8 -*-

from odoo import models, fields, api


class Course(models.Model):
    _name = 'classroom.course'

    # 界面 label 的值为  Title , required=True:必填字段
    name = fields.Char(string='课程名', required=True)
    description = fields.Text(string="课程描述")

在这里插入图片描述
然后在视图层文件views.xml里面写上动作、菜单:

<?xml version="1.0" encoding="UTF-8"?>
<odoo>
  <data>
    <!-- 创建动作 -->
    <record model="ir.actions.act_window"  id="course_list_action">
      <field name="name">Courses</field>
      <field name="res_model">classroom.course</field>
      <field name="view_type">form</field>
      <field name="view_mode">tree,form</field>
      <field name="help" type="html">
        <p class="oe_view_cocontent_create"> Create the first course</p>
      </field>
    </record>

     <!-- 顶级菜单 -->
    <menuitem name="教室管理" id="main_classroom_menu"/>
    <!-- 二级菜单 -->
    <menuitem name="教室" id="classroom_menu" parent="main_classroom_menu"/>
    <!-- 三级菜单 
	注意下面的 action="course_list_action"  这是引用了前面<record>定义好的动作
-->
    <menuitem name="课程" id="courses_menu" parent="classroom_menu"
      action="course_list_action"/>
  </data>
</odoo>

在这里插入图片描述
由于odoo12的菜单不能直接显示,需要配置一下权限,编辑security目录下的 ir.model.access.csv :

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_classroom_classroom,classroom.course,model_classroom_course,,1,1,1,1

代码是上下对应的,分别有id、name等字段;后面的perm_read – perm_unlink分别是允许: 读,写,创建,修改
1 代表允许,0代表不允许
在配置完权限文件之后,还要修改_manifest_.py里面data的内容,把安全配置的注释去掉:
在这里插入图片描述
然后启动odoo服务,升级一下模块并刷新,就可以看到顶级菜单了:
在这里插入图片描述
点击’教室管理-教室’:
在这里插入图片描述
然后就可以进行CRUD操作了:
在这里插入图片描述
在这里插入图片描述
点击进去之后可以修改删除,这里我就不删除了。
在这里插入图片描述
再来看一下数据库:
在这里插入图片描述
至此,给模型新增菜单绑定动作并进行CRUD的功能就已经完成了。

发布了13 篇原创文章 · 获赞 15 · 访问量 2408

猜你喜欢

转载自blog.csdn.net/weixin_43274097/article/details/103973664