在odoo视图中显示动态值?

时间:2018-09-07 06:50:08

标签: odoo odoo-9

我正在使用odoo9,弹出确认窗口,该窗口我想在其中显示一些动态值吗?我怎样才能做到这一点?请看一下屏幕截图 enter image description here

我想用一些动态值的用户名替换Current Contact。我怎样才能做到这一点? 下面是我的查看代码。

        <record id="view_dialog_temp_login_confirmation" model="ir.ui.view">
        <field name="name">Temp Login Confirmation</field>
        <field name="model">olims.message_dialog_box</field>
        <field name="arch" type="xml">
            <form string="Client User Confirmation">
                <p class="o_dialog_warning">
                   Current Contact user will be deleted.</p>
                <p>Do you really want to replace Contact User? </p>
                <field name="title" invisible="1"/>
                <footer>
                     <button name="create_temp_login" string="Yes" type="object" class="btn-primary"/>
                     <button string="No" class="btn-default" special="cancel"/>
                </footer>
            </form>
        </field>
    </record>

打开向导代码:

     @api.multi
     def open_temp_login_confirm_dialog(self, **kw):
    view_id = self.env['ir.ui.view'].search([('name', '=', 'Temp Login Confirmation')])

    return {
        'name': ('Confirmation'),
        'view_mode': 'form',
        'view_type': 'form',
        'res_model': 'olims.message_dialog_box',
        'view_id': [view_id.id],
        'target': 'new',
        'type': 'ir.actions.act_window',
        'context': context,
    }

1 个答案:

答案 0 :(得分:0)

您可以在向导模型Many2one上为关系res.partner添加olims.message_dialog_box,然后使用默认值扩展该向导的open_方法,也可以只创建一个向导记录,然后再打开它。

partner_id = fields.Many2one(comodel_name="res.partner")

变量1为默认值:

@api.multi
def open_temp_login_confirm_dialog(self):
    view_id = self.env['ir.ui.view'].search(
        [('name', '=', 'Temp Login Confirmation')])
    context = dict(self.env.context)
    context['default_partner_id'] = self.env.context.get('active_id')
    return {
        'name': ('Confirmation'),
        'view_mode': 'form',
        'view_type': 'form',
        'res_model': 'olims.message_dialog_box',
        'view_id': [view_id.id],
        'target': 'new',
        'type': 'ir.actions.act_window',
        'context': context,
    }

变体2和创建向导并打开它

@api.multi
def open_temp_login_confirm_dialog(self):
    view_id = self.env['ir.ui.view'].search(
        [('name', '=', 'Temp Login Confirmation')])
    wizard = self.env['olims.message_dialog_box'].create({
        'partner_id': self.env.context.get('active_id')}) 
    return {
        'name': ('Confirmation'),
        'view_mode': 'form',
        'view_type': 'form',
        'res_model': 'olims.message_dialog_box',
        'view_id': [view_id.id],
        'target': 'new',
        'type': 'ir.actions.act_window',
        'res_id': wizard.id
    }