diff --git a/website_sale_product_description_displayed/__init__.py b/website_sale_product_description_displayed/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/website_sale_product_description_displayed/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/website_sale_product_description_displayed/__manifest__.py b/website_sale_product_description_displayed/__manifest__.py new file mode 100644 index 0000000..1fcabb2 --- /dev/null +++ b/website_sale_product_description_displayed/__manifest__.py @@ -0,0 +1,11 @@ +{ + "name": "Display product website descrition in e-commerce catalog pages.", + "version": "16.0.1.0.2", + "category": "Website", + "author": "Criptomart", + "license": "AGPL-3", + "application": False, + "installable": True, + "depends": ["website_sale"], + "data": ["data/snippet_filter_data.xml", "views/website_sale_views.xml"], +} diff --git a/website_sale_product_description_displayed/data/snippet_filter_data.xml b/website_sale_product_description_displayed/data/snippet_filter_data.xml new file mode 100644 index 0000000..a8e4fa2 --- /dev/null +++ b/website_sale_product_description_displayed/data/snippet_filter_data.xml @@ -0,0 +1,8 @@ + + + + {'display_website_description': True, 'add2cart_rerender': False} + + diff --git a/website_sale_product_description_displayed/models/__init__.py b/website_sale_product_description_displayed/models/__init__.py new file mode 100644 index 0000000..9ca7a74 --- /dev/null +++ b/website_sale_product_description_displayed/models/__init__.py @@ -0,0 +1,2 @@ +from . import website_snippet_filter +from . import product_template diff --git a/website_sale_product_description_displayed/models/product_template.py b/website_sale_product_description_displayed/models/product_template.py new file mode 100644 index 0000000..a849d71 --- /dev/null +++ b/website_sale_product_description_displayed/models/product_template.py @@ -0,0 +1,19 @@ +from odoo import models, fields, api + +class ProductTemplate(models.Model): + _inherit = 'product.template' + + website_description_limited = fields.Text( + compute='_compute_website_description_limited', + string='Website Description Limited' + ) + + @api.depends('website_description') + def _compute_website_description_limited(self): + for product in self: + if product.website_description: + product.website_description_limited = product.website_description.splitlines()[0] + if len(product.website_description_limited) > 240: + product.website_description_limited = product.website_description_limited[:240] + '...' + else: + product.website_description_limited = '' diff --git a/website_sale_product_description_displayed/models/website_snippet_filter.py b/website_sale_product_description_displayed/models/website_snippet_filter.py new file mode 100644 index 0000000..f565ce0 --- /dev/null +++ b/website_sale_product_description_displayed/models/website_snippet_filter.py @@ -0,0 +1,44 @@ +from odoo import models + + +class WebsiteSnippetFilter(models.Model): + _inherit = "website.snippet.filter" + + def _get_products_latest_sold(self, website, limit, domain, context): + products = super()._get_products_latest_sold(website, limit, domain, context) + if products: + return products.with_context(display_website_description=True) + else: + return products + + def _get_products_latest_viewed(self, website, limit, domain, context): + products = super()._get_products_latest_viewed(website, limit, domain, context) + if products: + return products.with_context(display_website_description=True) + else: + return products + + def _get_products_recently_sold_with(self, website, limit, domain, context): + products = super()._get_products_recently_sold_with( + website, limit, domain, context + ) + if products: + return products.with_context(display_website_description=True) + else: + return products + + def _get_products_accessories(self, website, limit, domain, context): + products = super()._get_products_accessories(website, limit, domain, context) + if products: + return products.with_context(display_website_description=True) + else: + return products + + def _get_products_alternative_products(self, website, limit, domain, context): + products = super()._get_products_alternative_products( + website, limit, domain, context + ) + if products: + return products.with_context(display_website_description=True) + else: + return products diff --git a/website_sale_product_description_displayed/static/description/enable-product-description.png b/website_sale_product_description_displayed/static/description/enable-product-description.png new file mode 100644 index 0000000..f834dcf Binary files /dev/null and b/website_sale_product_description_displayed/static/description/enable-product-description.png differ diff --git a/website_sale_product_description_displayed/views/website_sale_views.xml b/website_sale_product_description_displayed/views/website_sale_views.xml new file mode 100644 index 0000000..354c687 --- /dev/null +++ b/website_sale_product_description_displayed/views/website_sale_views.xml @@ -0,0 +1,16 @@ + + + + +