Compare commits

...

2 commits

Author SHA1 Message Date
snt
8ba30e579d fix create and write methods 2024-09-18 17:28:13 +02:00
snt
d57fa37505 WIP search domain ebsite 2024-09-18 17:22:12 +02:00
8 changed files with 58 additions and 77 deletions

View file

@ -1,28 +1,17 @@
{ {
'name': 'Product Create Stock Picking', "name": "Product Create Stock Picking",
'category': 'Warehouse', "category": "Warehouse",
'summary': 'Add an action to create a stock picking from a selection of products.', "summary": "Add an action to create a stock picking from a selection of products.",
'version': "16.0.1.0.0", "version": "16.0.1.0.0",
'description': """ "author": "Criptomart",
"license": "AGPL-3",
"description": """
Add an action to create a stock picking from a selection of products. Add an action to create a stock picking from a selection of products.
""", """,
'author': 'Criptomart', "depends": ["stock"],
'depends': [ "data": ["data/data.xml"],
'stock', "installable": True,
], "application": False,
'external_dependencies': {'python': [], 'bin': []},
'data': [
'data/data.xml',
],
'qweb': [],
'demo': [],
'installable': True,
'auto_install': False,
'application': True,
"post_load": None,
"pre_init_hook": None,
"post_init_hook": None,
"uninstall_hook": None,
} }

View file

@ -1,24 +1,20 @@
{ {
'name': 'Product Library', "name": "Product Library",
'category': 'Product', "category": "Product",
'summary': 'Add library related fields to product', "summary": "Add library related fields to product",
'version': "16.0.1.0.0", "version": "16.0.1.0.0",
'description': """ 'author': "Criptomart",
"license": "AGPL-3",
"description": """
Addon mejora de Odoo para librerías y tiendas de discos Addon mejora de Odoo para librerías y tiendas de discos
================================================== ==================================================
* Añade campos a product: Editorial, autor, género, formato, fecha de edición, fecha de entrada, colección, subcolección. * Añade campos a product: Editorial, autor, género, formato, fecha de edición, fecha de entrada, colección, subcolección.
* Hace búsquedas en la ficha de productos del backend en esos campos nuevos. * Hace búsquedas en la ficha de productos del backend en esos campos nuevos.
""", """,
'author': 'Criptomart', "depends": ["product"],
'depends': [ "data": ["views/product.xml"],
'product', "demo": [],
], "installable": True,
'data': [ "application": True,
'views/product.xml',
],
'demo': [],
'installable': True,
'auto_install': False,
'application': True,
} }

View file

@ -1,23 +1,19 @@
{ {
'name': 'Product Retail', "name": "Product Retail",
'category': 'Product', "category": "Product",
'summary': 'Gestiona productos en distribución.', "summary": "Gestiona productos en distribución a minoristas.",
'version': "16.0.1.0.0", "author": "Criptomart",
'description': """ "license": "AGPL-3",
"version": "16.0.1.0.0",
"description": """
Gestiona productos en distribución / Venta a minoristas Gestiona productos en distribución / Venta a minoristas
================================================== ==================================================
* Añade campo a product: En Distribución y margin de minoristas. * Añade campo a product: En Distribución y margin de minoristas.
* Filtro de productos en distribución en la vista de productos. * Filtro de productos en distribución en la vista de productos.
""", """,
'author': 'Criptomart', "depends": ["product"],
'depends': [ "data": ["views/product.xml"],
'product', "installable": True,
], "application": False,
'data': [
'views/product.xml',
],
'installable': True,
'auto_install': False,
'application': False,
} }

View file

@ -1,7 +1,7 @@
# Copyright (C) 2022-2024: Criptomart (https://criptomart.net) # Copyright (C) 2022-2024: Criptomart (https://criptomart.net)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import tools, models, fields, api, _ from odoo import models, fields
class ProductTemplate(models.Model): class ProductTemplate(models.Model):

View file

@ -41,8 +41,7 @@ class Picking(models.Model):
for picking in self: for picking in self:
if not picking.partner_id: if not picking.partner_id:
return return
_logger.warning("onchange %s %s", picking.location_dest_id.name, picking.location_id.name) # web cliebt does not update without this, wtf? _logger.debug("onchange %s %s", picking.location_dest_id.name, picking.location_id.name) # web client does not update without this, wtf?
_logger.warning("onchange %s", picking.picking_type_id.code)
if picking.picking_type_id.is_deposit: if picking.picking_type_id.is_deposit:
if picking.picking_type_id.code in ["internal","outgoing"]: if picking.picking_type_id.code in ["internal","outgoing"]:
if not picking.partner_id.deposit_sale_accept: if not picking.partner_id.deposit_sale_accept:
@ -64,12 +63,12 @@ class Picking(models.Model):
def change_dest_location(self, vals, code): def change_dest_location(self, vals, code):
if vals.get("partner_id"): if vals.get("partner_id"):
partner = self.env["res.partner"].browse(vals.get("partner_id")) partner = self.env["res.partner"].browse(vals.get("partner_id"))
if code == "internal": if code in ["internal", "outgoing"]:
if not partner.deposit_sale_accept: if not partner.deposit_sale_accept:
raise ValidationError("Éste cliente no acepta material en depósito, configúralo antes de crear un depósito para él.") raise ValidationError("Éste cliente no acepta material en depósito, configúralo antes de crear un depósito para él.")
return return
vals.update({ vals.update({
"location_dest_id": partner.deposit_sale_location_id.id, "location_id": partner.deposit_sale_location_id.id,
}) })
elif code == 'incoming': elif code == 'incoming':
if not partner.deposit_buy_accept: if not partner.deposit_buy_accept:

View file

@ -1,15 +1,16 @@
{ {
'name': 'Website Descrition Internal', "name": "Website Descrition Internal",
'version': '16.0.1.0.0', "version": "16.0.1.0.0",
'summary': 'Sobrescribe el campo website_description y devuelve el campo internal description. Hereda la vista del campo y modifica el css.', "summary": "Sobrescribe el campo website_description y devuelve el campo internal description. Hereda la vista del campo y modifica el css.",
'author': 'Criptomart', "author2": "Criptomart",
'depends': ['product','website_sale'], "license": "AGPL-3",
'data': ['views/templates.xml'], "depends": ["product","website_sale"],
'assets': { "data": ["views/templates.xml"],
'web.assets_frontend': [ "assets": {
'website_description_internal/static/src/scss/custom.scss', "web.assets_frontend": [
"website_description_internal/static/src/scss/custom.scss",
], ],
}, },
'installable': True, "installable": True,
'application': False, "application": False,
} }

View file

@ -1,5 +1,5 @@
{ {
"name": "Website Sale Product Library.", "name": "Website Sale Product Library",
"version": "16.0.1.0.3", "version": "16.0.1.0.3",
"category": "Website", "category": "Website",
"summary": "Modifica website_sale para una librería / Tienda de música.", "summary": "Modifica website_sale para una librería / Tienda de música.",
@ -15,13 +15,13 @@ Modifica la tienda online con los campos de product_library.
* Linka internal description con website_description. * Linka internal description con website_description.
* Muestra en product en la lista de productos los campos de product_library (subtítulo, autor, editorial, formato, género). * Muestra en product en la lista de productos los campos de product_library (subtítulo, autor, editorial, formato, género).
* En la vista del producto, añade subtítulo y autor después del nombre y la descripción. * En la vista del producto, añade subtítulo y autor después del nombre y la descripción.
* Búsueda en la web por autor, editorial y subtítulo. * Búsqueda en la web por autor, editorial y subtítulo, quita la búsqueda en descripción.
""", """,
"depends": ["website_sale", "product_library"], "depends": ["website_sale", "product_library"],
"data": ["views/website_sale_views.xml"], "data": ["views/website_sale_views.xml"],
"assets": { "assets": {
"web.assets_frontend": [ "web.assets_frontend": [
"website_sale_product_description_displayed/static/src/scss/custom.scss", "website_sale_product_library/static/src/scss/custom.scss",
], ],
}, },
"application": False, "application": False,

View file

@ -8,10 +8,10 @@
> >
<xpath expr="//a[@t-field='product.name']" position="replace"> <xpath expr="//a[@t-field='product.name']" position="replace">
<a class="text-primary text-decoration-none" itemprop="name" t-att-href="product_href"> <a class="text-primary text-decoration-none" itemprop="name" t-att-href="product_href">
<span><t t-att-content="product.name" t-out="product.name" class="fw-bold"/>. </span> <span><t t-att-content="product.name" t-out="product.name" class="fw-bold"/>. </span>
<span t-if="product.subtitle" class="text-small-muted"><t t-out="product.subtitle" />. </span> <span t-if="product.subtitle" class="text-small-muted"><t t-out="product.subtitle" />. </span>
<span t-if="product.autor"><b><t t-out="product.autor" /></b></span> <span t-if="product.autor"><b><t t-out="product.autor" /></b></span>
</a> </a>
</xpath> </xpath>
</template> </template>
<template <template