问题描述
您好,我需要向Odoo 12上的删除记录确认对话框中添加一些信息,添加一些有关将删除多少个相关记录的信息。像这样:
Are you sure you want to delete this record ?
Doing this you will lose N records.
当前在_deleteRecords
方法的“ addons / web / static / src / js / views / basic / basic_controller.js”上定义。但是,如果我在那里更改它,则所有我的模块都将改变。
我想知道是否有一种方法可以覆盖它...或者我的另一个想法是隐藏按钮并使用向导来完成。
有什么主意吗?
解决方法
默认情况下,odoo可以从xml文件中执行此操作,但是如果您需要动态消息,则
请为向导创建一个瞬态模型,该模型有两个字段,即消息字段和主窗体视图ID,之后您只需覆盖方法unlink
,并在方法中进行计算(如果要确认删除),然后返回在这种情况下:
return{
'type':'ir.actions.act_window','name':'Message','res_model':'your.wizard.model','view_type':'form','view_mode':'form','target':'new','context':{'thesis_obj':self.id,'text_message_field':'course Work completed'},'res_id':value.id
}
打开向导后,您拥有向导的表单视图了吗? 在向导表单视图中,如果用户单击确定按钮,然后调用您必须首先从中执行的原始方法。
向导视图参考:
<record id="wizard_message_form_view" model="ir.ui.view">
<field name="name">Approval Message</field>
<field name="model">your.wizard.model</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Message">
<separator string="Message" colspan="6"/>
<field name="text_message" colspan="4" nolabel="1" readonly="1" widget="html"/>
<newline/>
<separator colspan="6"/>
<footer>
<button name="btn_approve_oric" type="object" string="OK" class="oe_highlight"/>
<button special="cancel" string="No"/>
</footer>
</form>
</field>
随便问。
,您可以使用basic_controller
方法来修改include()
。例如,检查模型名称是否为res.partner
并显示自定义对话框,然后如果条件评估为{{1,则通过将confirmOnDelete
设置为False
来强制Odoo忽略默认对话框。 }}或用户确认对话框,调用false
方法。
示例:
_super
要添加上述代码,请查看Assets Management文档。