changes
This commit is contained in:
60
fusion_inventory/models/res_partner.py
Normal file
60
fusion_inventory/models/res_partner.py
Normal file
@@ -0,0 +1,60 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2026 Nexa Systems Inc.
|
||||
# License OPL-1 (Odoo Proprietary License v1.0)
|
||||
|
||||
from odoo import models, fields, api
|
||||
|
||||
|
||||
class ResPartner(models.Model):
|
||||
_inherit = 'res.partner'
|
||||
|
||||
brand_ids = fields.One2many(
|
||||
'product.brand', 'partner_id', string='Brands')
|
||||
brand_count = fields.Integer(
|
||||
string='Brands', compute='_compute_brand_count')
|
||||
|
||||
def _compute_brand_count(self):
|
||||
for partner in self:
|
||||
partner.brand_count = len(partner.brand_ids)
|
||||
|
||||
def action_view_brands(self):
|
||||
self.ensure_one()
|
||||
brands = self.brand_ids
|
||||
if len(brands) == 1:
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'res_model': 'product.brand',
|
||||
'res_id': brands.id,
|
||||
'view_mode': 'form',
|
||||
}
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'name': f'Brands: {self.name}',
|
||||
'res_model': 'product.brand',
|
||||
'view_mode': 'list,form',
|
||||
'domain': [('partner_id', '=', self.id)],
|
||||
'context': {'default_partner_id': self.id},
|
||||
}
|
||||
|
||||
def action_create_brand(self):
|
||||
self.ensure_one()
|
||||
existing = self.env['product.brand'].search(
|
||||
[('partner_id', '=', self.id)], limit=1)
|
||||
if existing:
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'res_model': 'product.brand',
|
||||
'res_id': existing.id,
|
||||
'view_mode': 'form',
|
||||
}
|
||||
brand = self.env['product.brand'].create({
|
||||
'name': self.name,
|
||||
'partner_id': self.id,
|
||||
'logo': self.image_128 or False,
|
||||
})
|
||||
return {
|
||||
'type': 'ir.actions.act_window',
|
||||
'res_model': 'product.brand',
|
||||
'res_id': brand.id,
|
||||
'view_mode': 'form',
|
||||
}
|
||||
Reference in New Issue
Block a user