odoo视图 “动作” 里添加菜单按钮:案例

###################################################################################
#odoo中常用方法,在动作里面添加按钮:执行批量操作
#
###################################################################################

import re
import json
import logging

from lxml import etree

from odoo import api, fields, models

_logger = logging.getLogger(__name__)





class ResUser(models.Model):
_inherit = 'res.users'




@api.multi
def batch_select_action(self):
for order in self:
"""编写你想要实现的功能代码"""
pass





#action对应的xml情况
#在动作里添加下拉的向导:情况2:直接执行函数---002

<record id="model_res_users_submit_action_server" model="ir.actions.server">
<field name="name">Submit To Manager</field>
<field name="type">ir.actions.server</field>
<field name="model_id" ref="model_res_users"/>
<field name="state">code</field>
<field name="code">
if records:
action = records.batch_select_action()
</field>
</record>

<record id="action_res_users_submit" model="ir.values">
<field name="name">Submit To Manager</field>
<field name="model_id" ref="model_res_users"/>
<field name=
"model">res.users</field>
<field name=
"key2">client_action_multi</field>
<field eval=
"'ir.actions.server,%d'%model_res_users_submit_action_server" name="value"/>
</record>









#在xml里编写的动作:

情况00001---odoo12、odoo10均可用

"""
在动作里添加下拉的向导:情况1、弹出向导,在向导里添加动作

<act_window id="action_export_wizard"
name="导出Excel"
src_model="res.users" #所在模型
res_model="export.test.wizard" #菜单打开的向导模型
view_type="tree" view_mode="form" #所在视图
target="new"/> #新界面

<record id="export_wizard_view" model="ir.ui.view">
<field name="name">export test wizard</field>
<field name="model">export.test.wizard</field>
<field name="arch" type="xml">
<form string="导出记录">
<footer>
<button string="confirm" class="btn-primary" name="action_export" type="object"/>
<button string="cancel" class="btn-default" special="cancel" />
</footer>
</form>
</field>
</record>


"""




# odoo10中可用,odoo12中待验证
#情况00002
#在动作里添加下拉的向导:情况2:直接执行函数


<record id="action_assign_salesman_according_assigned_partner" model="ir.actions.server">
<field name="name">Assign salesman</field>
<field name="model_id" ref="model_crm_lead"/>
<field name="state">code</field>
<field name="code">
if env.context.get('active_domain'):
records = model.search(env.context['active_domain'])
records.assign_salesman_of_assigned_partner()
</field>
</record>

<record model="ir.values" id="ir_assign_salesman_according_assigned_partner">
<field name="model_id" ref="model_crm_lead" />
<field name="name">Assign salesman of assigned partner</field>
<field name="key2">client_action_multi</field>
<field eval="'ir.actions.server,%d'%action_assign_salesman_according_assigned_partner" name="value"/>
<field name="key">action</field>
<field name="model">crm.lead</field>
</record>






原文地址:https://www.cnblogs.com/1314520xh/p/11257333.html