xml声明

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

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

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

button事件调用action

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

    或者自定义:
  1. 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. 1 _onBtnClicked: function (ev) {
  2. 2 this.do_action({
  3. 3 type: 'ir.actions.act_window',
  4. 4 name: this.title,
  5. 5 res_model: this.modelName,
  6. 6 views: [[false, 'list'], [false, 'form']],
  7. 7 domain: ev.data.domain,
  8. 8 });
  9. 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. scanf("%d",a[i]+j)为什么不加取地址符号

    为什么我画的地方不加取地址符号? 不要在意标题为什么不加分号,因为长度太长了! 二维数组a[3][5]中,a[3]储存的是下一维的地址,a[1]等同于&a[1][0] 同理,a[1]+1等于& ...

  2. 12┃音视频直播系统之 WebRTC 实现1对1直播系统实战

    一.搭建 Web 服务器 前面我们已经实现过,但是没有详细说HTTPS服务 首先需要引入了 express 库,它的功能非常强大,用它来实现 Web 服务器非常方便 同时还需要引入 HTTPS 服务, ...

  3. K8S 使用Kubeadm搭建单个Master节点的Kubernetes(K8S)~本文仅用于测试学习

    01.集群规划 系统版本:CentOS Linux release 7.6.1810 (Core) 软件版本:kubeadm.kubernetes-1.15.docker-ce-18.09 硬件要求: ...

  4. [学习笔记] pd_ds黑科技

    https://www.cnblogs.com/jiqimin/p/11226809.html 丢个链接,跑路 // Author: wlzhouzhuan #pragma GCC optimize( ...

  5. Spring Security整合企业微信的扫码登录,企微的API震惊到我了

    本文代码: https://gitee.com/felord/spring-security-oauth2-tutorial/tree/wwopen/ 现在很多企业都接入了企业微信,作为私域社群工具, ...

  6. Node.js精进(1)——模块化

    模块化是一种将软件功能抽离成独立.可交互的软件设计技术,能促进大型应用程序和系统的构建. Node.js内置了两种模块系统,分别是默认的CommonJS模块和浏览器所支持的ECMAScript模块. ...

  7. 高通sensor理解

    .1.高通为什么引入adsp? 2.adsp sensor 是如何工作起来的? 3.adsp 和ap 是如何通信的? 4.adsp 架构组成 解答: 1.高通在msm8960之前sensor 是挂在p ...

  8. 基于.NetCore开发博客项目 StarBlog - (12) Razor页面动态编译

    系列文章 基于.NetCore开发博客项目 StarBlog - (1) 为什么需要自己写一个博客? 基于.NetCore开发博客项目 StarBlog - (2) 环境准备和创建项目 基于.NetC ...

  9. SAP OOALV- 合计

    TYPES: BEGIN OF ty_mara, srno LIKE adrc-name1, " Storing the total text matnr LIKE mara-matnr, ...

  10. nginx转发rabbitmq

    第一种: 直接加个location块 location /rabbitmq/ { proxy_pass http://127.0.0.1:15672/; } 第二种: location /rabbit ...