Trợ giúp


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


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.

Ảnh đại diện
Huỷ bỏ
1 Trả lời
Bernat Llibre
Best Answer

Here is an example:

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


         <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"/>


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'.


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

            'message': "Sepin el mandarin",

Hope this is useful.

1 Bình luận
Ảnh đại diện
Huỷ bỏ

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.