Odoo 11自定义精灵功能

Odoo 11 customize wizard function

我想自定义一个向导按钮以允许 selected 项目并在我单击该按钮后将 done(Boolean) 更改为 True。这是我创建的示例视图和向导按钮。

下面是我在视图文件中的代码:

<record model="ir.actions.server" id="make_it_done">
    <field name="name">Make it done</field>
    <field name="condition">True</field>
    <field name="model_id" ref="model_todo_task"/>
    <field name="type">ir.actions.server</field>
    <field name="binding_model_id" ref="model_todo_task" />
    <field name="code">
        action = self.make_it_done()
    </field>
</record>

这是我的模型文件:

from odoo import api,fields, models
from odoo.addons.base.res.res_request import referenceable_models
from odoo.exceptions import ValidationError

class TodoTask(models.Model):

def make_it_done(self):
    print('Success!!')

我想创建一个向导功能,允许将所有 selected 项目更新为 "Done"(就像内置 "Archive" 功能一样)。但是根据我的代码,当我 select 项目并单击向导功能时,它什么也不做。

这是我收到的唯一回复(加载如上图所示)。然后所有复选框都将变为未选中状态。

我不知道我错过了什么,但 运行 代码根本就没有。 请帮我解决这个问题,提前谢谢大家!!

您只需将服务器操作的代码更改为:

<field name="code">records.make_it_done()</field>

records 将是所有标记列表条目的记录集。然后当然改变方法:

def make_it_done(self):
    self.done = True

也许您可以尝试添加一个名为 "state"

的字段
<field name="state">code</field>

在服务器操作中,它对我有用