security
在ir.model.access.csv中
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
 
可以设置成
access_org_info,org.info,model_org_info,,1,1,1,1
 
其中:access_org_info:access_为固定开头,org_info为模块名称
 org.info:为定义的模型文件里面model的_name字段
 model_org_info:model_为固定开头,org_info为model的_name字段,但是要把 . 改成 _
 base.group_user:可以不填
 1,1,1,1 代表之前四个字段的权限
 注:要在__manifest__.py中,把ir.model.access.csv注释打开,权限才生效
menu
创建菜单视图
- 在view中定义一个menutem.xml文件
 
<odoo>
    <menuitem name="组织中心" id="org.menu_root"/>
    <menuitem name="部门管理" id="menu_1" parent="org.menu_root" action="department_action"/>
</odoo>
 
- menuitem标签:为创建菜单的标签
 - name属性:就是在菜单显示的内容
 - id属性:id标识,这里是唯一的即可
 - parent属性:父级,我们在下面定义parent就可以将下面的子菜单定位在id为org.menu_root的页面中了
 - action属性:动作,必须制定到对于的act_windows视图上,没有指定则页面不会显示这个菜单功能
 
- 在view中定义一个department.xml文件
 
<odoo>
    <record id="department_action" model="ir.actions.act_window" >
        <field name="name">部门管理</field>
        <field name="type">ir.actions.act_window</field>
        <field name="res_model">org.department</field>
        <field name="view_mode">tree,form</field>
    </record>
</odoo>
 
- record标签:语法标准,必须要写在最外面
 - id属性:id标识,这里是唯一的即可
 - model属性:xml会继承IrActionsActWindow的动作模型,odoo会根据模型来渲染视图,我们每一个view都要设置一个基础的act_windows视图
 - field->name=“name”:定义页面的左上角显示内容
 - field->name=“type”:类型
 - field->name=“res_model”:act_windows对应渲染的模型,这里写上我们之前定义的org.department模型即可
 - field->name=“view_mode”:需要渲染的类型,这里先定义tree视图和form视图
 
- 在_manifest_.py中加载刚创建的两个视图
 
 # 加载的视图
    'data': [
        '....',
        'views/department.xml',
        'views/menutem.xml',
    ],
 
注意:注意顺序,菜单视图一定要放在最后,act_windows视图放在菜单视图的上面
 4)进入security->ir.model.access.csv文件中替换下面代码
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_org_department,org.department,model_org_department,,1,1,1,1
 
- id: 唯一标识,必须唯一
 - name: 描述名称,描述信息
 - model_id:id:model的id格式是 model_模型类名
 - group_id:id : group组的id,这里可以不填,或者写上自己的定义的用户组
 - perm_read:查看 1有权限,0无权限,下面的一样的
 - perm_write:修改
 - perm_create: 创建
 - perm_unlink: 删除
 
并在data中打开对应的权限文件的屏蔽
 # 加载的视图
    'data': [
       'security/ir.model.access.csv',
        'views/department.xml',
        'views/menutem.xml',
    ],
 
5)最后,进入应用找到自己的模块去升级
tree
- 创建act_window
在views文件夹中创建member.xml文件 
<odoo>
    <record id="member_action" model="ir.actions.act_window">
        <field name="name">成员管理</field>
        <field name="type">ir.actions.act_window</field>
        <field name="res_model">org.member</field>
        <field name="view_mode">tree</field>
    </record>
</odoo>
 
2)把menutem.xml文件改成
<odoo>
    <menuitem name="组织中心" id="org.menu_root"/>
    <menuitem name="部门管理" id="menu_1" parent="org.menu_root" action="department_action"/>
    <menuitem name="成员管理" id="menu_2" parent="org.menu_root" action="member_action"/>
</odoo>
 
3)并在_manifest_.py中加载刚创建视图
 # 加载的视图
    'data': [
        '....',
        'security/ir.model.access.csv',
        'views/department.xml',
        'views/member.xml',
        'views/menutem.xml',
    ],
 
4)最后升级模块
创建tree视图代码
1)在member.xml文件中添加代码
    <record id="member_view_tree" model="ir.ui.view">
      <field name="name">成员管理列表</field>
      <field name="model">org.member</field>
      <field name="arch" type="xml">
        <tree>
          <field name="name"/>
          <field name="phone" />
          <field name="duty" />
          <field name="role_id" />
          <field name="department_id" />
        </tree>
      </field>
    </record>
 
在record中大部分都是固定写法,在tree标签中写上对应的字段名称即可
 注:
 模型名称 模型名称一定要一致并且不能写错,因为odoo会根据Model的对应到对应的view视图
 tree标签,这是tree视图的标志,不可以少
 tree标签中的field,name等于值和数据库的字段名要一致才能正确渲染
 2)修改security权限
 3)升级模块
form
什么是from视图
- from视图即表单视图
 - 我们可以理解为对tree列表修改,创建的时候的视图展示样式
 - tree视图创建之后会自动创建一个对应的from视图,但是我们如果想要排版或者对自己进行一些操作那么就需要自己来自定义from视图了
 
创建form视图
之前已经创建了tree视图,现在需要加入form视图需要修改两个地方
- 修改views文件中member.xml文件act_window的view_mode的地方,添加from

 
2)添加form视图内容
    <record id="member_view_form" model="ir.ui.view">
      <field name="name">member_view_form</field>
      <field name="model">org.member</field>
      <field name="arch" type="xml">
        <form string="members_form">
          <sheet>
            <group>
              <field name="name"/>
              <field name="phone"/>
              <field name="duty"/>
              <field name="role_id"/>
              <field name="department_id"/>
            </group>
          </sheet>
        </form>
      </field>
    </record>
 
注:model的地方也一定要也正确
 from里面是组的概念所以一定要使用group组来包着field字段



















