gpt4 book ai didi

odoo - 在 openerp 中确认一个条件对话框和动态文本

转载 作者:行者123 更新时间:2023-12-02 08:37:56 27 4
gpt4 key购买 nike

我发现下面弹出了一个关于 openerp 中按钮按下操作的确认对话框

<button name="action_button_confirm" states="draft" string="Confirm Sale" 
type="object" groups="base.group_user" confirm="Do you confirm this sale?"/>

我希望仅当订单行中的产品之一是服务时才显示确认文本,文本应该是

Do you like to confirm sale with service "AC Service"?

其中 Ac Services 是服务产品名称(即基于订单的动态文本)。请建议我一种方法来做到这一点。谢谢

最佳答案

我已经创建了一个向导,用于在某种情况下发出警报,这对我来说非常有用。对于有类似问题的人,我将我的想法放在下面

我的新向导类

class sale_order_confirm(osv.osv):
_name = "sale.order.confirm"
_description = "Sales Order Confirm"
def action_confirm(self, cr, uid, ids, context=None):
assert len(ids) == 1, 'This option should only be used for a single id at a time.'
wf_service = netsvc.LocalService('workflow')
wf_service.trg_validate(uid, 'sale.order', ids[0], 'order_confirm', cr)

# redisplay the record as a sales order
view_ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'sale', 'view_order_form')
view_id = view_ref and view_ref[1] or False,
return {
'type': 'ir.actions.act_window',
'name': _('Sales Order'),
'res_model': 'sale.order',
'res_id': ids[0],
'view_type': 'form',
'view_mode': 'form',
'view_id': view_id,
'target': 'current',
'nodestroy': True,
}
sale_order_confirm()

我的观看记录

<record id="view_cancel_order" model="ir.ui.view">
<field name="name">Cancel Repair</field>
<field name="model">sale.order.confirm</field>
<field name="arch" type="xml">
<form string="Confirm Sale Order" version="7.0">
<group>
<label string="This Sale Order will be confirmed with service Product. Agree?"/>
</group>
<footer>
<button name="action_confirm" string="Yes" type="object" class="oe_highlight"/>
or
<button string="Cancel" class="oe_link" special="cancel" />
</footer>
</form>
</field>
</record>

我稍微更改了 sale_order.py 中的 action_button_confirm 函数

def action_button_confirm(self, cr, uid, ids, context=None):
assert len(ids) == 1, 'This option should only be used for a single id at a time.'
is_optional_item_exists = False # here i can check for wt ever condition and this variable will have the resul
so_obj = self.browse(cr, uid, ids, context)
if so_obj:
for line in so_obj[0].order_line:
print line.name
if line.is_optional_item:
is_optional_item_exists = True

if(is_optional_item_exists):
return {
'name': 'Order Confirmation',
'view_type': 'form',
'view_mode': 'form',
'res_model': 'sale.order.confirm',
'type': 'ir.actions.act_window',
'nodestroy': True,
'target': 'new',
}
else:
wf_service = netsvc.LocalService('workflow')
wf_service.trg_validate(uid, 'sale.order', ids[0], 'order_confirm', cr)

# redisplay the record as a sales order
view_ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'sale', 'view_order_form')
view_id = view_ref and view_ref[1] or False,
return {
'type': 'ir.actions.act_window',
'name': _('Sales Order'),
'res_model': 'sale.order',
'res_id': ids[0],
'view_type': 'form',
'view_mode': 'form',
'view_id': view_id,
'target': 'current',
'nodestroy': True,
}

谢谢大家干杯!

关于odoo - 在 openerp 中确认一个条件对话框和动态文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19354424/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com