如何将条目添加到“更多"菜单或顶部菜单以对多项选择添加操作? [英] How to add entry to 'More' menu or top menu to add action on multiple selections?

查看:20
本文介绍了如何将条目添加到“更多"菜单或顶部菜单以对多项选择添加操作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过选择的订单行创建交货,但无法显示按钮.

I want to create delivery from a selection of order lines, but I can't get the button to appear.

compose_delivery_order/
├── delivery_order_button.py
├── delivery_order_button.xml
├── images/
│   └── delivery_order_button.png
├── __init__.py
├── __openerp__.py
├── order_to_invoice_create_delivery_button.py
├── order_to_invoice_create_delivery_button.xml ← I'm working on this
├── sale_order_button.py
└── sale_order_confirm_button.xml

XML

<record id="action_sale_order_liquidar" model="ir.actions.server">
    <field name="name">Liquidar</field>
    <field name="type">ir.actions.server</field>
    <field name="model_id" ref="model_sale_order"/>
    <field name="state">code</field>
    <field name="code">self.some_custom_code(cr, uid, context.get('active_ids'), context=context)</field>
</record><record id="id_of_the_action_value" model="ir.values">
    <field name="name">Liquidar</field>
    <field name="action_id" ref="action_sale_order_liquidar"/>
    <field name="value" eval="'ir.actions.server,' + str(ref('action_sale_order_liquidar'))"/>
    <field name="key">action</field>
    <field name="model_id" ref="model_sale_order"/>
    <field name="model">sale.order</field>
    <field name="key2">client_action_multi</field>
</record>

Python

import logging
from openerp import netsvc
from openerp.osv import osv

logger = logging.getLogger(__name__)

class sale_order_line(osv.osv):
    _inherit = 'sale.order.line'

    def some_custom_code(self, db_cursor, user_id, ids, context=None):
        logger.error('+ + + + + + sale_order_line -> some_custom_code + + + + + + ')
        return True


def some_custom_code(self, db_cursor, user_id, ids, context=None):
    logger.error('+ + + + + + some_custom_code + + + + + + ')
    return True

问题

如何添加按钮?[More v] 的子菜单或 [Create] 或 Import 旁边.

Question

How do I add the button ? Either to submenu of [More v] or next to [Create] or Import.

注意:我检查它是在 __openerp__.pydata 部分导入的.

N.B.: I check it's imported in the __openerp__.py's data section.

推荐答案

更多菜单上添加新菜单时,您需要注意以下事项.

You need take care of below things while adding new menu on More menu.

  • 注册表单视图
  • 注册动作视图
  • 注册ir_values(从您要显示菜单的位置)
  • 给出适当的相关view_id参考
  • target 动作视图中的属性
  • 记录标签提供相关名称
  • register form view
  • register action view
  • register ir_values (from where you want to display menu)
  • give proper related view_id reference
  • target attribute in action view
  • give related name for record tag

尝试使用以下代码(在 .xml 文件中添加代码):

Try with below code (add code on .xml file):

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <record id="view_create_delivery_button" model="ir.ui.view">
            <field name="name">Create Delivery</field>
            <field name="model">sale.order.line</field>
            <field name="arch" type="xml">
                <form string="Create Delivery" version="7.0">

                    <!-- Design Form or put your field here -->                
                    <footer>
                        <!-- Add button on footer of pop-up window -->
                    </footer>
               </form>
            </field>
        </record>

        <record id="action_create_delivery_button" model="ir.actions.act_window">
            <field name="name">Create Delivery</field>
            <field name="type">ir.actions.act_window</field>
            <field name="res_model">sale.order.line</field>
            <field name="view_type">form</field>
            <field name="view_mode">form</field>
            <field name="view_id" ref="view_create_delivery_button"/>
            <field name="target">new</field>
            <field name="multi">True</field>
        </record>

        <record model="ir.values" id="ir_values_create_delivery_button">
            <field name="model_id" ref="sale.model_sale_order_line" />
            <field name="name">Create Delivery</field>
            <field name="key2">client_action_multi</field>
            <field name="value" eval="'ir.actions.act_window,' + str(ref('action_create_delivery_button'))" />
            <field name="key">action</field>
            <field name="model">sale.order.line</field>
        </record>
    </data>
</openerp>

这篇关于如何将条目添加到“更多"菜单或顶部菜单以对多项选择添加操作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆