upgrade v16. configura automáticamente la categoría del website y el

ribbon del producto según configuraciones en la compañía cuando se
actualizan los campos en distribución.
This commit is contained in:
snt 2024-09-05 01:47:15 +02:00
parent 823589afb0
commit e102c0e517
11 changed files with 166 additions and 30 deletions

View file

@ -0,0 +1,5 @@
from . import product_template
from . import res_company
from . import res_config_settings

View file

@ -0,0 +1,38 @@
from odoo import tools, models, fields, api, _
class ProductTemplate(models.Model):
_inherit = "product.template"
def write(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
if self.env.user.company_id.web_ribbon_in_distribution:
ribbon_id = self.env.user.company_id.web_ribbon_in_distribution.id
if vals['in_distribution']:
if category_id:
vals['public_categ_ids'] = [(4,category_id)]
if ribbon_id:
vals['website_ribbon_id'] = ribbon_id
else:
if category_id:
vals['public_categ_ids'] = [(3,category_id)]
if ribbon_id:
vals['website_ribbon_id'] = False
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
if self.env.user.company_id.web_ribbon_in_distribution:
ribbon_id = self.env.user.company_id.web_ribbon_in_distribution.id
if vals['in_distribution_music']:
if category_id:
vals['public_categ_ids'] = [(4,category_id)]
if ribbon_id:
vals['website_ribbon_id'] = ribbon_id
else:
if category_id:
vals['public_categ_ids'] = [(3,category_id)]
if ribbon_id:
vals['website_ribbon_id'] = False
return super().write(vals)

View file

@ -0,0 +1,24 @@
# Copyright 2022 Criptomart
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
class Company(models.Model):
_inherit = 'res.company'
web_cat_in_distribution_libros = fields.Many2one(
'product.public.category',
'Website categoría de libros en distribución',
)
web_cat_in_distribution_musica = fields.Many2one(
'product.public.category',
string='Website categoría de música en distribución',
)
web_ribbon_in_distribution = fields.Many2one(
'product.ribbon',
string='Website ribbon en distribución',
)

View file

@ -0,0 +1,29 @@
# Copyright 2024 Criptomart
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
web_cat_in_distribution_libros = fields.Many2one(
'product.public.category',
'Website categoría de libros en distribución',
readonly=False,
related="company_id.web_cat_in_distribution_libros",
)
web_cat_in_distribution_musica = fields.Many2one(
'product.public.category',
string='Website categoría de música en distribución',
readonly=False,
related="company_id.web_cat_in_distribution_musica",
)
web_ribbon_in_distribution = fields.Many2one(
'product.ribbon',
string='Website ribbon en distribución',
readonly=False,
related="company_id.web_ribbon_in_distribution",
)