我想创建一个行动,这将调用传递选定行的ID在树视图模型的方法在树视图中选择所有ID的方法,使行为是有效的在选择项目时在屏幕的右侧部分。如果不用一个'ok'按钮创建一个向导,可以这样做吗?OpenERP的:行动呼吁
通常情况下,我想能够调用ir.module.module的button_upgrade方法来一次更新几个模块,但是这将是很多情况下,在应用程序非常有用。
我正在使用OpenERP 6.1和Web客户端。
我想创建一个行动,这将调用传递选定行的ID在树视图模型的方法在树视图中选择所有ID的方法,使行为是有效的在选择项目时在屏幕的右侧部分。如果不用一个'ok'按钮创建一个向导,可以这样做吗?OpenERP的:行动呼吁
通常情况下,我想能够调用ir.module.module的button_upgrade方法来一次更新几个模块,但是这将是很多情况下,在应用程序非常有用。
我正在使用OpenERP 6.1和Web客户端。
我有old-style wizard这样做是在5.0,但我还没有看到一个办法做到这一点在6.1 web客户端,但。您仍然可以在6.1 GTK客户端中使用旧式向导,但它在Web客户端中不起作用。
我猜,你可以将财富消息放入OK对话框来招待你的用户。
您应该可以使用execute
操作执行此操作。 http://doc.openerp.com/v6.1/developer/03_modules_4.html#actions
我得到这个工作:
创建一个新的服务器操作,在设置»定制»低级别对象»动作»服务器操作:
创建一个新的活动绑定,在设置»自定义»低级别对象»操作»操作绑定:
的论坛主题"Action : how to get selected rows ?"被用作参考。 您可能还会感兴趣的Email Template's button自动创建一个操作,使用定义的电子邮件模板进行群发邮件。
设计明智,这是非常丑陋的(不是你的错)。我会给它一个去,并报告回来。 – 2012-07-30 15:09:55
为什么你认为这比OpenERP中的大多数事情都丑?@ gurneyalex?对我而言,这与您配置向导的方式大致相似。如果您不喜欢通过低级对象菜单进行配置,则可以在模块的XML数据文件中执行相同的操作。 – 2012-07-30 16:41:48
我真的不喜欢存储在字符串属性中的代码并进行评估。它通常会导致难以调试。这些数据在迁移过程中可能会有问题。 – 2012-07-31 09:00:20
我没有V6发动机,但这部作品在V7:
<record id="action_id_name" model="ir.actions.server">
<field name="name">Name that shows in More button</field>
<field name="type">ir.actions.server</field>
<field name="model_id" ref="model_blah_blah"/>
<field name="state">code</field>
<field name="code">self.some_custom_code(cr, uid, context.get('active_ids'), ..., context=context)</field>
</record>
<record id="value_id_name" model="ir.values">
<field name="name">Name</field>
<field name="action_id" ref="action_id_name"/>
<field name="value" eval="'ir.actions.server,' + str(ref('action_id_name'))"/>
<field name="key">action</field>
<field name="model_id" ref="model_blah_blah"/>
<field name="model">blah.blah</field>
<field name="key2">client_action_multi</field>
</record>
def some_custom_code(self, cursor, uid, ids, ..., context):
# possibly do some processing
# maybe with the ... extra fields you added
#
# post your changes, either with an sql statement or by calling
# self.write(...)
return True
,你应该与实际值进行替代的名称:
action_id_name
:id为您的操作记录Name that shows in More button
:无论你想在按钮中显示model_blah_blah
:使用的模型的名称(应匹配任何在security/ir.model.access.csv
文件中找到)some_custom_code
:函数的名称与型号value_id_name
:你的行为的价值记录的IDName
:一个名称(不知道在哪里它显示了)blah.blah
:名字你model
和OpenERP的符号table
...
:任何额外的参数/参数添加注:我改编自[OpenERP网站上的答案](https://www.odoo.com/forum/help-1/question/action-server-multi-checkbox-select-39058)。 – 2015-03-12 21:03:00
这就是我一开始想的,但不幸的是,该页面上关于“执行”操作的信息非常少。至于我甚至不确定OpenERP中实际存在这样的事情。在ir_actions.py中,没有什么与操作类型的“执行”非常相似。我很乐意接受关于这一问题的更详细的答案。 – 2012-07-30 15:08:08