xml声明

 1     <record id="res_company_user_action" model="ir.actions.act_window">
2 <field name="name">Users</field>
3 <field name="res_model">res.users</field>
4 <field name="view_mode">tree,form,kanban</field>
5 <field name="context">
6 {
7 'form_view_ref':'ship_manage.res_company_user_view_form',
8 'tree_view_ref':'ship_manage.res_company_user_view_tree',
9 'kanban_view_ref':'ship_manage.res_company_user_view_kanban',
10 'search_view_ref':'ship_manage.res_company_user_view_search'
11 }
12 </field>
13 </record>
ir.actions.server 调用action。这样你就可以根据当前用户去过滤信息;当然你也可以选择ir.rule过滤域去实现。
1     <record model="ir.actions.server" id="res_company_user_server_action">
2 <field name="name">Company User Server Action</field>
3 <field name="model_id" ref="base.model_res_users"/>
4 <field name="state">code</field>
5 <field name="code">
6 action = env.ref('ship_manage.res_company_user_action').read()[0]
7 action['domain'] = [('company_id','=',env.user.company_id.id)]
8 </field>
9 </record>

ir.actions.server 手动配置action参数

 1     <record model="ir.actions.server" id="res_company_action1">
2 <field name="name">Company Server Action</field>
3 <field name="model_id" ref="base.model_res_company"/>
4 <field name="state">code</field>
5 <field name="code">
6 action = {
7 'name':'Company Test',
8 'type': 'ir.actions.act_window',
9 'res_model': 'res.company',
10 'view_mode': 'form',
11 'view_type': 'form',
12 'target': 'main',
13 'res_id': env.user.company_id.id,
14 'context': {'form_view_ref':'ship_manage.res_company_view_form_test'}
15 }
16 </field>
17 </record>

button事件调用action

xml:
<button name="get_company_action" string="Company Action" type="object"/> python:
def get_company_action(self):
action = self.env.ref('ship_manage.ship_manage_res_company_action').read()[0] #这里你也可以自己去定义
action['res_id'] = self.env.user.company_id.id
return action

或者自定义:
def get_company_action(self):
  return {
      'name': _('Repair Bill'),
      'type': 'ir.actions.act_window',
      'res_model': 'bill.head',
      'view_mode': 'form',
      'target': 'main',
      'res_id': rb.id,
      'context': {
      'form_view_ref': 'ship.bill_head_view_form',
      }
    }

js 事件调用action。这里和唯一区别是views。list指的是tree视图,第一个参数false指的是按优先级获取默认的视图。你也可以指定一个视图id,你需要ref去获取ir.actions.act_window的记录id。

1         _onBtnClicked: function (ev) {
2 this.do_action({
3 type: 'ir.actions.act_window',
4 name: this.title,
5 res_model: this.modelName,
6 views: [[false, 'list'], [false, 'form']],
7 domain: ev.data.domain,
8 });
9 },

actions 源码相对路径:odoo/odoo/addons/base/models/ir_actions.py

Odoo14 ir.actions.act_window的更多相关文章

  1. Odoo ir actions 分析

    源代码位置:openerp/addons/base/ir/ir_actions.py 根类型:ir.actions.actions class actions(osv.osv): _name = 'i ...

  2. Odoo14 ir.rule 中的domain查询语句

    # ir.rule 中的domain查询语句 # 当你的字段是many2one.many2many.one2many的时候domain都会强制加上过滤域 # tree显示的时候也会过滤 # m.mod ...

  3. Odoo14 ir.config_parameter 系统参数

    1 # 文件上传大小限制 2 web.max_file_upload_size = 128 * 1024 * 1024 # 128m 3 # 以上是odoo中设置上传文件的最大size,但如果你用了n ...

  4. 【odoo14】第十五章、网站客户端开发

    odoo的web客户端.后台是员工经常使用的地方.在第九章中,我们了解了如何使用后台提供的各种可能性.本章,我们将了解如何扩展这种可能性.其中web模块包含了我们在使用odoo中的各种交互行为. 本章 ...

  5. 【odoo14】第八章、服务侧开发-进阶

    本章代码位于作为GITHUB库 https://github.com/PacktPublishing/Odoo-14-Development-Cookbook-Fourth-Edition 在第五章( ...

  6. 【odoo14】【开发侧】权限配置

    欢迎转载,但需标注出处,谢谢! 说明: 本文面向开发人员,普通用户可参考[odoo14][用户侧]权限配置.文章结构与用户侧一致. 目录 一. odoo中的对象 二. 权限控制 2.1 实现原理 2. ...

  7. Odoo14 OWL 如何访问model方法和res_id

    首先OWL是Odoo14版本新加的功能. 因为是新加的所以并没有太多的说明文档,包括英文板文档也没有:所以你要用它再没有更详细的文档之前你得自己去看源码. 注意owl是没有do_action函数给你跳 ...

  8. odoo10学习笔记十:Actions

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189319.html actions定义了系统对于用户的操作的响应:登录.按钮.选择项目等. 一:窗口ac ...

  9. act_window 属性

    窗口Action(ir.actions.act_window ) 最常用的action类型,用于将model的数据展示出来 字段列表: 1.res_model -- 需要在view里显示数据的mode ...

随机推荐

  1. windows 文件hash校验,字符串加密,base64转换工具

    对下载的文件使用hash校验验证文件完整性 1 import hashlib 2 def md5(): 3 md5_value = hashlib.md5() 4 with open('C:\Inte ...

  2. 好客租房16-jsx中的列表渲染

    如果要渲染一组数组 应该使用数组的map方法 注意:渲染列表时候添加key属性 key属性的值要保持唯一 原则:map()遍历谁 就给谁添加key属性 尽量避免索引号作为key //导入react i ...

  3. Blazor和Vue对比学习(进阶2.1.1):生命周期,基本理解和使用

    一.基本理解 首次接触"生命周期"这个名词,是比较晦涩的,Vue中又有生命周期钩子,而Blazor则是虚方法重写,容易蒙.所以,我尝试从初学者的角度来阐述一下. 1.我们在基础部分 ...

  4. Ubuntu 静默安装DEB包(非交互式)~解决Ubuntu下安装DEB包弹窗交互的问题

    在Ubuntu环境下安装DEB包时,比如安装MySQL式经常会弹出交互式要输入密码的操作.有时候我们期望编写Shell脚本一键部署MySQL时不想要弹窗交互时,则可以使用以下方式实现自动化安装Deb软 ...

  5. 【Unity Shader学习笔记】Unity光照基础-漫反射光照

    本代码只适用于平行光. 1.逐顶点漫反射光照 1.1漫反射光照原理 1.2代码实现 在Properties语义块中声明一个漫反射颜色属性 Properties { //漫反射参数,用于调整漫反射效果 ...

  6. SQL中的数字、字母和汉字

    知识点001 当变量的数据类型为VARCHAR时,变量赋值后,变量中的字符所占字节数,数字和字母是1个bytes,汉字是2个bytes; 当变量的数据类型为NVARCHAR时,变量赋值后,变量中的字符 ...

  7. 软件构造Lab2实验总结

    本次实验训练抽象数据类型(ADT)的设计.规约.测试,并使用面向对象编程(OOP)技术实现ADT.具体来说内容如下: 针对给定的应用问题,从问题描述中识别所需的ADT: 设计ADT规约(pre-con ...

  8. YAML在线验证

    推荐一个网站:YAML在线验证https://www.bejson.com/validators/yaml_editor/

  9. 渗透测试之sql注入点查询

    一切教程在于安全防范,不在于攻击别人黑别人系统为目的 寻找sql注入点方法: 拿到网页后进行查找注入点: 1.通过单引号 ' ;    在 url 后面输入单引号进行回车(如果报错可能存在sql注入为 ...

  10. 【Java面试】Mysql为什么使用B+Tree作为索引结构

    一个工作8年的粉丝私信了我一个问题. 他说这个问题是去阿里面试的时候被问到的,自己查了很多资料也没搞明白,希望我帮他解答. 问题是: "Mysql为什么使用B+Tree作为索引结构" ...