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. 论文解读《Bilinear Graph Neural Network with Neighbor Interactions》

    论文信息 论文标题:Bilinear Graph Neural Network with Neighbor Interactions论文作者:Hongmin Zhu, Fuli Feng, Xiang ...

  2. Spring Boot 配置 HikariCP

    HikariCP 是一个可靠的.高性能的 JDBC 连接池 本来用的 alibaba/druid,但实际并没有怎么用其内置的监控网页,然后多方调查,决定弃用 druid,替换为 HikariCP Sp ...

  3. Git命令行提交代码步骤

    先进入对应的项目目录 1.拉取服务器代码,避免覆盖他人代码 git pull 2.查看当前项目中有哪些文件被修改过 git status 具体状态如下: 1:Untracked: 未跟踪,一般为新增文 ...

  4. 医会宝APP登录体验

    帮一个学医生的朋友找相关资料,无意中下载了医会宝APP,登录的时候发现登录方面存在可以优化的地方还挺多,然后随手把登录这部分体验记录下,仅代表个人体验,供新手参考,非权威,交互专家跳过. 一.体验环境 ...

  5. hexo + typora 图片插入解决办法

    Typora 是一款知名的 Markdown 编辑器,简单好用,体验良好.使用 hexo 搭建好博客后,主要是用 Markdown 来编写博客,typora 便是我的首选编辑器.但直接使用 typor ...

  6. Simple, Fast Malicious Multiparty Private Set Intersection-解读

    文本记录阅读该论文的笔记. 这是文章框架,来自视频. 介绍 本文主要解决恶意攻击下安全的多方PSI,主要用到两大技术OPPRF和OKVS,构造合谋和不合谋的协议. 基础知识 OPPRF 这部分在OPR ...

  7. 开发工具-SVG占位图片

    更新日志 2022年6月10日 初始化链接. https://toolb.cn/imageholder

  8. Redis 中的原子操作(3)-使用Redis实现分布式锁

    Redis 中的分布式锁如何使用 分布式锁的使用场景 使用 Redis 来实现分布式锁 使用 set key value px milliseconds nx 实现 SETNX+Lua 实现 使用 R ...

  9. H2-Table CATALOGS not found

    在使用 IntelliJ IDEA 2021.1.3 版本,使用默认配置连接 H2 数据库的时候,出现下面错误,项目里 H2 使用的版本为 2.0.202 . [42S02][42102] org.h ...

  10. 关于缓存一致性协议、MESI、StoreBuffer、InvalidateQueue、内存屏障、Lock指令和JMM的那点事

    前言 事情是这样的,一位读者看了我的一篇文章,不认同我文章里面的观点,于是有了下面的交流. 可能是我发的那个狗头的表情,让这位读者认为我不尊重他.于是,这位读者一气之下把我删掉了,在删好友之前,还叫我 ...