33 lines
No EOL
1.3 KiB
Python
33 lines
No EOL
1.3 KiB
Python
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' 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
|
|
elif '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
|
|
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 |