Odoo覆盖删除记录确认对话框

问题描述

您好,我需要向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文档。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...