Odoo 9 我在哪里可以找到 stock.move xml 中的操作按钮下拉菜单?
Odoo 9 where can I find action button dropdown in stock.move xml?
我想将 action
按钮下拉菜单更改为 adding
或 deleting
stock.move class
中的子菜单(或更改导出功能),但我找不到放置在 xml
中,其中描述了带有 "export"
和 "delete"
下拉菜单的按钮 "action"
。据我了解,它必须是 record model="ir.actions.act_window"
并且在 tree
view.
我说的是这个菜单:
(source: part.lt)
我有这些 xml 来自核心 stock
插件:
<record id="act_product_stock_move_open" model="ir.actions.act_window">
<field name="context">{'search_default_product_id': active_id, 'default_product_id': active_id}</field>
<field name="name">Moves</field>
<field name="res_model">stock.move</field>
<field name="view_id" ref="stock.view_move_tree"/>
</record>
<record id="action_move_form2" model="ir.actions.act_window">
<field name="name">Stock Moves</field>
<field name="res_model">stock.move</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_move_tree"/>
<field name="search_view_id" ref="view_move_search"/>
<field name="context">{}</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a stock movement.
</p><p>
This menu gives you the full traceability of inventory
operations on a specific product. You can filter on the product
to see all the past or future movements for the product.
</p>
</field>
</record>
<record model="ir.actions.act_window.view" id="action_stock_move_tree_all">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_move_tree"/>
<field name="act_window_id" ref="action_move_form2"/>
</record>
<record model="ir.actions.act_window.view" id="action_stock_move_form_all">
<field name="sequence" eval="3"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_move_form"/>
<field name="act_window_id" ref="action_move_form2"/>
</record>
<record model="ir.actions.act_window.view" id="action_stock_move_graph_all">
<field name="sequence" eval="3"/>
<field name="view_mode">graph</field>
<field name="view_id" ref="view_move_graph"/>
<field name="act_window_id" ref="action_move_form2"/>
</record>
也许我搜索的地方不对?
base.xml
(at addons/web/static/src/xml/base.xml) 有 FieldBinaryFileUploader 调用控制器 /web/binary/upload_attachment
(at addons/web/controllers/main.py)
<t t-name="FieldBinaryFileUploader">
<div t-att-style="widget.node.attrs.style" t-attf-class="oe_fileupload #{widget.node.attrs.class ? widget.node.attrs.class :''}">
<div class="oe_placeholder_files"/>
<div class="oe_add" t-if="!widget.get('effective_readonly')">
<!-- uploader of file -->
<button class="oe_attach"><i class="fa fa-paperclip"/></button>
<span class='oe_attach_label'><t t-esc="widget.string"/></span>
<t t-call="HiddenInputFile">
<t t-set="fileupload_id" t-value="widget.fileupload_id"/>
<t t-set="fileupload_action" t-translation="off">/web/binary/upload_attachment</t>
<input type="hidden" name="model" t-att-value="widget.view.model"/>
<input type="hidden" name="id" value="0"/>
<input type="hidden" name="session_id" t-att-value="widget.session.session_id" t-if="widget.session.override_session"/>
</t>
</div>
</div>
</t>
已编辑:用于在选项中添加新值
在 xml 中创建 model="ir.values"
的记录并将 stock.move 放入 <field name="model">
并创建操作
<record id="my_module.my_new_action_stock_move" model="ir.actions.server">
或
<record id="my_module.my_new_action_stock_move" model="ir.actions.act_window">
用于处理动作的点击
示例代码 ir.values 如下:
<record model="ir.values" id="my_module.model_stock_move_values">
<field name="model_id" ref="stock.model_stock_move" />
<field name="name">My Options</field>
<field name="key2">client_action_multi</field>
<field name="value" eval="'ir.actions.act_window,'+str(ref('my_module.my_new_action_stock_move'))" />
<field name="key">action</field>
<field name="model">stock.move</field>
</record>
希望此参考资料有助于理解导出的工作原理。
我想将 action
按钮下拉菜单更改为 adding
或 deleting
stock.move class
中的子菜单(或更改导出功能),但我找不到放置在 xml
中,其中描述了带有 "export"
和 "delete"
下拉菜单的按钮 "action"
。据我了解,它必须是 record model="ir.actions.act_window"
并且在 tree
view.
我说的是这个菜单:
(source: part.lt)
我有这些 xml 来自核心 stock
插件:
<record id="act_product_stock_move_open" model="ir.actions.act_window">
<field name="context">{'search_default_product_id': active_id, 'default_product_id': active_id}</field>
<field name="name">Moves</field>
<field name="res_model">stock.move</field>
<field name="view_id" ref="stock.view_move_tree"/>
</record>
<record id="action_move_form2" model="ir.actions.act_window">
<field name="name">Stock Moves</field>
<field name="res_model">stock.move</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_move_tree"/>
<field name="search_view_id" ref="view_move_search"/>
<field name="context">{}</field>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
Click to create a stock movement.
</p><p>
This menu gives you the full traceability of inventory
operations on a specific product. You can filter on the product
to see all the past or future movements for the product.
</p>
</field>
</record>
<record model="ir.actions.act_window.view" id="action_stock_move_tree_all">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_move_tree"/>
<field name="act_window_id" ref="action_move_form2"/>
</record>
<record model="ir.actions.act_window.view" id="action_stock_move_form_all">
<field name="sequence" eval="3"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_move_form"/>
<field name="act_window_id" ref="action_move_form2"/>
</record>
<record model="ir.actions.act_window.view" id="action_stock_move_graph_all">
<field name="sequence" eval="3"/>
<field name="view_mode">graph</field>
<field name="view_id" ref="view_move_graph"/>
<field name="act_window_id" ref="action_move_form2"/>
</record>
也许我搜索的地方不对?
base.xml
(at addons/web/static/src/xml/base.xml) 有 FieldBinaryFileUploader 调用控制器 /web/binary/upload_attachment
(at addons/web/controllers/main.py)
<t t-name="FieldBinaryFileUploader">
<div t-att-style="widget.node.attrs.style" t-attf-class="oe_fileupload #{widget.node.attrs.class ? widget.node.attrs.class :''}">
<div class="oe_placeholder_files"/>
<div class="oe_add" t-if="!widget.get('effective_readonly')">
<!-- uploader of file -->
<button class="oe_attach"><i class="fa fa-paperclip"/></button>
<span class='oe_attach_label'><t t-esc="widget.string"/></span>
<t t-call="HiddenInputFile">
<t t-set="fileupload_id" t-value="widget.fileupload_id"/>
<t t-set="fileupload_action" t-translation="off">/web/binary/upload_attachment</t>
<input type="hidden" name="model" t-att-value="widget.view.model"/>
<input type="hidden" name="id" value="0"/>
<input type="hidden" name="session_id" t-att-value="widget.session.session_id" t-if="widget.session.override_session"/>
</t>
</div>
</div>
</t>
已编辑:用于在选项中添加新值
在 xml 中创建 model="ir.values"
的记录并将 stock.move 放入 <field name="model">
并创建操作
<record id="my_module.my_new_action_stock_move" model="ir.actions.server">
或
<record id="my_module.my_new_action_stock_move" model="ir.actions.act_window">
用于处理动作的点击
示例代码 ir.values 如下:
<record model="ir.values" id="my_module.model_stock_move_values">
<field name="model_id" ref="stock.model_stock_move" />
<field name="name">My Options</field>
<field name="key2">client_action_multi</field>
<field name="value" eval="'ir.actions.act_window,'+str(ref('my_module.my_new_action_stock_move'))" />
<field name="key">action</field>
<field name="model">stock.move</field>
</record>
希望此参考资料有助于理解导出的工作原理。