Purpose ======= Since we now have the product_configurator in its own module, we can add a bridge module for the website_sale to override the necessary controller routes in a cleaner way. This commit just adds the bridge module and move files and code around, there should not be any functional change.
29 lines
1.6 KiB
Python
29 lines
1.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
from odoo import http
|
|
from odoo.http import request
|
|
|
|
from odoo.addons.sale.controllers.variant import VariantController
|
|
|
|
class WebsiteSaleVariantController(VariantController):
|
|
@http.route(['/sale/get_combination_info_website'], type='json', auth="public", methods=['POST'], website=True)
|
|
def get_combination_info_website(self, product_template_id, product_id, combination, add_qty, **kw):
|
|
"""Special route to use website logic in get_combination_info override.
|
|
This route is called in JS by appending _website to the base route.
|
|
"""
|
|
kw.pop('pricelist_id')
|
|
res = self.get_combination_info(product_template_id, product_id, combination, add_qty, request.website.get_current_pricelist(), **kw)
|
|
|
|
carousel_view = request.env['ir.ui.view'].render_template('website_sale.shop_product_carousel',
|
|
values={
|
|
'product': request.env['product.template'].browse(res['product_template_id']),
|
|
'product_variant': request.env['product.product'].browse(res['product_id']),
|
|
})
|
|
res['carousel'] = carousel_view
|
|
return res
|
|
|
|
@http.route(auth="public")
|
|
def create_product_variant(self, product_template_id, product_template_attribute_value_ids, **kwargs):
|
|
"""Override because on the website the public user must access it."""
|
|
return super(WebsiteSaleVariantController, self).create_product_variant(product_template_id, product_template_attribute_value_ids, **kwargs)
|