阅读 84

Odoo14 ir.actions.act_window

xml声明

 1     <record id="res_company_user_action" model="ir.actions.act_window">
 2         <field name="name">Usersfield>
 3         <field name="res_model">res.usersfield>
 4         <field name="view_mode">tree,form,kanbanfield>
 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 Actionfield>
3         <field name="model_id" ref="base.model_res_users"/>
4         <field name="state">codefield>
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 Actionfield>
 3         <field name="model_id" ref="base.model_res_company"/>
 4         <field name="state">codefield>
 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

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         },

 

原文:https://www.cnblogs.com/watermeloncode/p/15206043.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐