Skip to content

Instantly share code, notes, and snippets.

@3mrdev
Last active December 20, 2022 10:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 3mrdev/6eb02002963b4f8ada644f7265c2b284 to your computer and use it in GitHub Desktop.
Save 3mrdev/6eb02002963b4f8ada644f7265c2b284 to your computer and use it in GitHub Desktop.
Using Inheritance Add a smart button with an action to view a list of one2many or many2many records
class Customer(models.Model):
_inherit = "res.partner"
orders = fields.One2many('sale.order', 'partner_id', string="Orders")
orders_count = fields.Integer(compute='_orders_count', string="Orders Count",store=True)
@api.depends("orders")
def _orders_count(self):
for rel in self:
count_id = self.env['sale.order'].search_count([('partner_id', '=', rel.id)])
rel.orders_count = count_id
def button_action_orders(self):
return {
'name': 'Orders',
'type': 'ir.actions.act_window',
'domain': [('partner_id', '=', self.id)],
'view_type': 'form',
'view_mode': 'tree,form',
'res_model': 'sale.order',
'view_id': False,
'views': [(self.env.ref('sale.view_order_tree').id, 'tree'),
(self.env.ref('sale.view_order_form').id, 'form')],
'target': 'current',
}
<odoo>
<data>
<record id="res_partner_form_inherit" model="ir.ui.view">
<field name="name">res.partner.form.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="priority" eval="8"/>
<field name="arch" type="xml">
<xpath expr="//form/sheet/div[@class='oe_button_box']" position="inside">
<button name="button_action_orders" type="object" class="oe_stat_button" icon="fa-exchange">
<field name="orders_count" widget="statinfo" string="Orders"/>
</button>
</xpath>
</field>
</record>
</data>
</odoo>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment