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 committed by snt
parent 308b3c4353
commit 9734ab2eb4
11 changed files with 166 additions and 30 deletions

View file

@ -0,0 +1 @@
from . import models

View file

@ -0,0 +1,25 @@
{
'name': 'Website Product Retail',
'category': 'Product',
'summary': 'Setea categorías y ribbons de website en productos en distribución.',
'version': "16.0.1.0.0",
'description': """
Configura categorías y ribbons de website en productos en distribución.
==================================================
* Configura en el producto las categorías del website de distribución.
* Configura en el producto el ribbon del website de distribución.
* Las categorías y ribbons se configuran en las opciones de configuración de la compañía.
""",
'author': 'Criptomart',
'depends': [
'website_sale',
'product_retail_cm',
],
'data': [
'views/res_config_settings_views.xml',
],
'installable': True,
'auto_install': False,
'application': False,
}

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",
)

View file

@ -0,0 +1,30 @@
<odoo>
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.retail</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="product.res_config_settings_view_form" />
<field name="arch" type="xml">
<div id="companies" position="after">
<h2>Configuración de productos en distribución</h2>
<div class="row mt-16 o_settings_container">
<div class="o_setting_box o_searchable_setting col 12 -col-lg-6" >
<div>
<label for="web_cat_in_distribution_libros" />
<field name="web_cat_in_distribution_libros" />
</div>
<div>
<label for="web_cat_in_distribution_musica" />
<field name="web_cat_in_distribution_musica" />
</div>
<div>
<label for="web_ribbon_in_distribution" />
<field name="web_ribbon_in_distribution" />
</div>
</div>
</div>
</div>
</field>
</record>
</odoo>