from odoo import tools, models, fields, api, _ class ProductTemplate(models.Model): _inherit = "product.template" @api.model def create(self, vals): vals = self.set_distribution_fields(vals) return super(ProductTemplate, self).create(vals) def write(self, vals): vals = self.set_distribution_fields(vals) return super().write(vals) def set_distribution_fields(self, vals): if 'in_distribution_music' in vals: if self.env.user.company_id.web_cat_in_distribution_musica: category_id = self.env.user.company_id.web_cat_in_distribution_musica.id elif 'in_distribution' in vals: if self.env.user.company_id.web_cat_in_distribution_libros: category_id = self.env.user.company_id.web_cat_in_distribution_libros.id else: return vals if vals.get('in_distribution', False) or vals.get('in_distribution_music', False): vals['public_categ_ids'] = [(4,category_id)] if self.env.user.company_id.web_ribbon_in_distribution: ribbon_id = self.env.user.company_id.web_ribbon_in_distribution.id vals['website_ribbon_id'] = ribbon_id else: vals['public_categ_ids'] = [(3,category_id)] vals['website_ribbon_id'] = False return vals