odoo form视图点击按钮打开弹出视图

# 跳转到弹出的视图
    def jump_up_view(self, name, view_mode, model, module,
                     act_window, type, target, view_name):
        """
        视图跳转(弹框)
        name:自定义名称
        view_mode:视图类型(tree,form,或者其他)
        model:模型名
        module:模块名(包名)
        act_window:action id,就是指定tree,form视图那个action
        type:'ir.actions.act_window'
        target:打开视图的方式:new打开弹窗,form跳转,current新页面
        view_name:新的视图id
        """
        action = {
            'name': _(name),
            'view_mode': view_mode,
            'res_model': model,
            'type': type,
            'target': target,
            'act_window_id': self.env.ref('{}.{}'.format(module, act_window)).id,
            'view_id': self.env.ref('{}.{}'.format(module, view_name)).id,
            'res_id': self.id,
        }
        return action

    # 跳转视图
    def add_student(self):
        action = self.jump_up_view("添加学生", 'form', 'hw.class', 'hw_student',
                                   'action_add_student', 'ir.actions.act_window',
                                   'new', 'view_class_add_student_form')
        if self.class_student_ids.exists():
            student_list = self.class_student_ids.read(['student_id'])
            student_list = [item['student_id'][0] for item in student_list]
            self.student_ids = [(6, 0, student_list)]
        return action

    def button_true(self):
        # 添加学生
        for student_item in self.student_ids:
            # 查询学生是否被添加
            class_student_id = self.env['hw.class.student'].sudo().search([('student_id', '=', student_item.id), ('class_id', '=', self.id)])
            if class_student_id.exists():
                continue
            else:
                # 创建学生和班级的关联
                self.env['hw.class.student'].sudo().create({
                    'class_id': self.id,
                    'student_id': student_item.id,
                })
        self.student_ids = None
<record id="view_class_add_student_form" model="ir.ui.view">
        <field name="name">添加学生</field>
        <field name="model">hw.class</field>
        <field name="priority" eval="101"/>
        <field name="arch" type="xml">
            <form string="学生">
                <group>
                    <field name="student_ids"/>
                </group>
                <footer>
                    <button name="button_true" string="确认" type="object" class="btn-primary"/>
                    <button string="取消" class="btn-secondary" special="cancel"/>
                </footer>
            </form>
        </field>
    </record>
    <record id="action_add_student" model="ir.actions.act_window">
        <field name="name">添加学生</field>
        <field name="res_model">hw.class</field>
        <field name="view_mode">form</field>
        <field name="view_id" ref="view_class_add_student_form"/>
    </record>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值