This question has been flagged
1 Reply
4453 Views

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.

Avatar
Discard
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.

Avatar
Discard
Author

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.