57 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			57 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
import odoo
 | 
						|
from odoo import http
 | 
						|
from odoo import fields
 | 
						|
from odoo.http import request
 | 
						|
from odoo.addons.clarico_shop.controllers.main import claricoShop
 | 
						|
 | 
						|
class claricoBrand(claricoShop):
 | 
						|
    
 | 
						|
    def _get_search_domain(self, search, category, attrib_values, price_vals = {}):        
 | 
						|
        domain = request.website.sale_product_domain()
 | 
						|
        if search:
 | 
						|
            for srch in search.split(" "):
 | 
						|
                domain += [
 | 
						|
                    '|', '|', '|','|', ('name', 'ilike', srch), ('description', 'ilike', srch),
 | 
						|
                    ('description_sale', 'ilike', srch), ('product_variant_ids.default_code', 'ilike', srch),
 | 
						|
                    ('brand_ept_id.name','ilike', srch)]
 | 
						|
 
 | 
						|
        if category:
 | 
						|
            domain += [('public_categ_ids', 'child_of', int(category))]
 | 
						|
 
 | 
						|
        if price_vals :
 | 
						|
        #if price_vals & (int(price_vals.get('min_val',0)) != 0 & int(price_vals.get('max_val',0)) !=0) :
 | 
						|
            domain += [('list_price','>=',price_vals.get('min_val')),('list_price','<=',price_vals.get('max_val'))]
 | 
						|
        
 | 
						|
        if attrib_values:
 | 
						|
            attrib = None
 | 
						|
            ids = []
 | 
						|
            for value in attrib_values:
 | 
						|
                if value[0] == 0 :
 | 
						|
                    ids.append(value[1])
 | 
						|
                    domain += [('brand_ept_id.id', 'in', ids)]
 | 
						|
                elif not attrib:
 | 
						|
                    attrib = value[0]
 | 
						|
                    ids.append(value[1])
 | 
						|
                elif value[0] == attrib:
 | 
						|
                    ids.append(value[1])
 | 
						|
                else:
 | 
						|
                    domain += [('attribute_line_ids.value_ids', 'in', ids)]
 | 
						|
                    attrib = value[0]
 | 
						|
                    ids = [value[1]]
 | 
						|
            if attrib:
 | 
						|
                domain += [('attribute_line_ids.value_ids', 'in', ids)]     
 | 
						|
        return domain
 | 
						|
    
 | 
						|
    @http.route([
 | 
						|
        '/shop',
 | 
						|
        '/shop/page/<int:page>',
 | 
						|
        '/shop/category/<model("product.public.category"):category>',
 | 
						|
        '/shop/category/<model("product.public.category"):category>/page/<int:page>'
 | 
						|
    ], type='http', auth="public", website=True)
 | 
						|
    def shop(self, page=0, category=None, search='', ppg=False, **post):
 | 
						|
        response = super(claricoBrand, self).shop(page=page, category=category, search=search,ppg=ppg, **post)
 | 
						|
        brand_object = request.env['brand']
 | 
						|
        brand_rec=brand_object.sudo().search([('is_website_publish','=',True)])
 | 
						|
        response.qcontext['brand_list'] = brand_rec
 | 
						|
        return response 
 |