【odoo15】在odoo中添加智能按钮Smart Buttons做一个统计的简单逻辑

在mykid的视图里添加一个智能按钮,可以显示出该用户的订单数量有几笔

点击后可跳转至筛选后的tree页面,展示详细订单。

代码部分的xml视图,添加到 mykid_form视图中:【升级后就能看到智能按钮的图标,可以先不写逻辑,直接【action_mykid】里边print看一下效果也行】

 

其中【value2】是一个计算字段。智能按钮的图标icon,按钮名<span>按钮名</span>可以根据自己需要的按钮功能来更改,button的name为action_mykid是要在py中定义这个方法的。

 mysale_name = fields.Many2one('mysale.mysale', string="用户姓名")
    value2 = fields.Integer(compute='_compute_value2')

    def action_mykid(self):
        return {
            'type': 'ir.actions.act_window',
            'name': 'mysale_tree',
            'res_model': 'mysale.mysale',
            'view_mode': 'tree,form',
            'domain': [('name', '=', self.mysale_name.name)],
            'target': 'current',
        }

基本逻辑:使用domain匹配到本模型中【mykid】的mysale_name的value值与【mysale】中的name值匹配姓名的订单数量。

 完整xml的form视图代码:

 <record model="ir.ui.view" id="mykid_list_form">
        <field name="name">mykid_form</field>
        <field name="model">mykid.mykid</field>
        <field name="arch" type="xml">
            <form>
                <sheet>
                    <div class="oe_button_box" name="button_box">
                        <button name="action_mykid" class="o_stat_button" icon="fa-calendar" type="object">
                            <div class="o_stat_info">
                                <field name="value2" class="o_stat_value"/>
                                <span class="o_stat_text">Test</span>
                            </div>
                        </button>
                    </div>
                    <group class="top">
                        <group class="left">
                            <field name="mysale_name" string="用户姓名"/>
                            <field name="mysale_gender" string="用户性别" readonly="1" force_save="1"/>
                        </group>
                        <group class="right">
                            <field name="value" string="test_1"/>
                            <field name="value2" string="test_count" readonly="1"/>
                        </group>
                    </group>
                    <notebook>
                        <page string="my notebook" name="mysale_notebook">
                            <group>
                                <field name="mysale_name"/>
                            </group>
                        </page>
                        <page string="my notebook2" name="mykid">
                            <tree editable="bottom">
                                <field name="mysale_name"/>
                            </tree>
                        </page>
                    </notebook>
                </sheet>
            </form>
        </field>
    </record>

使用动态视图的方式来添加智能按钮。(没有搞太懂,以后遇到了再研究,先记录一下):

<!--    test active_id -->
      <record model="ir.actions.act_window" id="action_open_appointment">
        <field name="name">appointments</field>
        <field name="type">ir.actions.act_window</field>
        <field name="res_model">mysale.mysale</field>
        <field name="view_mode">tree,form</field>
        <field name="domain">[('product_id','=',active_id)]</field>
        <field name="context">{}</field>
        <field name="help" type="html">
            <p class="o_view_nocontent_smiling_face">
                这是一个提示信息!
            </p>
        </field>
    </record>

在mysale的xml里添加:id为【action_open_appointment

<div class="oe_button_box" name="button_box">

                        <button name="%(mysale.action_open_appointment)d" 

class="o_stat_button" icon="fa-calendar" type="action">

                            <div class="o_stat_info">
                                <field name="product_id" class="o_stat_value"/>
                                <span class="o_stat_text">Test</span>
                            </div>

                        </button>

</div>

直接使用%(模型+动作)d的方式不需要在py中定义动作。不过效果并没有实现,也没有弄明白这个所谓的动态 active_id是什么意思,以后再搞。

 【点击后】--->

原来案例里边是是一个计算字段:appointment_count

 我的只是个m2o字段。不改了,知道是干什么用的就行了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值