Help

0

How do I extend a view (specifically the warehouse/picking list) to add a button which launches a method?

Avatar
E.M.

I want to create a new method to create a CSV with all picking items within a picking list.

I am specifically looking to understand how to extend a view by adding a button and associating that new method to it.

I am familiar with inheritance and module extension, I just never had to create a new button over an existing view.

الصورة الرمزية
تجاهل
1 إجابة
1
Avatar
Bernat Llibre
Best Answer

Here is an example:

I had to add a button in the orders view next to Reprint button.


View:

<openerp>
     <data>
         <record model="ir.ui.view" id="tpv_order_mail">
             <field name="name">pos.order.mail</field>
             <field name="model">pos.order</field>
             <field name="inherit_id" ref="point_of_sale.view_pos_pos_form"/>
             <field name="arch" type="xml">
                  <xpath expr="//field[@name='state']" position="before">
                         <button name="send_invoice" string="Send to..." type="object"/>
                  </xpath>

            </field>
        </record>
     </data>
</openerp>


The xpath is to select where the new element will be placed, so we tell the view to place the new button before the field named 'state'.


python:

We used an example to call the function of the new button:
@api.model
def send_invoice(self, context=None):
     return {
         'warning': {
            'title': "Toy op",

            'message': "Sepin el mandarin",
        }
    }


Hope this is useful.

1 تعليق
الصورة الرمزية
تجاهل
Avatar
E.M.
-

Thanks this is really useful. However, I am trying to fully understand this part: pos.order.mail pos.order Could you please clarify what is used in each "id=" / name="name" and name="model" respectively? I feel like I do not fully understand what represents each field.