Explorar o código

Kingfisher 10

edgar %!s(int64=6) %!d(string=hai) anos
pai
achega
8b99337d51
Modificáronse 74 ficheiros con 1716 adicións e 2499 borrados
  1. BIN=BIN
      Odoo Kinfisher Pro Fashion - User Guide.pdf
  2. BIN=BIN
      OdooKingfisherProFashion_Community_Edition.pdf
  3. BIN=BIN
      OdooKingfisherProFashion_Enterprise_Edition.pdf
  4. 2 2
      __init__.py
  5. 5 5
      __manifest__.py
  6. 1 1
      controllers/__init__.py
  7. 72 146
      controllers/main.py
  8. 2 2
      data/data.xml
  9. 2 2
      data/demo_homepage.xml
  10. 101 2
      doc/changelog.rst
  11. 3 3
      models/__init__.py
  12. 16 34
      models/products.py
  13. 1 4
      models/slider.py
  14. 35 36
      models/website.py
  15. 4 7
      security/ir.model.access.csv
  16. 52 20
      static/description/index.html
  17. 0 13
      static/src/js/custom.js
  18. 51 73
      static/src/js/kingfisher_pro.js
  19. 16 16
      static/src/js/kingfisher_pro_editor.js
  20. 43 100
      static/src/js/kingfisher_pro_frontend.js
  21. 0 29
      static/src/js/rating_state.js
  22. 0 0
      static/src/less/box-layout.less
  23. 22 0
      static/src/less/custom_theme.less
  24. 38 75
      static/src/less/footer.less
  25. 131 192
      static/src/less/header.less
  26. 28 0
      static/src/less/mixins.less
  27. 0 0
      static/src/less/mobile.less
  28. 1 0
      static/src/less/options/bg_patterns/bg-pattern-1.less
  29. 1 0
      static/src/less/options/bg_patterns/bg-pattern-2.less
  30. 1 0
      static/src/less/options/bg_patterns/bg-pattern-3.less
  31. 1 0
      static/src/less/options/bg_patterns/bg-pattern-4.less
  32. 1 0
      static/src/less/options/bg_patterns/bg-pattern-5.less
  33. 1 0
      static/src/less/options/bg_patterns/bg-pattern-6.less
  34. 22 0
      static/src/less/options/colors/colors.less
  35. 22 0
      static/src/less/options/colors/theme_aqua.less
  36. 22 0
      static/src/less/options/colors/theme_blue.less
  37. 22 0
      static/src/less/options/colors/theme_brown.less
  38. 22 0
      static/src/less/options/colors/theme_orange.less
  39. 22 0
      static/src/less/options/colors/theme_pink.less
  40. 2 2
      static/src/less/options/fonts/font-style-lato-font.less
  41. 2 2
      static/src/less/options/fonts/font-style-open-sans-font.less
  42. 2 2
      static/src/less/options/fonts/font-style-raleway-font.less
  43. 2 2
      static/src/less/options/fonts/font-style-source-sans-pro-font.less
  44. 2 2
      static/src/less/options/fonts/font-style-source-serif-pro-font.less
  45. 4 0
      static/src/less/options/fonts/font-style-varela-round-font.less
  46. 1 1
      static/src/less/options/layout/boxed.less
  47. 84 174
      static/src/less/product.less
  48. 25 37
      static/src/less/style.less
  49. 182 209
      static/src/less/web.less
  50. 7 0
      static/src/less/website.less
  51. 0 22
      static/src/scss/custom_theme.scss
  52. 0 27
      static/src/scss/mixins.scss
  53. 0 1
      static/src/scss/options/bg_patterns/bg-pattern-1.scss
  54. 0 1
      static/src/scss/options/bg_patterns/bg-pattern-2.scss
  55. 0 1
      static/src/scss/options/bg_patterns/bg-pattern-3.scss
  56. 0 1
      static/src/scss/options/bg_patterns/bg-pattern-4.scss
  57. 0 1
      static/src/scss/options/bg_patterns/bg-pattern-5.scss
  58. 0 1
      static/src/scss/options/bg_patterns/bg-pattern-6.scss
  59. 0 22
      static/src/scss/options/colors/colors.scss
  60. 0 22
      static/src/scss/options/colors/theme_aqua.scss
  61. 0 22
      static/src/scss/options/colors/theme_blue.scss
  62. 0 22
      static/src/scss/options/colors/theme_brown.scss
  63. 0 22
      static/src/scss/options/colors/theme_orange.scss
  64. 0 22
      static/src/scss/options/colors/theme_pink.scss
  65. 0 4
      static/src/scss/options/fonts/font-style-varela-round-font.scss
  66. 0 290
      static/src/scss/theme_common.scss
  67. 0 7
      static/src/scss/website.scss
  68. 13 18
      views/assets.xml
  69. 61 93
      views/product_view.xml
  70. 24 16
      views/slider_view.xml
  71. 123 171
      views/snippets.xml
  72. 332 359
      views/theme.xml
  73. 53 51
      views/theme_customize.xml
  74. 34 110
      views/website_config_view.xml

BIN=BIN
Odoo Kinfisher Pro Fashion - User Guide.pdf


BIN=BIN
OdooKingfisherProFashion_Community_Edition.pdf


BIN=BIN
OdooKingfisherProFashion_Enterprise_Edition.pdf


+ 2 - 2
__init__.py

@@ -1,5 +1,5 @@
 # -*- coding: utf-8 -*-
 # Part of AppJetty. See LICENSE file for full copyright and licensing details.
 
-from . import models
-from . import controllers
+import models
+import controllers

+ 5 - 5
__manifest__.py

@@ -48,17 +48,14 @@ furnishing industry
 odoo 9 theme
 odoo 10 theme
 odoo 11 theme
-odoo 12 theme
 custom odoo theme
     """,
     'category': 'Theme/Ecommerce',
-    'version': '12.0.1.0.1',
-    'license': 'OPL-1',
+    'version': '10.0.1.1.3',
     'author': 'AppJetty',
+    'license': 'OPL-1',
     'website': 'https://www.appjetty.com/',
     'depends': [
-        'sale_management',
-        'website_theme_install',
         'website_sale',
         'mass_mailing',
         'website_blog',
@@ -74,6 +71,9 @@ custom odoo theme
         'data/data.xml',
         'views/theme.xml',
     ],
+    'demo': [
+        # 'data/demo_homepage.xml',
+    ],
     'support': 'support@appjetty.com',
     'application': True,
     'live_test_url': 'http://theme-kingfisher-pro-fashion.appjetty.com',

+ 1 - 1
controllers/__init__.py

@@ -1,4 +1,4 @@
 # -*- coding: utf-8 -*-
 # Part of AppJetty. See LICENSE file for full copyright and licensing details.
 
-from . import main
+import main

+ 72 - 146
controllers/main.py

@@ -2,15 +2,16 @@
 # Part of AppJetty. See LICENSE file for full copyright and licensing details.
 
 import re
-import math
-from odoo import http, SUPERUSER_ID, fields
+from odoo import http
 from odoo.http import request
-from odoo.addons.http_routing.models.ir_http import slug
+from odoo.addons.website.models.website import slug
 from odoo.addons.website.controllers.main import QueryURL
 from odoo.addons.website_sale.controllers import main
 from odoo.addons.website_sale.controllers import main as main_shop
 from odoo.addons.website_sale.controllers.main import WebsiteSale
 from odoo.addons.website_sale.controllers.main import TableCompute
+from odoo import http,SUPERUSER_ID
+
 
 
 class KingfisherProSliderSettings(http.Controller):
@@ -18,7 +19,7 @@ class KingfisherProSliderSettings(http.Controller):
     @http.route(['/kingfisher_pro/pro_get_options'], type='json', auth="public", website=True)
     def get_slider_options(self):
         slider_options = []
-        option = request.env['product.category.slider.config'].sudo().search(
+        option = request.env['product.category.slider.config'].search(
             [('active', '=', True)], order="name asc")
         for record in option:
             slider_options.append({'id': record.id,
@@ -35,33 +36,28 @@ class KingfisherProSliderSettings(http.Controller):
                 pricelist = request.website.get_current_pricelist()
                 context = dict(request.context, pricelist=int(pricelist))
             else:
-                pricelist = pool.get('product.pricelist').browse(
-                    context['pricelist'])
+                pricelist = pool.get('product.pricelist').browse(context['pricelist'])
 
             context.update({'pricelist': pricelist.id})
             values = {
                 'slider_header': slider_header
             }
             if slider_header.prod_cat_type == 'product':
-                values.update(
-                    {'slider_details': slider_header.collections_product})
+                values.update({'slider_details': slider_header.collections_product})
             if slider_header.prod_cat_type == 'category':
-                values.update(
-                    {'slider_details': slider_header.collections_category})
+                values.update({'slider_details': slider_header.collections_category})
 
-            from_currency = pool['res.users'].sudo().browse(
-                uid).company_id.currency_id
+            from_currency = pool['res.users'].browse(uid).company_id.currency_id
             to_currency = pricelist.currency_id
+            compute_currency = lambda price: pool['res.currency']._compute(from_currency, to_currency, price)
 
-            def compute_currency(price): return pool['res.currency']._convert(
-                price, from_currency, to_currency, fields.Date.today())
             values.update({'slider_type': slider_header.prod_cat_type,
-                           'compute_currency': compute_currency, })
+                            'compute_currency': compute_currency,})
             return request.render("kingfisher_pro.kingfisher_pro_pro_cat_slider_view", values)
 
     @http.route(['/kingfisher_pro/pro_image_effect_config'], type='json', auth='public', website=True)
     def product_image_dynamic_slider(self, **post):
-        slider_data = request.env['product.category.slider.config'].sudo().search(
+        slider_data = request.env['product.category.slider.config'].search(
             [('id', '=', int(post.get('slider_type')))])
         values = {
             's_id': slider_data.prod_cat_type + str(slider_data.id),
@@ -74,7 +70,7 @@ class KingfisherProSliderSettings(http.Controller):
     @http.route(['/kingfisher_pro/blog_get_options'], type='json', auth="public", website=True)
     def king_blog_get_slider_options(self):
         slider_options = []
-        option = request.env['blog.slider.config'].sudo().search(
+        option = request.env['blog.slider.config'].search(
             [('active', '=', True)], order="name asc")
         for record in option:
             slider_options.append({'id': record.id,
@@ -94,7 +90,7 @@ class KingfisherProSliderSettings(http.Controller):
 
     @http.route(['/kingfisher_pro/blog_image_effect_config'], type='json', auth='public', website=True)
     def king_blog_product_image_dynamic_slider(self, **post):
-        slider_data = request.env['blog.slider.config'].sudo().search(
+        slider_data = request.env['blog.slider.config'].search(
             [('id', '=', int(post.get('slider_type')))])
         values = {
             's_id': slider_data.no_of_counts + '-' + str(slider_data.id),
@@ -125,7 +121,7 @@ class KingfisherProSliderSettings(http.Controller):
     @http.route(['/kingfisher_pro/product_multi_get_options'], type='json', auth="public", website=True)
     def product_multi_get_slider_options(self):
         slider_options = []
-        option = request.env['multi.slider.config'].sudo().search(
+        option = request.env['multi.slider.config'].search(
             [('active', '=', True)], order="name asc")
         for record in option:
             slider_options.append({'id': record.id,
@@ -143,16 +139,12 @@ class KingfisherProSliderSettings(http.Controller):
                 pricelist = request.website.get_current_pricelist()
                 context = dict(request.context, pricelist=int(pricelist))
             else:
-                pricelist = pool.get('product.pricelist').browse(
-                    context['pricelist'])
+                pricelist = pool.get('product.pricelist').browse(context['pricelist'])
 
             context.update({'pricelist': pricelist.id})
-            from_currency = pool['res.users'].sudo().browse(
-                SUPERUSER_ID).company_id.currency_id
+            from_currency = pool['res.users'].sudo().browse(SUPERUSER_ID).company_id.currency_id
             to_currency = pricelist.currency_id
-
-            def compute_currency(price): return pool['res.currency']._convert(
-                price, from_currency, to_currency, fields.Date.today())
+            compute_currency = lambda price: pool['res.currency']._compute(from_currency, to_currency, price)
             values = {
                 'slider_details': slider_header,
                 'slider_header': slider_header,
@@ -162,7 +154,7 @@ class KingfisherProSliderSettings(http.Controller):
 
     @http.route(['/kingfisher_pro/product_multi_image_effect_config'], type='json', auth='public', website=True)
     def product_multi_product_image_dynamic_slider(self, **post):
-        slider_data = request.env['multi.slider.config'].sudo().search(
+        slider_data = request.env['multi.slider.config'].search(
             [('id', '=', int(post.get('slider_type')))])
         values = {
             's_id': slider_data.no_of_collection + '-' + str(slider_data.id),
@@ -190,26 +182,15 @@ class KingfisherProBrandSlider(WebsiteSale):
                 auth='public',
                 website=True)
     def shop(self, page=0, category=None, brand=None, search='', ppg=False, **post):
-        add_qty = int(post.get('add_qty', 1))
         if brand:
             req_ctx = request.context.copy()
             req_ctx.setdefault('brand_id', int(brand))
             request.context = req_ctx
         result = super(KingfisherProBrandSlider, self).shop(
             page=page, category=category, brand=brand, search=search, **post)
-
-        # odoo11
-        # for displaying after whishlist or add to cart button n product_detail page
-        if request.env.get('product.attribute.category') != None:
-            compare_tmpl_obj = request.env.ref(
-                'website_sale_comparison.product_add_to_compare')
-            if compare_tmpl_obj and compare_tmpl_obj.priority != 20:
-                compare_tmpl_obj.sudo().write({'priority': 20})
-
         sort_order = ""
         cat_id = []
-        page_no = request.env['product.per.page.no'].sudo().search(
-            [('set_default_check', '=', True)])
+        page_no = request.env['product.per.page.no'].search([('set_default_check', '=', True)])
         if page_no:
             ppg = page_no.name
         else:
@@ -222,17 +203,14 @@ class KingfisherProBrandSlider(WebsiteSale):
         product_obj = request.env['product.template']
 
         attrib_list = request.httprequest.args.getlist('attrib')
-        attrib_values = [list(map(int, v.split("-")))
-                         for v in attrib_list if v]
+        attrib_values = [map(int, v.split("-")) for v in attrib_list if v]
         attributes_ids = set([v[0] for v in attrib_values])
         attrib_set = set([v[1] for v in attrib_values])
         domain = request.website.sale_product_domain()
         domain += self._get_search_domain(search, category, attrib_values)
         url = "/shop"
-
         keep = QueryURL('/shop', category=category and int(category), search=search,
-                        attrib=attrib_list, order=post.get('order'))
-        pricelist_context, pricelist = self._get_pricelist_context()
+         attrib=attrib_list, order=post.get('order'))
         if post:
             request.session.update(post)
 
@@ -251,18 +229,12 @@ class KingfisherProBrandSlider(WebsiteSale):
                 request.session['pricerange'] = ""
                 request.session['min1'] = ""
                 request.session['max1'] = ""
-                request.session['curr_category'] = ""
 
         session = request.session
-        cate_for_price = None
         # for category filter
         if category:
-            cate_for_price = int(category)
-            category = request.env['product.public.category'].sudo().browse(
-                int(category))
+            category = request.env['product.public.category'].browse(int(category))
             url = "/shop/category/%s" % slug(category)
-            if not category or not category.can_access_from_current_website():
-                raise NotFound()
 
         if category != None:
             for ids in category:
@@ -275,8 +247,7 @@ class KingfisherProBrandSlider(WebsiteSale):
             session_tag = session.get('tag')[0]
             tag = session_tag
             if tag:
-                tag = request.env['biztech.product.tags'].sudo().browse(
-                    int(tag))
+                tag = request.env['biztech.product.tags'].browse(int(tag))
                 domain += [('biztech_tag_ids', '=', int(tag))]
                 request.session["tag"] = [tag.id, tag.name]
 
@@ -284,115 +255,70 @@ class KingfisherProBrandSlider(WebsiteSale):
         if session.get('sort_id'):
             session_sort = session.get('sort_id')
             sort = session_sort
-            sort_field = request.env['biztech.product.sortby'].sudo().browse(
-                int(sort))
+            sort_field = request.env['biztech.product.sortby'].browse(int(sort))
             request.session['product_sort_name'] = sort_field.name
             order_field = sort_field.sort_on.name
             order_type = sort_field.sort_type
             sort_order = '%s %s' % (order_field, order_type)
             if post.get("sort_id"):
-                request.session["sortid"] = [
-                    sort, sort_order, sort_field.name, order_type]
+                request.session["sortid"] = [sort, sort_order, sort_field.name, order_type]
 
         # For Price slider
-        is_price_slider = request.env.ref(
-            'kingfisher_pro.kingfisher_pro_slider_layout')
-        if is_price_slider:
-
-            is_discount_hide = True if request.website.get_current_pricelist(
-            ).discount_policy == 'with_discount' else False
-
-            product_slider_ids = []
-            asc_product_slider_ids = product_obj.search(
-                domain, limit=1, order='list_price')
-            desc_product_slider_ids = product_obj.search(
-                domain, limit=1, order='list_price desc')
-            if asc_product_slider_ids:
-                # product_slider_ids.append(asc_product_slider_ids.website_price)
-                product_slider_ids.append(
-                    asc_product_slider_ids.website_price if is_discount_hide else asc_product_slider_ids.list_price)
-            if desc_product_slider_ids:
-                # product_slider_ids.append(desc_product_slider_ids.website_price)
-                product_slider_ids.append(
-                    desc_product_slider_ids.website_price if is_discount_hide else desc_product_slider_ids.list_price)
-
-            if product_slider_ids:
-                if post.get("range1") or post.get("range2") or not post.get("range1") or not post.get("range2"):
-                    range1 = min(product_slider_ids)
-                    range2 = max(product_slider_ids)
-                    result.qcontext['range1'] = math.floor(range1)
-                    result.qcontext['range2'] = math.ceil(range2)
-
-                    if request.session.get('pricerange'):
-                        if cate_for_price and request.session.get('curr_category') and request.session.get('curr_category') != int(cate_for_price):
-                            request.session["min1"] = math.floor(range1)
-                            request.session["max1"] = math.ceil(range2)
-
-                    if session.get("min1") and session["min1"]:
-                        post["min1"] = session["min1"]
-                    if session.get("max1") and session["max1"]:
-                        post["max1"] = session["max1"]
-                    if range1:
-                        post["range1"] = range1
-                    if range2:
-                        post["range2"] = range2
-                    if range1 == range2:
-                        post['range1'] = 0.0
-
-                if request.session.get('min1') or request.session.get('max1'):
-                    if request.session.get('min1'):
-                        if request.session['min1'] != None:
-                            # domain += [('list_price', '>=', request.session.get('min1')), ('list_price', '<=', request.session.get('max1'))]
-                            # ========== for hide list-website price diffrence ====================
-                            if is_discount_hide:
-                                price_product_list = []
-                                product_withprice = product_obj.search(domain)
-                                for prod_id in product_withprice:
-                                    if prod_id.website_price >= float(request.session['min1']) and prod_id.website_price <= float(request.session['max1']):
-                                        price_product_list.append(prod_id.id)
-
-                                if price_product_list:
-                                    domain += [('id', 'in',
-                                                price_product_list)]
-                                else:
-                                    domain += [('id', 'in', [])]
-                            else:
-                                domain += [('list_price', '>=', request.session.get('min1')),
-                                           ('list_price', '<=', request.session.get('max1'))]
-# ==============================
-                            request.session["pricerange"] = str(
-                                request.session['min1'])+"-To-"+str(request.session['max1'])
-
-                if session.get('min1') and session['min1']:
-                    result.qcontext['min1'] = session["min1"]
-                    result.qcontext['max1'] = session["max1"]
-
-        if cate_for_price:
-            request.session['curr_category'] = int(cate_for_price)
+        product_slider_ids = []
+        asc_product_slider_ids = product_obj.search([('website_published', '=', True)], limit=1, order='list_price')
+        desc_product_slider_ids = product_obj.search([('website_published', '=', True)], limit=1, order='list_price desc')
+        if asc_product_slider_ids:
+            product_slider_ids.append(asc_product_slider_ids.website_price)
+        if desc_product_slider_ids:
+            product_slider_ids.append(desc_product_slider_ids.website_price)
+
+        if product_slider_ids:
+            if post.get("range1") or post.get("range2") or not post.get("range1") or not post.get("range2"):
+                range1 = min(product_slider_ids)
+                range2 = max(product_slider_ids)
+                result.qcontext['range1'] = range1
+                result.qcontext['range2'] = range2
+
+                if session.get("min1") and session["min1"]:
+                    post["min1"] = session["min1"]
+                if session.get("max1") and session["max1"]:
+                    post["max1"] = session["max1"]
+                if range1:
+                    post["range1"] = range1
+                if range2:
+                    post["range2"] = range2
+                if range1 == range2:
+                    post['range1'] = 0.0
+
+            if request.session.get('min1') or request.session.get('max1'):
+                if request.session.get('min1'):
+                    if request.session['min1'] != None:
+                        domain += [('list_price', '>=', request.session.get('min1')), ('list_price', '<=', request.session.get('max1'))]
+                        request.session["pricerange"] = str(
+                            request.session['min1'])+"-To-"+str(request.session['max1'])
+
+            if session.get('min1') and session['min1']:
+                result.qcontext['min1'] = session["min1"]
+                result.qcontext['max1'] = session["max1"]
 
         if request.session.get('default_paging_no'):
             ppg = int(request.session.get('default_paging_no'))
 
         product_count = product_obj.search_count(domain)
-        pager = request.website.pager(
-            url=url, total=product_count, page=page, step=ppg, scope=7, url_args=post)
-        products = product_obj.search(
-            domain, limit=ppg, offset=pager['offset'], order=sort_order)
-        compute_currency = self._get_compute_currency(pricelist, products[:1])
+        pager = request.website.pager(url=url, total=product_count, page=page, step=ppg, scope=7, url_args=post)
+        products = product_obj.search(domain, limit=ppg, offset=pager['offset'], order=sort_order)
+
         result.qcontext.update({'product_count': product_count,
                                 'products': products,
                                 'category': category,
                                 'pager': pager,
-                                'add_qty': add_qty,
-                                'compute_currency': compute_currency,
-                                'keep': keep,
-                                'search': search,
+                                'keep':keep,
+                                'search':search,
                                 'bins': TableCompute().process(products, ppg)})
 
         result.qcontext['brand'] = brand
-        result.qcontext['domain'] = domain
-        result.qcontext['brand_obj'] = request.env['product.brands'].sudo().search([
-            ('id', '=', brand)])
+        result.qcontext['brand_obj'] = request.env['product.brands'].search([('id', '=', brand)])
+
         return result
 
     @http.route()
@@ -401,8 +327,8 @@ class KingfisherProBrandSlider(WebsiteSale):
             product_id, line_id, add_qty, set_qty, display)
         order = request.website.sale_get_order()
         result.update({'kingfisher_pro.hover_total': request.env['ir.ui.view'].render_template("kingfisher_pro.hover_total", {
-            'website_sale_order': order})
-        })
+                'website_sale_order': order })
+            })
         return result
 
     @http.route(['/king_pro/get_brand_slider'], type='http', auth='public', website=True)
@@ -416,7 +342,7 @@ class KingfisherProBrandSlider(WebsiteSale):
         }
 
         if post.get('product_count'):
-            brand_data = request.env['product.brands'].sudo().search(
+            brand_data = request.env['product.brands'].search(
                 [], limit=int(post.get('product_count')))
             if brand_data:
                 value['website_brands'] = brand_data

+ 2 - 2
data/data.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<odoo>
+<openerp>
     <data noupdate="1">
 
         <record id="record_no_of_product_per_page_no_10" model="product.per.page.no">
@@ -38,4 +38,4 @@
         </record>
 
     </data>
-</odoo>
+</openerp>

+ 2 - 2
data/demo_homepage.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<odoo>
+<openerp>
 <data noupdate="1">
 
     <!-- Home Page -->
@@ -274,4 +274,4 @@
     </template>
 
 </data>
-</odoo>
+</openerp>

+ 101 - 2
doc/changelog.rst

@@ -1,9 +1,108 @@
 ========================
+
 ``Kingfisher Pro Fashion`` changelog
+
 ========================
 
+*****
+
+1/. Megamenu and Default odoo dropdown menu issue
+
+*****
+
+Fixed the issue of megamenu for responsive devices.
+
+
+*****
+
+2/. Fixed paging issue
+
+*****
+
+Fixed default paging issue
+
+*****
+
+3/. Fixed browser compatiablity for mozilla
+
+*****
+
+Fixed an issue which causes megamenu of stick open.
+
+
+*****
+
+Removed one option from customized show
+
+*****
+
+4/. Removed one option from customized show which was causing the website crash.
+
+
+*****
+
+Resolved the critical speed issue
+
+*****
+
+1. Resolve the critical speed issue due to which the shop page take more time to open when there are more then 1000 pages.
+2. Prices in snippets and shop page will be same everywere as it is shop.
+
+
+*****
+
+Resolved Access Right
+
+*****
+
+1. Resolved Access Right
+
+
+*****
+
+Updated xpath for Product Quantity template
+
+*****
+
+1. Updated xpath for Product Quantity template
+
+
+*****
+
+Updated multi image slider for variant image support
+
+*****
+
+1. Updated multi image slider for variant image support
+
+
+*****
+
+Editing image was not possible when you create product using website
+
+*****
+
+1. Editing image was not possible when you create product using website.
+
+
 ******************************************
-Improved code to support the default product flow for some static ids.
+
+Provided access rights for theme features
+
 ******************************************
 
-1. Improved code to support the default product flow for some static ids.
+Provided access rights for the features like Multi image, sliders, tags and etc.
+
+
+******************************************
+Add some new features
+******************************************
+- Single product attribute will be visible on product detail page.
+- Fixed search issue with paging.
+- Removed "#0" and replaced it with "#" on the button to top.
+
+******************************************
+Bug Fixes
+******************************************
+- Replace xrange function with range function.
+- Some minor bug fixes.

+ 3 - 3
models/__init__.py

@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 # Part of AppJetty. See LICENSE file for full copyright and licensing details.
 
-from . import slider
-from . import products
-from . import website
+import slider
+import products
+import website

+ 16 - 34
models/products.py

@@ -1,17 +1,16 @@
 # -*- coding: utf-8 -*-
 # Part of AppJetty. See LICENSE file for full copyright and licensing details.
 
-from odoo import api, fields, models, _
-from odoo.exceptions import Warning
-from odoo.addons.website_sale.controllers import main
+from openerp import api, fields, models, _
+from openerp.exceptions import Warning
+from openerp.addons.website_sale.controllers import main
 
 
 class Brands(models.Model):
     _name = 'product.brands'
-    _description = 'Add product brands'
 
     name = fields.Char(string='Brand Name', required=True, translate=True)
-    brand_description = fields.Text(string='Description', translate=True)
+    brand_description = fields.Html(string='Description', translate=True)
     brand_logo = fields.Binary(string='Brand Logo')
     brand_cover = fields.Binary(string='Brand Cover')
     product_ids = fields.One2many(
@@ -32,7 +31,6 @@ class Brands(models.Model):
 
 class ProductStyleTags(models.Model):
     _name = 'biztech.product.style.tag'
-    _description = 'Add style tags in Product'
 
     name = fields.Char(string='Tag Name', required=True, translate=True)
     color = fields.Selection(
@@ -63,12 +61,9 @@ class KingProductImages(models.Model):
                                 # required=True,
                                 help="Cover Image will be show untill video is loaded.")
     video_id = fields.Char(string='Video ID')
-    video_ogv = fields.Char(
-        string='Video OGV', help="Link for ogv format video")
-    video_webm = fields.Char(
-        string='Video WEBM', help="Link for webm format video")
-    video_mp4 = fields.Char(
-        string='Video MP4', help="Link for mp4 format video")
+    video_ogv = fields.Char(string='Video OGV', help="Link for ogv format video")
+    video_webm = fields.Char(string='Video WEBM', help="Link for webm format video")
+    video_mp4 = fields.Char(string='Video MP4', help="Link for mp4 format video")
     sequence = fields.Integer(string='Sort Order')
     product_tmpl_id = fields.Many2one('product.template', string='Product')
     more_view_exclude = fields.Boolean(string="More View Exclude")
@@ -76,7 +71,6 @@ class KingProductImages(models.Model):
 
 class ProductTemplate(models.Model):
     _inherit = 'product.template'
-    _description = "Add Multiple Image in Product"
 
     product_brand_id = fields.Many2one(
         'product.brands',
@@ -84,9 +78,9 @@ class ProductTemplate(models.Model):
         help='Select a brand for this product'
     )
     images = fields.One2many('biztech.product.images', 'product_tmpl_id',
-                             string='Product Multi Images')
+                             string='Images')
     multi_image = fields.Boolean(string="Add Multiple Images?")
-    biztech_tag_ids = fields.Many2many('biztech.product.tags', string="Products Tags")
+    biztech_tag_ids = fields.Many2many('biztech.product.tags', string="Tags")
     is_flip_image = fields. Boolean(
         string="Add flip image", help="Enable this checkbox for adding flip image on product website.")
     flip_image = fields.Binary(string='Flip image',
@@ -101,24 +95,19 @@ class ProductTemplate(models.Model):
 class ProductTags(models.Model):
     _name = 'biztech.product.tags'
     _order = "sequence"
-    _description = "Add Tags in Product"
 
-    name = fields.Char(string="Tag Name", help="Tag Name",
-                       required=True, translate=True)
+    name = fields.Char(string="Tag Name", help="Tag Name", required=True, translate=True)
     active = fields.Boolean(
         string="Active", help="Enable or Disable tag from website", default=True)
     sequence = fields.Integer(
         string='Sequence', help="You can define sequence of tags you want to show tags")
-    product_ids = fields.Many2many(
-        'product.template', string='Products', required=True)
+    product_ids = fields.Many2many('product.template', string='Products', required=True)
 
-    _sql_constraints = [('unique_tag_name', 'unique(name)',
-                         'Tag name should be unique..!'), ]
+    _sql_constraints = [('unique_tag_name', 'unique(name)', 'Tag name should be unique..!'), ]
 
 
 class ProductSortBy(models.Model):
     _name = 'biztech.product.sortby'
-    _description = "Add Sort product fields"
 
     name = fields.Char(string="Name", help='Name for sorting option',
                        required=True, translate=True)
@@ -131,7 +120,6 @@ class ProductSortBy(models.Model):
 
 class ProductCategory(models.Model):
     _inherit = 'product.public.category'
-    _description = "Add Mega menu in Product"
 
     include_in_megamenu = fields.Boolean(
         string="Include in mega menu", help="Include in mega menu")
@@ -143,7 +131,6 @@ class ProductCategory(models.Model):
 class ProductPerPageNo(models.Model):
     _name = "product.per.page.no"
     _order = 'name asc'
-    _description = "Product Per Page No"
 
     name = fields.Integer(string='Product per page')
     set_default_check = fields.Boolean(string="Set default")
@@ -153,8 +140,7 @@ class ProductPerPageNo(models.Model):
     def create(self, vals):
         res = super(ProductPerPageNo, self).create(vals)
         if vals.get('name') == 0:
-            raise Warning(
-                _("Warning! You cannot set 'zero' for product page."))
+            raise Warning(_("Warning! You cannot set 'zero' for product page."))
         if vals.get('set_default_check'):
             true_records = self.search(
                 [('set_default_check', '=', True), ('id', '!=', res.id)])
@@ -165,8 +151,7 @@ class ProductPerPageNo(models.Model):
     def write(self, vals):
         res = super(ProductPerPageNo, self).write(vals)
         if vals.get('name') == 0:
-            raise Warning(
-                _("Warning! You cannot set 'zero' for product page."))
+            raise Warning(_("Warning! You cannot set 'zero' for product page."))
         if vals.get('set_default_check'):
             true_records = self.search(
                 [('set_default_check', '=', True), ('id', '!=', self.id)])
@@ -176,7 +161,6 @@ class ProductPerPageNo(models.Model):
 
 class ProductPerPage(models.Model):
     _name = "product.per.page"
-    _description = "Product per page display"
 
     name = fields.Char(string="Label Name", translate=True)
     no_ids = fields.One2many(
@@ -185,11 +169,9 @@ class ProductPerPage(models.Model):
     @api.multi
     def write(self, vals):
         res = super(ProductPerPage, self).write(vals)
-        default_pg = self.env['product.per.page.no'].search(
-            [('set_default_check', '=', True)])
+        default_pg = self.env['product.per.page.no'].search([('set_default_check', '=', True)])
         if default_pg.name:
             main.PPG = int(default_pg.name)
         else:
-            raise Warning(
-                _("Warning! You have to set atleast one default value."))
+            raise Warning(_("Warning! You have to set atleast one default value."))
         return res

+ 1 - 4
models/slider.py

@@ -1,12 +1,11 @@
 # -*- coding: utf-8 -*-
 # Part of AppJetty. See LICENSE file for full copyright and licensing details.
 
-from odoo import api, fields, models
+from openerp import api, fields, models
 
 
 class ProductCategorySlider(models.Model):
     _name = 'product.category.slider.config'
-    _description = "Configration of product category slider"
 
     name = fields.Char(string="Slider name", default='Trending', required=True, translate=True,
                        help="Slider title to be displayed on website like Best products, Latest and etc...")
@@ -29,7 +28,6 @@ class ProductCategorySlider(models.Model):
 class BlogSlider(models.Model):
 
     _name = 'blog.slider.config'
-    _description = "Configration of Blogs slider"
 
     name = fields.Char(string="Slider name", default='Blogs', translate=True,
                        help="Slider title to be displayed on website like Our Blogs, Latest Blog Post and etc...",
@@ -46,7 +44,6 @@ class BlogSlider(models.Model):
 
 class MultiSlider(models.Model):
     _name = 'multi.slider.config'
-    _description = "Configration of Multi slider"
 
     name = fields.Char(string="Slider name", default='Trending',
                        required=True, translate=True,

+ 35 - 36
models/website.py

@@ -3,15 +3,15 @@
 
 import math
 import werkzeug
-from odoo import api, fields, models, _
-from odoo.http import request
+from openerp import api, fields, models, _
+from openerp.http import request
+from openerp.addons.website_sale.controllers import main
 
 PPG = 18
 
 
 class WebsiteMenu(models.Model):
     _inherit = "website.menu"
-    _description = "Website mega menu settings"
 
     is_megamenu = fields.Boolean(string='Is megamenu...?')
     megamenu_type = fields.Selection([('2_col', '2 Columns'),
@@ -19,8 +19,7 @@ class WebsiteMenu(models.Model):
                                       ('4_col', '4 Columns')],
                                      default='3_col',
                                      string="Megamenu type")
-    megamenu_bg = fields.Boolean(
-        string='Want to set megamenu background', default=False)
+    megamenu_bg = fields.Boolean(string='Want to set megamenu background', default=False)
     megamenu_bg_img_color = fields.Selection([('bg_img', 'Background image'),
                                               ('bg_color', 'Background color')],
                                              default='bg_img',
@@ -29,24 +28,20 @@ class WebsiteMenu(models.Model):
     megamenu_bg_color = fields.Char(string="Background color for megamenu",
                                     default='#ccc',
                                     help="Background color for megamenu, for setting background color you have to pass hexacode here.")
-    category_slider = fields.Boolean(
-        string='Want to display category slider', default=False)
+    category_slider = fields.Boolean(string='Want to display category slider', default=False)
     carousel_header_name = fields.Char(string="Slider label",
                                        default="Latest", translate=True,
                                        help="Header name for carousel slider in megamenu")
     category_slider_position = fields.Selection([('left', 'Left'), ('right', 'Right')],
                                                 default='left', string="Category Slider Position")
-    menu_icon = fields.Boolean(
-        string='Want to display menu icon', default=False)
-    menu_icon_image = fields.Binary(
-        string="Menu Icon", help="Menu icon for your menu")
+    menu_icon = fields.Boolean(string='Want to display menu icon', default=False)
+    menu_icon_image = fields.Binary(string="Menu Icon", help="Menu icon for your menu")
 
     display_menu_footer = fields.Boolean(string="Display menu footer", default=False,
                                          help="For displaying footer in megamenu")
-    menu_footer = fields.Text(string="Footer content",
+    menu_footer = fields.Html(string="Footer content",
                               help="Footer name for megamenu")
-    customize_menu_colors = fields.Boolean(
-        string='Want to customize menu colors', default=False)
+    customize_menu_colors = fields.Boolean(string='Want to customize menu colors', default=False)
     main_category_color = fields.Char(string='Main category color',
                                       help="Set color for main category in megamenu")
     sub_category_color = fields.Char(string='Sub category color',
@@ -55,7 +50,6 @@ class WebsiteMenu(models.Model):
 
 class website(models.Model):
     _inherit = 'website'
-    _description = "Website settings"
 
     # For Multi image
     thumbnail_panel_position = fields.Selection([
@@ -80,11 +74,15 @@ class website(models.Model):
     no_extra_options = fields.Boolean(string='Slider effects',
                                       default=True,
                                       help="Slider with all options for next, previous, play, pause, fullscreen, hide/show thumbnail panel.")
-    change_thumbnail_size = fields.Boolean(
-        string="Change thumbnail size", default=False)
+    change_thumbnail_size = fields.Boolean(string="Change thumbnail size", default=False)
     thumb_height = fields.Char(string='Thumb height', default=50)
     thumb_width = fields.Char(string='Thumb width', default=88)
 
+    # For Sort By
+    enable_sort_by = fields.Boolean(string='Enable product sorting option',
+                                    help='For enabling product sorting feature in website.',
+                                    default=True)
+
     # For first last pager
     enable_first_last_pager = fields.Boolean(string="Enable First and Last Pager", default=True,
                                              help="Enable this checkbox to make 'First' and 'Last' button in pager on website.")
@@ -103,12 +101,8 @@ class website(models.Model):
         return values
 
     def get_current_pager_selection(self):
-        page_no = request.env['product.per.page.no'].search(
-            [('set_default_check', '=', True)])
         if request.session.get('default_paging_no'):
             return int(request.session.get('default_paging_no'))
-        elif page_no:
-            return int(page_no.name)
         else:
             return PPG
 
@@ -147,7 +141,7 @@ class website(models.Model):
                     del url_args['min1']
                 if url_args.get('sort_id'):
                     del url_args['sort_id']
-                if url_args and not url_args.get('tag') and not url_args.get('range1') and not url_args.get('range2') and not url_args.get('max1') and not url_args.get('min1') and not url_args.get('sort_id'):
+                if not url_args.get('tag') and not url_args.get('range1') and not url_args.get('range2') and not url_args.get('max1') and not url_args.get('min1') and not url_args.get('sort_id'):
                     _url = "%s?%s" % (_url, werkzeug.url_encode(url_args))
             return _url
         res.update({
@@ -190,7 +184,7 @@ class website(models.Model):
         if product_id:
             self.env.cr.execute(
                 "select id from biztech_product_images where product_tmpl_id=%s and more_view_exclude IS NOT TRUE order by sequence", ([product_id]))
-            product_ids = list(map(lambda x: x[0], self.env.cr.fetchall()))
+            product_ids = map(lambda x: x[0], self.env.cr.fetchall())
             if product_ids:
                 product_img_data = self.env['biztech.product.images'].browse(
                     product_ids)
@@ -241,10 +235,9 @@ class website(models.Model):
         return child_categories
 
 
-class ResConfigSettings(models.TransientModel):
+class WebsiteConfigSettings(models.TransientModel):
 
-    _inherit = 'res.config.settings'
-    _description = "Res Config settings "
+    _inherit = 'website.config.settings'
 
     # For multi image
     thumbnail_panel_position = fields.Selection([
@@ -253,37 +246,43 @@ class ResConfigSettings(models.TransientModel):
         ('bottom', 'Bottom')],
         string='Thumbnails panel position',
         related='website_id.thumbnail_panel_position',
-        help="Select the position where you want to display the thumbnail panel in multi image.", readonly=False)
+        help="Select the position where you want to display the thumbnail panel in multi image.")
     interval_play = fields.Char(string='Play interval of slideshow',
                                 related='website_id.interval_play',
-                                help='With this field you can set the interval play time between two images.', readonly=False)
+                                help='With this field you can set the interval play time between two images.')
     enable_disable_text = fields.Boolean(string='Enable the text panel',
                                          related='website_id.enable_disable_text',
-                                         help='Enable/Disable text which is visible on the image in multi image.', readonly=False)
+                                         help='Enable/Disable text which is visible on the image in multi image.')
     color_opt_thumbnail = fields.Selection([
         ('default', 'Default'),
         ('b_n_w', 'B/W'),
         ('sepia', 'Sepia'),
         ('blur', 'Blur')],
         related='website_id.color_opt_thumbnail',
-        string="Thumbnail overlay effects", readonly=False)
+        string="Thumbnail overlay effects")
     no_extra_options = fields.Boolean(string='Slider effects',
                                       # default=True,
                                       related='website_id.no_extra_options',
-                                      help="Slider with all options for next, previous, play, pause, fullscreen, hide/show thumbnail panel.", readonly=False)
+                                      help="Slider with all options for next, previous, play, pause, fullscreen, hide/show thumbnail panel.")
     change_thumbnail_size = fields.Boolean(string="Change thumbnail size",
-                                           related="website_id.change_thumbnail_size", readonly=False)
+                                           related="website_id.change_thumbnail_size"
+                                           )
     thumb_height = fields.Char(string='Thumb height',
-                               related="website_id.thumb_height", readonly=False
+                               related="website_id.thumb_height"
                                )
     thumb_width = fields.Char(string='Thumb width',
-                              related="website_id.thumb_width", readonly=False
+                              related="website_id.thumb_width"
                               )
 
+    # For Sort By
+    enable_sort_by = fields.Boolean(related="website_id.enable_sort_by", string='Enable product sorting option',
+                                    help='For enabling product sorting feature in website.',
+                                    default=True)
+
     # For first last pager
     enable_first_last_pager = fields.Boolean(related='website_id.enable_first_last_pager',
                                              string="Enable First and Last Pager", default=True,
-                                             help="Enable this checkbox to make 'First' and 'Last' button in pager on website.", readonly=False)
+                                             help="Enable this checkbox to make 'First' and 'Last' button in pager on website.")
     # Product per grid
     product_display_grid = fields.Selection(related='website_id.product_display_grid',
-                                            default='3', string='Product per grid', help="Display no. of products per line in website product grid.", readonly=False)
+                                            default='3', string='Product per grid', help="Display no. of products per line in website product grid.")

+ 4 - 7
security/ir.model.access.csv

@@ -1,13 +1,13 @@
 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
 access_product_category_slider_config,access_product_category_slider_config,model_product_category_slider_config,,1,0,0,0
 access_product_brands,access_product_brands,model_product_brands,,1,0,0,0
-access_blog_slider_config,access_blog_slider_config,model_blog_slider_config,,1,1,1,1
+access_blog_slider_config,access_blog_slider_config,model_blog_slider_config,,1,0,0,0
 access_biztech_product_images,access_biztech_product_images,model_biztech_product_images,,1,0,0,0
 access_biztech_product_tags,access_biztech_product_tags,model_biztech_product_tags,,1,0,0,0
 access_biztech_product_sortby,access_biztech_product_sortby,model_biztech_product_sortby,,1,0,0,0
 access_multi_slider_config,access_multi_slider_config,model_multi_slider_config,,1,0,0,0
-access_product_per_page_no,access_product_per_page_no,model_product_per_page_no,,1,1,1,1
-access_product_per_page,access_product_per_page,model_product_per_page,,1,1,1,1
+access_product_per_page_no,access_product_per_page_no,model_product_per_page_no,,1,0,0,0
+access_product_per_page,access_product_per_page,model_product_per_page,,1,0,0,0
 access_biztech_product_style_tag,access_biztech_product_style_tag,model_biztech_product_style_tag,,1,0,0,0
 access_biztech_product_brand,access_biztech_product_brand,model_product_brands,website.group_website_designer,1,1,1,1
 access_biztech_product_catagory_slider,access_biztech_product_catagory_slider,model_product_category_slider_config,website.group_website_designer,1,1,1,1
@@ -17,7 +17,4 @@ access_biztech_product_sorting,access_biztech_product_sorting,model_biztech_prod
 access_biztech_custom_product_tags,access_biztech_custom_product_tags,model_biztech_product_tags,website.group_website_designer,1,1,1,1
 access_biztech_product_multiple_images,access_biztech_product_multiple_images,model_biztech_product_images,website.group_website_designer,1,1,1,1
 access_biztech_website_product_paging,access_biztech_website_product_paging,model_product_per_page,website.group_website_designer,1,1,1,1
-access_biztech_theme_view_groups,access_theme_product_view_groups,website_theme_install.model_theme_ir_ui_view,,1,0,0,0
-
-
-
+access_blog_slider_config_manager,access_blog_slider_config_manager,model_blog_slider_config,website.group_website_designer,1,1,1,1

+ 52 - 20
static/description/index.html

@@ -1,18 +1,7 @@
-<section class="oe_container">
-    <div class="oe_row oe_spaced">
-        <div class="oe_span12">
-            <h2 class="oe_slogan" style="color:red;font-size:15px">
-               <b>Note: Kingfisher Pro Fashion v12 will not work with multi website. If you want the multi website compatible module than please contact us.</b>
-            </h2>
-        </div>
-    </div>
-</section>
-
 <section class="oe_container">
     <div class="oe_row oe_spaced">
         <div class="oe_span12">
             <div style="text-align: center; margin-top:30px; margin-bottom:30px;"><a href="https://www.appjetty.com/odoo-development.htm" style="display: inline-block; margin:auto; background: #875A7B; color: #fff; font-weight: bold; font-size: 18px; padding: 0 33px; line-height: 45px; border-radius: 5px;">Get Free Odoo Consultancy</a></div>
-
             <h2 class="oe_slogan" style="color:#FF5D5D;">A Fashion Online Store With Outstanding Elements</h2>
             <p class=" text-center text-muted" style=" font-size:20px">Now customize your fashion store with grand appearance! Odoo Kingfisher Pro Fashion theme allows you to personalize various elements creatively. Experience the well managed snippets with drag & drop.</p>
         </div>
@@ -420,21 +409,64 @@
             </div>
         </div>
     </section>
-    <section class="oe_container">
+   <!--  <section class="container oe_dark">
+        <div class="container">
+            <div class="col-md-12">
+                <h3 class="text-left" style="color:#FF5D5D;">Customizing Store Shop Page</h3>
+                <p class="text-muted">Admin can configure store shop page as per requirement by adding or removing things that are needed.</p>
+            </div>
+        </div>
+    </section> -->
+
+<!--     <section class="oe_container " style="padding:20px 0px">
         <div class="oe_row oe_spaced">
-            <div class="oe_span12">
-                <h2 class="oe_slogan" style="color:red;font-size:15px">
-                   <b>Note: All the new features of Kingfisher Pro Fashion v12 may not be available in older versions.</b>
-                </h2>
+            <h2 class="oe_slogan" style="color:#FF5D5D; margin-bottom:0px;">You may also like</h2>
+        </div>
+        <div class="container">
+            <div class="col-md-4">
+                <a href="https://www.odoo.com/apps/themes/9.0/kingfisher">
+                    <img class="img-border img-fluid thumbnail" src="kingfisher.jpg" />
+                </a>
+            </div>
+            <div class="col-md-4">
+                <a href="https://www.odoo.com/apps/themes/9.0/falcon_backend_theme">
+                    <img class="img-border img-fluid thumbnail" src="falcon_theme.png" />
+                </a>
+            </div>
+            <div class="col-md-4">
+                <a href="https://www.odoo.com/apps/themes/9.0/kingfisher_pro_bicycle">
+                    <img class="img-border img-fluid thumbnail" src="kingfisher_pro_bicycle.png" />
+                </a>
             </div>
         </div>
     </section>
-
-    <section class="text-center">
-        <div class="mb32">
-            <a href="https://www.appjetty.com/contacts/" target="_blank" style="display: inline-block; background: #03aee4; font-size: 18px; color: #ffffff; font-weight: 700; padding: 0 33px; line-height: 37px; border-radius: 5px; text-decoration: none;">Contact us</a>
+    <section class="oe_container">
+        <div class="oe_row oe_spaced">
+            <div class="col-md-6 img-content">
+                <h3>Our Odoo Services</h3>
+            </div>
+            <div class="bc-span col-md-12">
+                <div class="inner-span">
+                    <a target="_blank" href="https://goo.gl/3OCf0g">
+                        <img class="img-border img-fluid thumbnail" src="service-banner.png" />
+                    </a>
+                </div>
+            </div>
         </div>
     </section>
+    <section class="oe_container">
+        <div class="oe_row oe_spaced">
+            <div class="col-md-12 img-content text-center">
+                <h2>Technical Help &amp; Support</h2>
+                <p style="margin: 30px 0px;">We offer extremely convenient and quick support service to all your technical help &amp; support requests. As our support <br /> service is the parameter defining the success of our business and earning us the brand name.       <br />    Please feel free to contact us</p>
+                <div class="text-center">
+                    <a style="color: rgb(255, 255, 255); border-color: rgb(49, 91, 143); position: relative; overflow: hidden; background: none 0% 0% repeat scroll rgb(49, 91, 143);" class="btn btn-success btn-lg" rel="nofollow" href="mailto:support@appjetty.com">
+                        <i class="fa fa-envelope"></i>  support@appjetty.com </a>
+                </div>
+                <br />
+            </div>
+        </div>
+    </section> -->
 
     <section class="tech-help-suport" style="margin-top: 30px;">
         <div class="container">

+ 0 - 13
static/src/js/custom.js

@@ -11,15 +11,6 @@ $(document).ready(function($) {
  $( ".carousel" ).carousel();
 });
 $(document).ready(function($) {
-     $('a[data-action=customize_theme]').click(function() { 
-        setTimeout(function(){ 
-            if ($('.modal-body').hasClass('cstm-customized-theme') == true) 
-            { 
-                $('.modal-body').parent().parent().addClass('only-cstm-theme') 
-                $('.modal-body').parent().addClass('only-cstm-theme') 
-            } 
-        }, 100); 
-    });
     // browser window scroll (in pixels) after which the "back to top" link is shown
     var offset = 300,
         //browser window scroll (in pixels) after which the "back to top" link opacity is reduced
@@ -85,7 +76,6 @@ $(document).ready(function($) {
         $(".oe_website_sale .shift_grid_view").removeClass('active')
         $(this).addClass('active')
         $('#products_grid').addClass("list-view-box");
-        $('.oe_website_sale .oe_subdescription').addClass('o_hidden');
         localStorage.setItem("product_view", "list");
     });
 
@@ -93,21 +83,18 @@ $(document).ready(function($) {
         $(".oe_website_sale .shift_list_view").removeClass('active')
         $(this).addClass('active')
         $('#products_grid').removeClass("list-view-box");
-        $('.oe_website_sale .oe_subdescription').removeClass('o_hidden');
         localStorage.setItem("product_view", "grid");
     });
 
     if (localStorage.getItem("product_view") == 'list') {
         $(".oe_website_sale .shift_grid_view").removeClass('active')
         $(".oe_website_sale .shift_list_view").addClass('active')
-        $('.oe_website_sale .oe_subdescription').addClass('o_hidden');
         $('#products_grid').addClass("list-view-box");
     }
 
     if (localStorage.getItem("product_view") == 'grid') {
         $(".oe_website_sale .shift_list_view").removeClass('active')
         $(".oe_website_sale .shift_grid_view").addClass('active')
-        $('.oe_website_sale .oe_subdescription').removeClass('o_hidden');
         $('#products_grid').removeClass("list-view-box");
     }
     // Grid/List switching code ends

+ 51 - 73
static/src/js/kingfisher_pro.js

@@ -42,63 +42,31 @@ odoo.define('kingfisher_pro.kingfisher_pro_js', function(require) {
                             $input.trigger('change');
                             return;
                         }
-                        if (data.cart_quantity == undefined) {
-                            data['cart_quantity'] = 0;
-                        }
                         var $q1 = $(".king_pro_cart_quantity");
-                        $q1.fadeOut(500)
-
-                        var startTime = new Date().getTime();
-                        var my_hover_total = setInterval(function() {
-                            if (new Date().getTime() - startTime > 1000) {
-                                clearInterval(my_hover_total);
-
-                                $q1.html(data.cart_quantity).fadeIn(500);
-                                return;
-                            }
-                            $("#king_hover_total").empty().html(data['kingfisher_pro.hover_total']);
-                        }, 100);
-
-                        my_hover_total;
+                        $q1.html(data.cart_quantity).hide().fadeIn(600);
+                        $("#king_hover_total").replaceWith(data['kingfisher_pro.hover_total']);
                     });
-                }, 100);
+                }, 500);
 
             });
 
-            $(oe_website_sale).on('click', '.o_wish_add', function() {
-                setTimeout(function() {
-                    window.location.reload();
-                }, 800)
-            });
 
-            $(oe_website_sale).on('change', 'input.js_product_change', function() {
-                var self = this;
-                var $parent = $(this).closest('.js_product');
-                update_gallery_product_variant_image(this, +$(this).val());
-            });
 
             $(oe_website_sale).on('change', 'input.js_variant_change, select.js_variant_change, ul[data-attribute_value_ids]', function(ev) {
-                if (api != undefined){
-                    var $ul = $(ev.target).closest('.js_add_cart_variants');
-                    var $parent = $ul.closest('.js_product');
-                    var variant_ids = $ul.data("attribute_value_ids");
-                    var values = [];
-                    if(_.isString(variant_ids)) {
-                        variant_ids = JSON.parse(variant_ids.replace(/'/g, '"'));
-                    }
-                    var unchanged_values = $parent.find('div.oe_unchanged_value_ids').data('unchanged_value_ids') || [];
-                    $parent.find('input.js_variant_change:checked, select.js_variant_change').each(function () {
-                        values.push(+$(this).val());
-                    });
-                    values =  values.concat(unchanged_values);
-
-                    var product_id = false;
-                    for (var k in variant_ids) {
-                        if (_.isEmpty(_.difference(variant_ids[k][1], values))) {
-                            product_id = variant_ids[k][0];
-                            update_gallery_product_variant_image(this, product_id);
-                            break;
-                        }
+                var $ul = $(ev.target).closest('.js_add_cart_variants');
+                var $parent = $ul.closest('.js_product');
+                var variant_ids = $ul.data("attribute_value_ids");
+                var values = [];
+                $parent.find('input.js_variant_change:checked, select.js_variant_change').each(function() {
+                    values.push(+$(this).val());
+                });
+
+                var product_id = false;
+                for (var k in variant_ids) {
+                    if (_.isEmpty(_.difference(variant_ids[k][1], values))) {
+                        product_id = variant_ids[k][0];
+                        update_gallery_product_variant_image(this, product_id);
+                        break;
                     }
                 }
             });
@@ -162,14 +130,14 @@ odoo.define('kingfisher_pro.kingfisher_pro_js', function(require) {
                         update_gallery_product_image();
                     }
                 });
-
-                if (api != undefined && $('#gallery').length != 0) {
-                    setTimeout(function() {
-                        update_gallery_product_image()
-                    }, 500);
-                }
             });
 
+        $(window).load(function() {
+            if (api != undefined) {
+                update_gallery_product_image()
+            }
+        });
+
         function update_gallery_product_image() {
             var $container = $('.oe_website_sale').find('.ug-slide-wrapper');
             var $img = $container.find('img');
@@ -179,18 +147,14 @@ odoo.define('kingfisher_pro.kingfisher_pro_js', function(require) {
             if (p_id > 0) {
                 $img.each(function(e_img) {
                     if ($(this).attr("src").startsWith('/web/image/biztech.product.images/') == false) {
-                        if ($(this).attr("src").match('/flip_image') == null) {
-                            $(this).attr("src", "/web/image/product.product/" + p_id + "/image");
-                        }
+                        $(this).attr("src", "/web/image/product.product/" + p_id + "/image");
                     }
                 });
             } else {
                 var spare_link = api.getItem(0).urlThumb;
                 $img.each(function(e_img) {
                     if ($(this).attr("src").startsWith('/web/image/biztech.product.images/') == false) {
-                        if ($(this).attr("src").match('/flip_image') == null) {
-                            $(this).attr("src", spare_link);
-                        }
+                        $(this).attr("src", spare_link);
                     }
                 });
             }
@@ -199,6 +163,7 @@ odoo.define('kingfisher_pro.kingfisher_pro_js', function(require) {
         function update_gallery_product_variant_image(event_source, product_id) {
             var $imgs = $(event_source).closest('.oe_website_sale').find('.ug-slide-wrapper');
             var $img = $imgs.find('img');
+
             var total_img = api.getNumItems()
             if (total_img != undefined) {
                 api.selectItem(0);
@@ -206,21 +171,34 @@ odoo.define('kingfisher_pro.kingfisher_pro_js', function(require) {
             var $stay;
             $img.each(function(e) {
                 if ($(this).attr("src").startsWith('/web/image/biztech.product.images/') == false) {
-                    if ($(this).attr("src").match('/flip_image') == null) {
-                        $(this).attr("src", "/web/image/product.product/" + product_id + "/image");
-
-                        $stay = $(this).parent().parent();
-                        $(this).css({
-                            'width': 'initial',
-                            'height': 'initial'
-                        });
-                        api.resetZoom();
-                        api.zoomIn();
-                    }
+                    $(this).attr("src", "/web/image/product.product/" + product_id + "/image");
+
+                    $stay = $(this).parent().parent();
+                    $(this).css({
+                        'width': 'initial',
+                        'height': 'initial'
+                    });
+                    api.resetZoom();
+                    api.zoomIn();
+
+                    // var $p = $stay.parent().parent();
+                    // var check_width = parseInt($(this).css('width')) || 10;
+
+                    // var temp = 1;
+                    // while (parseInt($stay.css('width')) > check_width) {
+                    //     api.zoomIn();
+
+                    //     check_width = parseInt($(this).css('width'))
+                    //         // for avoid n times of loop
+                    //     if (temp++ > 20) {
+                    //         break;
+                    //     }
+                    // };
                 }
             });
         }
 
+
         // Price slider code start
         var minval = $("input#m1").attr('value'),
             maxval = $('input#m2').attr('value'),
@@ -274,4 +252,4 @@ odoo.define('kingfisher_pro.kingfisher_pro_js', function(require) {
         });
 
     });
-});
+});

+ 16 - 16
static/src/js/kingfisher_pro_editor.js

@@ -21,23 +21,23 @@ odoo.define('kingfisher_pro.kingfisher_pro_editor_js', function(require) {
             }
         },
 
-        onBuilt: function() {
+        drop_and_build_snippet: function() {
             var self = this;
             this._super();
             if (this.pro_cat_slider()) {
                 this.pro_cat_slider().fail(function() {
-                    self.getParent()._removeSnippet();
+                    self.editor.on_remove();
                 });
             }
         },
 
-        cleanForSave: function() {
+        clean_for_save: function() {
             $('.oe_pro_cat_slider .owl-carousel').empty();
         },
 
         pro_cat_slider: function(type, value) {
             var self = this;
-            if (type != undefined && type.type == "click" || type == undefined) {
+            if (type == "click" || type == undefined) {
                 self.$modal = $(qweb.render("kingfisher_pro.king_pro_dynamic_product_category_slider"));
                 self.$modal.appendTo('body');
                 self.$modal.modal();
@@ -94,23 +94,23 @@ odoo.define('kingfisher_pro.kingfisher_pro_editor_js', function(require) {
             }
         },
 
-        onBuilt: function() {
+        drop_and_build_snippet: function() {
             var self = this;
             this._super();
             if (this.king_brand_slider()) {
                 this.king_brand_slider().fail(function() {
-                    self.getParent()._removeSnippet();
+                    self.editor.on_remove();
                 });
             }
         },
 
-        cleanForSave: function() {
+        clean_for_save: function() {
             $('.king_pro_brand_slider .owl-carousel').empty();
         },
 
         king_brand_slider: function(type, value) {
             var self = this;
-            if (type != undefined && type.type == "click" || type == undefined) {
+            if (type == "click" || type == undefined) {
                 self.$modal = $(qweb.render("kingfisher_pro.king_pro_brands_slider_block"));
                 self.$modal.appendTo('body');
                 self.$modal.modal();
@@ -160,23 +160,23 @@ odoo.define('kingfisher_pro.kingfisher_pro_editor_js', function(require) {
             }
         },
 
-        onBuilt: function() {
+        drop_and_build_snippet: function() {
             var self = this;
             this._super();
             if (this.king_blog_slider()) {
                 this.king_blog_slider().fail(function() {
-                    self.getParent()._removeSnippet();
+                    self.editor.on_remove();
                 });
             }
         },
 
-        cleanForSave: function() {
+        clean_for_save: function() {
             $('.king_pro_blog_slider .owl-carousel').empty();
         },
 
         king_blog_slider: function(type, value) {
             var self = this;
-            if (type != undefined && type.type == "click" || type == undefined) {
+            if (type == "click" || type == undefined) {
                 self.$modal = $(qweb.render("kingfisher_pro.king_pro_blog_slider_block"));
                 self.$modal.appendTo('body');
                 self.$modal.modal();
@@ -233,23 +233,23 @@ odoo.define('kingfisher_pro.kingfisher_pro_editor_js', function(require) {
             }
         },
 
-        onBuilt: function() {
+        drop_and_build_snippet: function() {
             var self = this;
             this._super();
             if (this.multi_category_slider()) {
                 this.multi_category_slider().fail(function() {
-                    self.getParent()._removeSnippet();
+                    self.editor.on_remove();
                 });
             }
         },
 
-        cleanForSave: function() {
+        clean_for_save: function() {
             $('.oe_multi_category_slider .owl-carousel').empty();
         },
 
         multi_category_slider: function(type, value) {
             var self = this;
-            if (type != undefined && type.type == "click" || type == undefined) {
+            if (type == "click" || type == undefined) {
                 self.$modal = $(qweb.render("kingfisher_pro.multi_product_custom_slider_block"));
                 self.$modal.appendTo('body');
                 self.$modal.modal();

+ 43 - 100
static/src/js/kingfisher_pro_frontend.js

@@ -1,62 +1,46 @@
 odoo.define('kingfisher_pro.kingfisher_pro_frontend_js', function(require) {
     'use strict';
 
-    var animation = require('website.content.snippets.animation');
+    var animation = require('web_editor.snippets.animation');
     var ajax = require('web.ajax');
-    var base = require('web_editor.base')
-    var core = require('web.core');
-    var _t = core._t;
 
     animation.registry.kingfisher_pro_product_category_slider = animation.Class.extend({
 
         selector: ".oe_pro_cat_slider",
-        start: function() {
+        start: function(editable_mode) {
             var self = this;
-            if (this.editableMode) {
-                var $cat_slider = $('#wrapwrap').find('.oe_pro_cat_slider');
-                var cat_name = _t("Product/Category Slider")
-
-                _.each($cat_slider, function (single){
-                    $(single).empty().append('<div class="container">\
-                                                <div class="row oe_our_slider">\
-                                                    <div class="col-md-12">\
-                                                        <div class="title-block">\
-                                                            <h4 id="snippet-title" class="section-title style1">\
-                                                                <span>'+ cat_name+'</span>\
-                                                            </h4>\
-                                                        </div>\
-                                                    </div>\
-                                                </div>\
-                                            </div>')
-                });
+            if (editable_mode) {
+                $('.oe_pro_cat_slider .owl-carousel').empty();
             }
-            if (!this.editableMode) {
+            if (!editable_mode) {
                 var slider_type = self.$target.attr('data-prod-cat-slider-type');
                 $.get("/kingfisher_pro/pro_get_dynamic_slider", {
                     'slider-type': self.$target.attr('data-prod-cat-slider-type') || '',
                 }).then(function(data) {
                     if (data) {
-
                         self.$target.empty();
                         self.$target.append(data);
                         $(".oe_pro_cat_slider").removeClass('hidden');
 
                         ajax.jsonRpc('/kingfisher_pro/pro_image_effect_config', 'call', {
                             'slider_type': slider_type
-                        }).done(function(res) {  
-                            base.ready().then(function () {
-                                _.each(self.$target.find('.cs-product'), function(k, v) {
-                                    if ($(k).find('.o_portal_chatter')) {
-                                        var $input_val = $(k).find('.o_portal_chatter');
-                                        var rating = require('portal.chatter');
-                                        var rating_star = new rating.PortalChatter(null, $input_val.data());
+                        }).done(function(res) {
+                            _.each(self.$target.find('.cs-product'), function(k, v) {
+                                if ($(k).find('.o_rating_star_card')) {
+                                    var input_val = $(k).find('.o_rating_star_card').find("input").data('default');
+                                    if (input_val > 0) {
+                                        var rating = require('rating.rating');
+                                        var rating_star = new rating.RatingStarWidget(this, {
+                                            'rating_default_value': input_val,
+                                            'rating_disabled': true,
+                                        });
                                         if (rating_star) {
-                                            $input_val.empty();
-                                            rating_star.appendTo($input_val);
+                                            $(k).find('.rating').empty();
+                                            rating_star.appendTo($(k).find('.rating'));
                                         }
                                     }
-                                }); 
-                            }); 
+                                }
+                            });
 
                             $('div#' + res.s_id).owlCarousel({
                                 margin: 10,
@@ -94,28 +78,12 @@ odoo.define('kingfisher_pro.kingfisher_pro_frontend_js', function(require) {
     animation.registry.kingfisher_pro_brand_custom_slider = animation.Class.extend({
 
         selector: ".king_pro_brand_slider",
-        start: function() {
+        start: function(editable_mode) {
             var self = this;
-            if (this.editableMode) {
-                var $brand_slider = $('#wrapwrap').find('.king_pro_brand_slider');
-                var brand_name = _t("Our Brands")
-
-                _.each($brand_slider, function (single){
-                    $(single).empty().append('<div class="container">\
-                                                <div class="row our-brands">\
-                                                    <div class="col-md-12">\
-                                                        <div class="title-block">\
-                                                            <h4 class="section-title style1" id="snippet-title">\
-                                                                <span>'+ brand_name +'</span>\
-                                                            </h4>\
-                                                        </div>\
-                                                    </div>\
-                                                </div>\
-                                            </div>')
-                });
-
+            if (editable_mode) {
+                $('.king_pro_brand_slider .owl-carousel').empty();
             }
-            if (!this.editableMode) {
+            if (!editable_mode) {
                 $.get("/king_pro/get_brand_slider", {
                     'product_count': self.$target.attr('data-brand-count') || 0,
                     'product_label': self.$target.attr('data-product-label') || '',
@@ -159,25 +127,12 @@ odoo.define('kingfisher_pro.kingfisher_pro_frontend_js', function(require) {
     animation.registry.kingfisher_pro_blog_custom_snippet = animation.Class.extend({
 
         selector: ".king_pro_blog_slider",
-        start: function() {
+        start: function(editable_mode) {
             var self = this;
-            if (this.editableMode) {
-                var $blog_slider = $('#wrapwrap').find('.king_pro_blog_slider');
-                var blog_name = _t("Blog post slider")
-
-                _.each($blog_slider, function (single){
-                    $(single).empty().append('<div class="container">\
-                                                <div class="row">\
-                                                    <div class="col-md-12">\
-                                                        <div class="title-block">\
-                                                            <h4 id="snippet-title" class="section-title style1"><span>'+ blog_name+'</span></h4>\
-                                                        </div>\
-                                                    </div>\
-                                                </div>\
-                                            </div>')
-                });
+            if (editable_mode) {
+                $('.king_pro_blog_slider .owl-carousel').empty();
             }
-            if (!this.editableMode) {
+            if (!editable_mode) {
                 var slider_type = self.$target.attr('data-blog-slider-type');
                 $.get("/kingfisher_pro/blog_get_dynamic_slider", {
                     'slider-type': self.$target.attr('data-blog-slider-type') || '',
@@ -228,26 +183,12 @@ odoo.define('kingfisher_pro.kingfisher_pro_frontend_js', function(require) {
     animation.registry.kingfisher_pro_multi_cat_custom_snippet = animation.Class.extend({
 
         selector: ".oe_multi_category_slider",
-        start: function() {
+        start: function(editable_mode) {
             var self = this;
-            if (this.editableMode) {
-                var $multi_cat_slider = $('#wrapwrap').find('.oe_multi_category_slider');
-                var multi_cat_name = _t("Multi Category Slider")
-
-                _.each($multi_cat_slider, function (single){
-                    $(single).empty().append('<div class="container">\
-                                                <div class="row our-categories">\
-                                                    <div class="col-md-12">\
-                                                        <div class="title-block">\
-                                                            <h4 id="snippet-title" class="section-title style1"><span>'+ multi_cat_name+'</span></h4>\
-                                                        </div>\
-                                                    </div>\
-                                                </div>\
-                                            </div>')
-                });
-
+            if (editable_mode) {
+                $('.oe_multi_category_slider .owl-carousel').empty();
             }
-            if (!this.editableMode) {
+            if (!editable_mode) {
                 var slider_type = self.$target.attr('data-multi-cat-slider-type');
                 $.get("/kingfisher_pro/product_multi_get_dynamic_slider", {
                     'slider-type': self.$target.attr('data-multi-cat-slider-type') || '',
@@ -260,20 +201,22 @@ odoo.define('kingfisher_pro.kingfisher_pro_frontend_js', function(require) {
                         ajax.jsonRpc('/kingfisher_pro/product_multi_image_effect_config', 'call', {
                             'slider_type': slider_type
                         }).done(function(res) {
-                            base.ready().then(function () {
-                                _.each(self.$target.find('.cs-product'), function(k, v) {
-                                    if ($(k).find('.o_portal_chatter')) {
-                                        var $input_val = $(k).find('.o_portal_chatter');
-                                        var rating = require('portal.chatter');
-                                        var rating_star = new rating.PortalChatter(null, $input_val.data());
+                            _.each(self.$target.find('.cs-product'), function(k, v) {
+                                if ($(k).find('.o_rating_star_card')) {
+                                    var input_val = $(k).find('.o_rating_star_card').find("input").data('default');
+                                    if (input_val > 0) {
+                                        var rating = require('rating.rating');
+                                        var rating_star = new rating.RatingStarWidget(this, {
+                                            'rating_default_value': input_val,
+                                            'rating_disabled': true,
+                                        });
                                         if (rating_star) {
-                                            $input_val.empty();
-                                            rating_star.appendTo($input_val);
+                                            $(k).find('.rating').empty();
+                                            rating_star.appendTo($(k).find('.rating'));
                                         }
                                     }
-                                });
+                                }
                             });
-
                             $('.multi_hide .owl-carousel').owlCarousel({
                                 margin: 10,
                                 responsiveClass: true,

+ 0 - 29
static/src/js/rating_state.js

@@ -1,29 +0,0 @@
-odoo.define('kingfisher_pro.rating_state_js', function(require) {
-    'use strict';
-
-    var ajax = require('web.ajax');
-    var core = require('web.core');
-    var qweb = core.qweb;
-
-    ajax.loadXML('/website_rating/static/src/xml/website_mail.xml', qweb);
-    var PortalChatter = require('portal.chatter').PortalChatter;
- 
-    PortalChatter.include({
-        start: function(){
-            var res = this._super.apply(this);
-            var rating_val = this.options['rating_val'];
-            var only_rating = this.options['only_rating'];
-
-            if (only_rating == 1){
-                if (rating_val && rating_val < 6){
-                    this.$el.closest('.o_portal_chatter').empty().html(qweb.render("website_rating.rating_stars_static", {'val': rating_val}));
-                }
-                else if(rating_val == 6){
-                    this.$el.closest('.o_portal_chatter').empty().html(qweb.render("website_rating.rating_stars_static", {'val': 0.0}));
-                }
-            }
-            return res
-        }
-    });
-});
-

+ 0 - 0
static/src/scss/box-layout.scss → static/src/less/box-layout.less


+ 22 - 0
static/src/less/custom_theme.less

@@ -0,0 +1,22 @@
+@import url(https://fonts.googleapis.com/css?family=Open+Sans:700,400);
+
+
+/*Font*/
+@font-family:      'Open Sans', sans-serif;
+@font-size-base:	14px;
+@font-size-body:	14px;
+@title:				18px;
+
+/*Color*/
+@header-bg:			#fff;
+@theme:				#c38647;
+@light-color:		#ffffff;
+@dark-color:		#393939;;
+@body-color:		#393939;
+@footer-bg:			#161b1e;
+@footer-text:		#b3b3b3;
+@new-label-color:   #39b54a;
+@sale-label-color:  #f7941d;
+@text-muted		:	#9E9E9E;
+/*img*/
+ @img-path:			'../img/';

+ 38 - 75
static/src/scss/footer.scss → static/src/less/footer.less

@@ -1,14 +1,14 @@
 #wrapwrap footer {
-    background: $dark-color;
+    background: @dark-color;
 }
 footer {
     width: 100%;
     display: inline-block;
     vertical-align: top;
-    color: $footer-text;
+    color: @footer-text;
 
     a {
-        color: $footer-text;
+        color: @footer-text;
     }
     .socisl-link {
         margin: 0;
@@ -22,11 +22,11 @@ footer {
             a {
                 width: 30px;
                 height: 30px;
-                background: $theme;
+                background: @theme;
                 display: block;
                 text-align: center;
                 line-height: 30px;
-                color: $dark-color;
+                color: @dark-color;
             }
         }
     }
@@ -35,11 +35,11 @@ footer {
         padding: 0;
     }
     .footer-top {
-        background: $dark-color;
+        background: @dark-color;
         padding: 34px 0 20px 0px;
 
         .fa {
-            color:fade-out($light-color,0.65);
+            color:fade(@light-color,35);
         }
         .col-sm-4 {
             margin-bottom: 20px;
@@ -48,7 +48,7 @@ footer {
             margin-bottom: 20px;
         }
         .fot-col {
-            color: fade-out($light-color, 0.70);
+            color: fade(@light-color, 30);
             padding-top: 15px;
 
             @media (max-width:996px){
@@ -59,12 +59,12 @@ footer {
             
             
             a{
-                color: fade-out($light-color, 0.70);
+                color: fade(@light-color, 30);
                  .mail {
                 background: url(/kingfisher_pro/static/src/img/mail-footer.png)no-repeat left center;
                 padding-left: 25px;
             }
-            &:hover{color:$light-color; text-decoration: none;};
+            &:hover{color:@light-color; text-decoration: none;};
             }
            
             li {
@@ -74,10 +74,10 @@ footer {
                 padding: 0 0 8px;
 
                 a {
-                    color: fade($light-color, 30);
+                    color: fade(@light-color, 30);
 
                     &:hover {
-                        color: $light-color;
+                        color: @light-color;
                         text-decoration: none;
                     }
                 }
@@ -97,16 +97,6 @@ footer {
                 }
                 
             }
-            @media (min-width: 768px) and (max-width: 1023px){
-                .col-md-3 {
-                    flex: 0 0 35%;
-                    max-width: 35%;
-                }
-                .col-md-2 {
-                    flex: 0 0 20%;
-                    max-width: 20%;
-                }
-            }
             .newsletter-div {
                 float: none;
                 display: inline-block;
@@ -114,11 +104,8 @@ footer {
                 @media (max-width:996px) {
                     padding-left: 22px;
                 }
-                @media (min-width: 768px) and (max-width: 1023px){
-                    flex: 0 0 50%;
-                    max-width: 50%;
-                    margin-top:0;
-                }
+                
+
                 @media (max-width:768px) {
                     margin-top: 10px;
                     padding-left: 15px;
@@ -130,11 +117,11 @@ footer {
                     padding: 0;
                     font-weight:700;
                     text-transform: uppercase;
-                    color: $theme;
-                    font-size: $font-size-base;
+                    color: @theme;
+                    font-size: @font-size-base;
                 }
                 p {
-                    color: fade-out($light-color, 0.70%);
+                    color: fade(lighten(@dark-color, 60%), 34);
                     margin-bottom:7px;
                 }
                 input[type="email"] {
@@ -142,25 +129,25 @@ footer {
                     height: 36px;
                     padding: 10px;
                     border: none;
-                    background-color: lighten($dark-color, 10%);
-                    color: $light-color;
+                    background-color: lighten(@dark-color, 10%);
+                    color: @light-color;
                     margin: 4px 0px 17px 0px;
                     outline: none;
                     border-radius: 0px;
                 }
                 .btn-primary {
-                    background-color: $theme;
-                    color: $light-color;
+                    background-color: @theme;
+                    color: @light-color;
                     padding: 5px 20px;
                     border: none;
                     border: 1px solid transparent;
-                    @include transition(all, .3s, ease);
+                    .transition(all, .3s, ease);
 
                     
-                        color: $light-color;
+                        color: @light-color;
                         /*text-transform: uppercase;*/
                         font-weight: 400;
-                        font-size: $font-size-base - 1;
+                        font-size: @font-size-base - 1;
 
                         &:hover {
                             text-decoration: none;
@@ -171,33 +158,25 @@ footer {
                         }
                     
                     &:hover {
-                        background-color: $dark-color;
-                        border: 1px solid $theme;
+                        background-color: @dark-color;
+                        border: 1px solid @theme;
                     }
                 }
                 .form-control:focus {
-                    border-color: $theme;
+                    border-color: @theme;
                     outline: 0;
                     -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgb(195, 134, 71);
                     box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgb(195, 134, 71);
                 }
-                .newsletter {
-                    .input-group {
-                        -webkit-box-orient: vertical;
-                        -webkit-box-direction: normal;
-                        -ms-flex-flow: column;
-                        flex-flow: column;
-                    }
-                }
             }
         }
     }
     .footer-btm {
-        background: $dark-color;
-        color: fade-out($light-color, 0.70);
+        background: @dark-color;
+        color: fade(lighten(@dark-color, 60%), 34);
 
         .footer-bottom-div {
-            border-top: 1px solid fade-out($light-color, 0.70);
+            border-top: 1px solid fade(lighten(@dark-color, 60%), 19);
             padding: 20px 0;
 
             @media (max-width:768px) {
@@ -207,10 +186,10 @@ footer {
 
             p {
                 margin: 0;
-                font-size: $font-size-base - 1;
+                font-size: @font-size-base - 1;
 
                 span {
-                    color: $theme;
+                    color: @theme;
                 }
                 @media (max-width:1200px) {
                     padding: 0px 30px;
@@ -218,7 +197,7 @@ footer {
                 
 
                 @media (max-width:768px) {
-                    font-size: $font-size-base - 2;
+                    font-size: @font-size-base - 2;
                     text-align: left;
                     padding: 6px;
                 }
@@ -240,19 +219,19 @@ footer {
 
                     a {
                         text-decoration: none;
-                        color: fade-out($light-color, 0.70);
-                        font-size: $font-size-base - 1;
+                        color: fade(lighten(@dark-color, 60%), 34);
+                        font-size: @font-size-base - 1;
                         padding: 0px 8px;
-                        border-right: 1px solid fade-out($light-color, 0.70);
+                        border-right: 1px solid fade(lighten(@dark-color, 60%), 34);
 
                         @media (max-width:768px) {
-                            font-size: $font-size-base - 3;
+                            font-size: @font-size-base - 3;
                         }
                         
 
                         &:hover {
                             text-decoration: none;
-                            color: $light-color;
+                            color: @light-color;
                         }
                     }
                 }
@@ -262,20 +241,4 @@ footer {
             }
         }
     }
-}
-
-
-
-/*V11*/
-.footer-bottom-div {
-    .payment-icons {
-        width: 100%;
-        float: left;
-        text-align: center;
-        margin-top: 15px;
-        span {
-            display: inline-block;
-            vertical-align: top;
-        }
-    }
 }

+ 131 - 192
static/src/scss/header.scss → static/src/less/header.less

@@ -1,30 +1,30 @@
 #wrapwrap .caret{border-top:4px solid #000;
 	&:hover{
-		border-top:4px solid $light-color;
+		border-top:4px solid @light-color;
 	};
 }
 header {
-	background: $header-bg;
+	background: @header-bg;
 
 	* {
-		@include transition(all, 0.3s, ease);
+		.transition(all, 0.3s, ease);
 	}
 	.header-top {
 		width: 100%;
 		display: inline-block;
 		vertical-align: top;
-		color: lighten($dark-color, 10%);
+		color: lighten(@dark-color, 10%);
 		font-weight: 300;
 		z-index: 1000;
 		position: relative;
-		font-size: $font-size-base -2;
+		font-size: @font-size-base -2;
 
 
 		span {
 			margin-right: 3px;
 		}
 		.top-row {
-			border-bottom: 1px solid darken($header-bg, 8%);
+			border-bottom: 1px solid darken(@header-bg, 8%);
 		}
 		a {
 			display: block;
@@ -39,18 +39,14 @@ header {
 		.fa{
 			margin-top:-3px;
 		}
-		@media (min-width: 768px) and (max-width: 1023px){
-			flex: 0 0 70%;
-    		max-width: 70%;
-		}
 
 		@media (max-width:640px) {
 			text-align: left;
 			width: 100%;
-			text-align: center !important;
+			text-align: center;
 		}
 		a {
-			color:$dark-color;
+			color:@dark-color;
 			text-decoration: none;
 			float: left;
 
@@ -66,9 +62,9 @@ header {
 				text-decoration: none;
 			}
 			p {
-				color: lighten($dark-color, 10%);
+				color: lighten(@dark-color, 10%);
 				font-weight: 400;
-				font-size: $font-size-base - 1;
+				font-size: @font-size-base - 1;
 				margin: 0;
 				padding: 0px 11px 0 0;
 			}
@@ -76,16 +72,16 @@ header {
 		.call-us {
 			float: left;
 			margin: 0;
-			color: $dark-color;
+			color: @dark-color;
 
 			i {
-				color: $theme;
+				color: @theme;
 				vertical-align: middle;
-				font-size: $font-size-base * 2 - 4;
+				font-size: @font-size-base * 2 - 4;
 			}
 			span {
-				color: $dark-color;
-				@include transition(all, 0.1s, ease);
+				color: @dark-color;
+				.transition(all, 0.1s, ease);
 			}
 			@media (max-width:991px) {
 				float: none;
@@ -94,31 +90,25 @@ header {
 			}
 			&:hover {
 				span {
-					color: lighten($dark-color, 30%);
+					color: lighten(@dark-color, 30%);
 				}
 			}
 			;
 		}
 	}
-	.top-right {
-		@media (min-width: 768px) and (max-width: 1023px){
-			flex: 0 0 30%;
-    		max-width: 30%;
-    	}
-	}
 	.mail {
 		i {
-			color: $theme;
+			color: @theme;
 			vertical-align: middle;
-			font-size: $font-size-base + 2;
+			font-size: @font-size-base + 2;
 		}
 		span {
-			color: $dark-color;
-			@include transition(all, 0.1s, ease);
+			color: @dark-color;
+			.transition(all, 0.1s, ease);
 		}
 		&:hover {
 			span {
-				color: lighten($dark-color, 30%);
+				color: lighten(@dark-color, 30%);
 			}
 		}
 		;
@@ -126,7 +116,7 @@ header {
 	.top-right {
 		@media (max-width:640px) {
 			width: 100%;
-			text-align: center !important;
+			text-align: center;
 		}
 	}
 	.links {
@@ -159,14 +149,14 @@ header {
 			}
 			.top-link-checkout {
 				padding-right: 0;
-				font-size: $font-size-base - 2;
+				font-size: @font-size-base - 2;
 
 				>a {
-					font-size: $font-size-base - 2;
+					font-size: @font-size-base - 2;
 				}
 				> .fa {
 					margin-right: 8px;
-					font-size: $font-size-base + 5;
+					font-size: @font-size-base + 5;
 					vertical-align: middle;
 				}
 			}
@@ -175,15 +165,15 @@ header {
 				height: 40px;
 				line-height: 40px;
 				padding: 0 5px;
-				font-size: $font-size-base + 2;
+				font-size: @font-size-base + 2;
 				font-weight: 600;
-				color: $theme;
+				color: @theme;
 				vertical-align: middle;
 				border-bottom: 1px solid transparent;
 
 				&:hover {
 					text-decoration: none;
-					color: $dark-color;
+					color: @dark-color;
 				}
 				> .fa {
 					display: inline-block;
@@ -195,13 +185,13 @@ header {
 	.configuration {
 		position: relative;
 		.fa-cog{
-			font-size:$font-size-base + 4;
+			font-size:@font-size-base + 4;
 			margin-top:-1px;
 		}
 
 		.toggle-config {
 			z-index: 1;
-			border: 1px solid $theme;
+			border: 1px solid @theme;
 			width: 174px;
 			text-align: left;
 			padding: 0;
@@ -211,7 +201,7 @@ header {
 			display: none;
 			opacity: 0;
 			top: 100%;
-			@include transition(all, 0.5s, ease);
+			.transition(all, 0.5s, ease);
 		
 
 			@media (max-width:768px){
@@ -220,7 +210,7 @@ header {
 			}
 
 			.options {
-				border-bottom: 1px solid lighten($dark-color, 70%);
+				border-bottom: 1px solid lighten(@dark-color, 70%);
 				padding:12px 0px;
 				margin:0px 12px;
 
@@ -234,7 +224,7 @@ header {
 						}
 						&.active {
 							a {
-								background-color: $theme;
+								background-color: @theme;
 							}
 						}
 					}
@@ -244,8 +234,8 @@ header {
 					margin-bottom:12px;
 
 					label {
-						font-size: $font-size-base - 2;
-						color: $dark-color;
+						font-size: @font-size-base - 2;
+						color: @dark-color;
 						font-weight: bold;
 						
 						margin: 0;
@@ -255,7 +245,7 @@ header {
 					.dropdown-toggle {
 						
 						float: right;
-						border: 1px solid lighten($dark-color, 70%);
+						border: 1px solid lighten(@dark-color, 70%);
 						outline: none;
 						background-color: transparent;
 						text-transform:uppercase;
@@ -270,8 +260,8 @@ header {
 					padding: 6px 0px 11px 0px;
 
 					li {
-						color: $dark-color;
-						font-size: $font-size-base - 2;
+						color: @dark-color;
+						font-size: @font-size-base - 2;
 						font-weight: 400;
 					line-height: 8px;
   					  padding: 9px 12px;
@@ -280,27 +270,20 @@ header {
 							
 						}
 						a {
-							color: $dark-color;
+							color: @dark-color;
 							font-weight: 400;
 							
-							font-size: $font-size-base - 2;
+							font-size: @font-size-base - 2;
 
 							&:hover {
 								text-decoration: none;
-								color: $theme;
+								color: @theme;
 							}
 						}
 						&:hover {
 							a {
 								text-decoration: none;
-								color: $theme;
-							}
-						}
-						&:first-child{
-							b{
-								    display: inline-block;
-								    line-height: normal;
-								    margin-top: 5px;
+								color: @theme;
 							}
 						}
 					}
@@ -309,7 +292,7 @@ header {
 		}
 		&:hover, &:focus, &:active {
 			>a {
-				border-bottom: 1px solid $theme;
+				border-bottom: 1px solid @theme;
 			}
 			.toggle-config {
 				opacity: 1;
@@ -328,13 +311,13 @@ header {
 			opacity: 0;
 			top: 100%;
 			display: none;
-			@include transition(all, 0.5s, ease);
+			.transition(all, 0.5s, ease);
 			position: absolute;
 			width: 265px;
 			padding: 12px;
 			right: 0;
 			text-align: left;
-			border: 1px solid $theme;
+			border: 1px solid @theme;
 			background-color: #fff;
 
 			.block-subtitle {
@@ -383,9 +366,9 @@ header {
 						.product-name {
 							a {
 								text-transform: uppercase;
-								color: $dark-color;
+								color: @dark-color;
 								font-weight:600;
-								font-size: $font-size-base - 1;
+								font-size: @font-size-base - 1;
 							}
 							&:hover {
 								a {
@@ -408,56 +391,41 @@ header {
 						h3 {
 							margin: 0;
 							padding: 0;
-							font-size: $font-size-base;
+							font-size: @font-size-base;
 						}
 						p {
-							font-size: $font-size-base + 3;
+							font-size: @font-size-base + 3;
 							font-weight: bold;
 						}
-						#order_total {
-							margin-left: 0;
-							margin-right: 0;
-
-							span{
-								width: 50%;
-								font-weight: 700;
-							}
-
-							span.h4 {
-								font-weight: normal;
-							    font-size: 18px;
-							    padding-right: 10px;
-							}
-						}
 					}
 					.button-box {
 						.view-all {
-							background-color: lighten($dark-color, 70%);
+							background-color: lighten(@dark-color, 70%);
 							border: none;
 							padding: 7px 10px;
-							color: $dark-color;
+							color: @dark-color;
 							outline: none;
 							display: inline-block;
 							border-radius: 0px;
 
 							&:hover {
-								background-color: $theme;
+								background-color: @theme;
 								text-decoration: none;
-								color: $light-color;
+								color: @light-color;
 							}
 						}
 						.proceed {
-							background-color: $dark-color;
+							background-color: @dark-color;
 							float: right;
 							outline: none;
 							display: inline-block;
 							border-radius: 0px;
 						}
 						a {
-							font-size: $font-size-base;
+							font-size: @font-size-base;
 							font-weight: 400;
 							
-							color: $light-color;
+							color: @light-color;
 						}
 					}
 				}
@@ -472,7 +440,7 @@ header {
 		}
 		&:hover {
 			>a {
-				border-bottom: 1px solid $theme;
+				border-bottom: 1px solid @theme;
 			}
 			.toggle-config {
 				visibility: visible;
@@ -524,12 +492,12 @@ header {
 					padding: 0;
 
 					> a {
-						background: $theme;
+						background: @theme;
 						padding: 10px 25px;
 						border-radius: 25px;
 						display: block;
-						color: $light-color;
-						@include transition(all, 0.5s, ease);
+						color: @light-color;
+						.transition(all, 0.5s, ease);
 
 						&:hover {
 							text-decoration: none;
@@ -541,10 +509,10 @@ header {
 						opacity: 0;
 						top: 120%;
 						width: 250px;
-						background: $light-color;
+						background: @light-color;
 						right: 0;
 						padding: 15px;
-						@include transition(all, 0.5s, ease);
+						.transition(all, 0.5s, ease);
 
 						@media (max-width:767px) {
 							right: -50%;
@@ -556,7 +524,7 @@ header {
 							width: 100%;
 							display: inline-block;
 							vertical-align: top;
-							border-bottom: 1px solid darken($light-color, 10%);
+							border-bottom: 1px solid darken(@light-color, 10%);
 							margin-bottom: 10px;
 							padding-bottom: 10px;
 							position: relative;
@@ -573,7 +541,7 @@ header {
 							}
 							.hc-cart-info {
 								a {
-									color: $dark-color;
+									color: @dark-color;
 									line-height: normal;
 								}
 								label {
@@ -599,10 +567,10 @@ header {
 
 								a {
 									padding: 5px 10px;
-									background: $theme;
+									background: @theme;
 									display: inline-block;
 									vertical-align: top;
-									color: $light-color;
+									color: @light-color;
 								}
 							}
 						}
@@ -626,9 +594,6 @@ header {
 		background: transparent;
 		position: relative;
 		z-index: 99;
-		@media (max-width: 767px){
-			padding: 8px 15px 10px !important;
-		}
 
 		.container {
 			position: relative;
@@ -638,7 +603,7 @@ header {
 			float: left;
 
 			.icon-bar {
-				background: $light-color;
+				background: @light-color;
 			}
 			span:first-child {
 				display: none;
@@ -662,47 +627,47 @@ header {
 				float: left;
 				text-align: center;
 				line-height: 60px;
-				background: darken($theme, 15%);
+				background: darken(@theme, 15%);
 				cursor: pointer;
-				color: $light-color;
+				color: @light-color;
 
 				.fa {
-					font-size: $font-size-base + 6;
+					font-size: @font-size-base + 6;
 				}
 			}
 			.hsearch-block {
 				visibility: hidden;
 				opacity: 0;
 				position: absolute;
-				@include transition(all, 0.5s, ease);
+				.transition(all, 0.5s, ease);
 				top: 120%;
 				width: 250px;
 				right: 0;
 				padding: 20px;
-				background: $light-color;
-				box-shadow: 0px 3px 5px 0px darken($light-color, 30%);
+				background: @light-color;
+				box-shadow: 0px 3px 5px 0px darken(@light-color, 30%);
 
 				.form-control {
 					border-radius: 0;
 					height: 45px;
 					line-height: 45px;
-					font-size: $font-size-base + 2;
+					font-size: @font-size-base + 2;
 				}
 				.btn {
 					position: absolute;
 					top: 20px;
 					right: 20px;
-					background: $theme;
+					background: @theme;
 					border-radius: 0;
 					border: none;
 					height: 45px;
 					line-height: 45px;
 					padding: 0;
 					width: 45px;
-					color: $light-color;
+					color: @light-color;
 
 					.fa {
-						font-size: $font-size-base + 2;
+						font-size: @font-size-base + 2;
 					}
 				}
 			}
@@ -721,7 +686,7 @@ header {
 			@media (max-width:767px) {
 				display: none !important;
 
-				&.show {
+				&.in {
 					display: block !important;
 					position: absolute;
 					top: 99%;
@@ -736,15 +701,15 @@ header {
 					.navbar-nav {
 						float: none;
 						margin: 0;
-						background: $theme;
-						border-bottom:1px solid $theme;
+						background: @theme;
+						border-bottom:1px solid @theme;
 
 						> li {
 							width: 100%;
 							display: inline-block;
 
 							+ li {
-								border-top: 1px solid darken($theme, 7%);
+								border-top: 1px solid darken(@theme, 7%);
 							}
 						}
 					}
@@ -758,24 +723,22 @@ header {
 				}
 				> li {
 					> a {
-						font-size: $font-size-base;
+						font-size: @font-size-base;
 						padding: 10px 15px;
 						line-height: 55px;
 						
 						font-weight: bold;
-						@include transition(all, 0.3s, ease);
+						.transition(all, 0.3s, ease);
 						text-decoration: none;
-						color: $dark-color;
-						display: block;
+						color: @dark-color;
 
 						@media (max-width:767px) {
 							line-height: normal;
-							color: $light-color;
-							text-align: left;
+							color: @light-color;
 						}
 						&:hover, &:focus, &:active {
 							background: transparent;
-							color: $theme;
+							color: @theme;
 
 							&:before {
 								visibility: visible;
@@ -792,26 +755,23 @@ header {
 							height: 2px;
 							bottom: 0;
 							left: 0;
-							background-color: $theme;
+							background-color: @theme;
 							visibility: hidden;
 							-moz-transform: scaleX(0);
 							-webkit-transform: scaleX(0);
 							-o-transform: scaleX(0);
 							transform: scaleX(0);
-							@include transition(all, 0.3s, ease-in-out);
-						}
-						&:after {
-							display: none;
+							.transition(all, 0.3s, ease-in-out);
 						}
 					}
-					> a {
-						&.active {
+					&.active {
+						> a {
 							background: transparent;
-							color: $theme;
+							color: @theme;
 
 							@media (max-width:767px) {
-								color: $light-color;
-								background: darken($theme, 5%);
+								color: @light-color;
+								background: darken(@theme, 5%);
 							}
 						}
 					}
@@ -821,11 +781,11 @@ header {
 
 							&:hover, &:focus, &:active {
 								background: transparent;
-								color: $theme;
+								color: @theme;
 
 								@media (max-width:767px) {
-									color: $light-color;
-									background: darken($theme, 5%);
+									color: @light-color;
+									background: darken(@theme, 5%);
 								}
 							}
 						}
@@ -838,7 +798,7 @@ header {
 					margin-top: 8px;
 
 					a {
-						color: $theme;
+						color: @theme;
 						padding: 5px 9px;
 						text-transform: uppercase;
 					}
@@ -855,12 +815,12 @@ header {
 				width: 100%;
 				left: 0;
 				top: 120%;
-				background: $light-color;
+				background: @light-color;
 				margin: 0;
 				padding: 0;
 				letter-spacing: -0.31em;
-				@include transition(all, 0.5s, ease);
-				box-shadow: 0px 3px 5px 0px darken($light-color, 30%);
+				.transition(all, 0.5s, ease);
+				box-shadow: 0px 3px 5px 0px darken(@light-color, 30%);
 
 				@media (max-width:991px) {
 					visibility: visible;
@@ -877,8 +837,8 @@ header {
 					h4 {
 						margin: 0 0 10px;
 						padding: 0 0 10px;
-						font-size: $font-size-base + 2;
-						border-bottom: 1px dotted darken($light-color, 20%);
+						font-size: @font-size-base + 2;
+						border-bottom: 1px dotted darken(@light-color, 20%);
 					}
 					ul {
 						margin: 0;
@@ -888,7 +848,7 @@ header {
 							list-style-type: none;
 							padding: 3px 0 3px 15px;
 							position: relative;
-							@include transition(all, 0.5s, ease);
+							.transition(all, 0.5s, ease);
 
 							&:before {
 								content: "\f105";
@@ -897,21 +857,21 @@ header {
 								position: absolute;
 								left: 0;
 								top: 0;
-								@include transition(all, 0.5s, ease);
+								.transition(all, 0.5s, ease);
 							}
 							a {
-								color: $theme;
+								color: @theme;
 							}
 							&:hover {
 								padding-left: 20px;
 
 								&:before {
 									left: 5px;
-									color: $theme;
+									color: @theme;
 								}
 								a {
 									text-decoration: none;
-									color: $theme;
+									color: @theme;
 								}
 							}
 							&.mm-img {
@@ -960,7 +920,7 @@ header {
 		}
 	}
 	header {
-		background: $header-bg;
+		background: @header-bg;
 		position: fixed;
 		top: -42px;
 		left: 0;
@@ -1014,36 +974,36 @@ header {
 	}
 }
 .label-primary {
-	background-color: $theme;
+	background-color: @theme;
 }
 footer {
 	.fa-angle-right {
-		color: $light-color;
+		color: @light-color;
 	}
 }
 @media (max-width:767px) {
-	header {
-		.navbar {
+	.navbar-default {
+		.navbar-header {
 			position: relative;
 		}
-		.navbar-toggler {
+		.navbar-toggle {
 			display: block;
 			position: absolute;
-			right: 15px;
+			right: 0;
 			top: 0;
-			padding: 7px;
+			padding: 10px;
 			border-radius: 0;
 			bottom: 0;
 			height: 40px;
 			margin: auto;
 			border: none;
-			background-color: $theme;
+			background-color: @theme;
 
 			.icon-bar {
-				background: $light-color;
+				background: @light-color;
 			}
 			&:hover, &:focus, &:active {
-				background-color: $theme;
+				background-color: @theme;
 			}
 			&.collapsed {
 			}
@@ -1052,14 +1012,14 @@ footer {
 }
 
 		#only_categories{
-		border-top:1px solid $theme;
-		background:$theme;
-		color:$light-color;
+		border-top:1px solid @theme;
+		background:@theme;
+		color:@light-color;
 		.pwpi-title {
 			a{
-			color: $light-color;
+			color: @light-color;
 			&:hover{
-				color:$light-color;
+				color:@light-color;
 			};
 		}
 		}
@@ -1073,22 +1033,22 @@ footer {
 	label{
 		padding:7px;
 		margin:0px 3px 6px 0px;
-		background-color: $theme;
-		color:$light-color;
+		background-color: @theme;
+		color:@light-color;
 		display:inline-block;
 		font-weight: normal;
 		span{
 			margin-right:10px;
 		}
 		#clear{
-			color:$light-color;
+			color:@light-color;
 		}
 	}
 }
 .services{
 	.fa{
 		font-size: 40px;
-		color:$theme;
+		color:@theme;
 	}
 }
 /*checkout page */
@@ -1110,22 +1070,8 @@ footer {
 }
 .mega-dropdown-menu{
 	.dropdown-menu {
-    	padding: 18px;
-	}
-	a{
-		font-size: 14px;
-	}
-	@media (min-width: 768px) and (max-width: 1023px){
-		.col-md-3 {
-			flex: 0 0 100%;
-    		max-width: 100%;
-		}
-		.col-md-9 {
-			flex: 0 0 100%;
-    		max-width: 100%;
-		}
-	}
-}
+    padding: 18px;
+}}
 header {
 	.header-top{
 		.block-subtitle{
@@ -1134,21 +1080,14 @@ header {
 		}
 		.price{
 			a{
-				color:$theme;
+				color:@theme;
 		}
 		}
 		#order_total{
 			.text-left{
-				color: $theme;
+				color: @theme;
 				font-weight: 700;
 			}
 		}
-		.button-box{
-			padding-top: 20px;
-		}
 	}
 }
-
-.navbar {
-	padding: 0;
-}

+ 28 - 0
static/src/less/mixins.less

@@ -0,0 +1,28 @@
+/*BG micin*/
+.bg-img(@img-name){
+	background-image: url('@{img-path}@{img-name}');
+}
+.bg-size(@cover){
+  background-size: @cover;
+  -moz-background-size: @cover;
+  -webkit-background-size: @cover;
+  -o-background-size: @cover;
+}
+
+
+/* Transition */
+.transition(@all, @s, @ease){
+   		transition: @all @s @ease;
+-webkit-transition: @all @s @ease;
+   -moz-transition: @all @s @ease;
+     -o-transition: @all @s @ease;
+}
+
+/*Responsive*/
+/*.media(@maxwidth; @rules) {
+    @media only screen and (max-width: @maxwidth) {
+        @rules();
+    }
+}*/
+
+

+ 0 - 0
static/src/scss/mobile.scss → static/src/less/mobile.less


+ 1 - 0
static/src/less/options/bg_patterns/bg-pattern-1.less

@@ -0,0 +1 @@
+body {background: @box-body-bg1;}

+ 1 - 0
static/src/less/options/bg_patterns/bg-pattern-2.less

@@ -0,0 +1 @@
+body {background: @box-body-bg2;}

+ 1 - 0
static/src/less/options/bg_patterns/bg-pattern-3.less

@@ -0,0 +1 @@
+body {background: @box-body-bg3;}

+ 1 - 0
static/src/less/options/bg_patterns/bg-pattern-4.less

@@ -0,0 +1 @@
+body {background: @box-body-bg4;}

+ 1 - 0
static/src/less/options/bg_patterns/bg-pattern-5.less

@@ -0,0 +1 @@
+body {background: @box-body-bg5;}

+ 1 - 0
static/src/less/options/bg_patterns/bg-pattern-6.less

@@ -0,0 +1 @@
+body {background: @box-body-bg6;}

+ 22 - 0
static/src/less/options/colors/colors.less

@@ -0,0 +1,22 @@
+@import url(https://fonts.googleapis.com/css?family=Open+Sans:700,400);
+
+
+/*Font*/
+@font-family:      'Open Sans', sans-serif;
+@font-size-base:	14px;
+@font-size-body:	14px;
+@title:				18px;
+
+/*Color*/
+@header-bg:			#fff;
+@theme:				#c38647;
+@light-color:		#ffffff;
+@dark-color:		#393939;
+@body-color:		#393939;
+@footer-bg:			#161b1e;
+@footer-text:		#b3b3b3;
+@new-label-color:   #39b54a;
+@sale-label-color:  #f7941d;
+@text-muted		:	#9E9E9E;
+/*img*/
+ @img-path:			'../img/';

+ 22 - 0
static/src/less/options/colors/theme_aqua.less

@@ -0,0 +1,22 @@
+@import url(https://fonts.googleapis.com/css?family=Open+Sans:700,400);
+
+
+/*Font*/
+@font-family:      'Open Sans', sans-serif;
+@font-size-base:	14px;
+@font-size-body:	14px;
+@title:				18px;
+
+/*Color*/
+@header-bg:			#fff;
+@theme:				#80af9b;
+@light-color:		#ffffff;
+@dark-color:		#393939;
+@body-color:		#393939;
+@footer-bg:			#161b1e;
+@footer-text:		#b3b3b3;
+@new-label-color:   #39b54a;
+@sale-label-color:  #f7941d;
+@text-muted		:	#9E9E9E;
+/*img*/
+ @img-path:			'../img/';

+ 22 - 0
static/src/less/options/colors/theme_blue.less

@@ -0,0 +1,22 @@
+@import url(https://fonts.googleapis.com/css?family=Open+Sans:700,400);
+
+
+/*Font*/
+@font-family:      'Open Sans', sans-serif;
+@font-size-base:	14px;
+@font-size-body:	14px;
+@title:				18px;
+
+/*Color*/
+@header-bg:			#fff;
+@theme:				#62d2ea;
+@light-color:		#ffffff;
+@dark-color:		#393939;
+@body-color:		#393939;
+@footer-bg:			#161b1e;
+@footer-text:		#b3b3b3;
+@new-label-color:   #39b54a;
+@sale-label-color:  #f7941d;
+@text-muted		:	#9E9E9E;
+/*img*/
+ @img-path:			'../img/';

+ 22 - 0
static/src/less/options/colors/theme_brown.less

@@ -0,0 +1,22 @@
+@import url(https://fonts.googleapis.com/css?family=Open+Sans:700,400);
+
+
+/*Font*/
+@font-family:      'Open Sans', sans-serif;
+@font-size-base:	14px;
+@font-size-body:	14px;
+@title:				18px;
+
+/*Color*/
+@header-bg:			#fff;
+@theme:				#73503c;
+@light-color:		#ffffff;
+@dark-color:		#393939;
+@body-color:		#393939;
+@footer-bg:			#161b1e;
+@footer-text:		#b3b3b3;
+@new-label-color:   #39b54a;
+@sale-label-color:  #f7941d;
+@text-muted		:	#9E9E9E;
+/*img*/
+ @img-path:			'../img/';

+ 22 - 0
static/src/less/options/colors/theme_orange.less

@@ -0,0 +1,22 @@
+@import url(https://fonts.googleapis.com/css?family=Open+Sans:700,400);
+
+
+/*Font*/
+@font-family:      'Open Sans', sans-serif;
+@font-size-base:	14px;
+@font-size-body:	14px;
+@title:				18px;
+
+/*Color*/
+@header-bg:			#fff;
+@theme:				#ff6801;
+@light-color:		#ffffff;
+@dark-color:		#393939;
+@body-color:		#393939;
+@footer-bg:			#161b1e;
+@footer-text:		#b3b3b3;
+@new-label-color:   #39b54a;
+@sale-label-color:  #f7941d;
+@text-muted		:	#9E9E9E;
+/*img*/
+ @img-path:			'../img/';

+ 22 - 0
static/src/less/options/colors/theme_pink.less

@@ -0,0 +1,22 @@
+@import url(https://fonts.googleapis.com/css?family=Open+Sans:700,400);
+
+
+/*Font*/
+@font-family:      'Open Sans', sans-serif;
+@font-size-base:	14px;
+@font-size-body:	14px;
+@title:				18px;
+
+/*Color*/
+@header-bg:			#fff;
+@theme:				#ff5d5d;
+@light-color:		#ffffff;
+@dark-color:		#393939;
+@body-color:		#393939;
+@footer-bg:			#161b1e;
+@footer-text:		#b3b3b3;
+@new-label-color:   #39b54a;
+@sale-label-color:  #f7941d;
+@text-muted		:	#9E9E9E;
+/*img*/
+ @img-path:			'../img/';

+ 2 - 2
static/src/scss/options/fonts/font-style-lato-font.scss → static/src/less/options/fonts/font-style-lato-font.less

@@ -1,4 +1,4 @@
 @import url(https://fonts.googleapis.com/css?family=Lato:400,700,300,900);
 
-$font-family: 'Lato', sans-serif;
-body { font-family: $font-family;}
+@font-family: 'Lato', sans-serif;
+body { font-family: @font-family;}

+ 2 - 2
static/src/scss/options/fonts/font-style-open-sans-font.scss → static/src/less/options/fonts/font-style-open-sans-font.less

@@ -1,4 +1,4 @@
 @import url(https://fonts.googleapis.com/css?family=Open+Sans:400,600,700,800);
 
-$font-family: 'Open Sans', sans-serif;
-body { font-family: $font-family;}
+@font-family: 'Open Sans', sans-serif;
+body { font-family: @font-family;}

+ 2 - 2
static/src/scss/options/fonts/font-style-raleway-font.scss → static/src/less/options/fonts/font-style-raleway-font.less

@@ -1,4 +1,4 @@
 @import url(https://fonts.googleapis.com/css?family=Raleway:400,500,600,700,800);
 
-$font-family: 'Raleway', sans-serif;
-body { font-family: $font-family;}
+@font-family: 'Raleway', sans-serif;
+body { font-family: @font-family;}

+ 2 - 2
static/src/scss/options/fonts/font-style-source-sans-pro-font.scss → static/src/less/options/fonts/font-style-source-sans-pro-font.less

@@ -1,4 +1,4 @@
 @import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,600,700);
 
-$font-family: 'Source Sans Pro', sans-serif;
-body { font-family: $font-family;}
+@font-family: 'Source Sans Pro', sans-serif;
+body { font-family: @font-family;}

+ 2 - 2
static/src/scss/options/fonts/font-style-source-serif-pro-font.scss → static/src/less/options/fonts/font-style-source-serif-pro-font.less

@@ -1,4 +1,4 @@
 @import url(https://fonts.googleapis.com/css?family=Source+Serif+Pro:400,600,700);
 
-$font-family: 'Source Serif Pro', serif;
-body { font-family: $font-family;}
+@font-family: 'Source Serif Pro', serif;
+body { font-family: @font-family;}

+ 4 - 0
static/src/less/options/fonts/font-style-varela-round-font.less

@@ -0,0 +1,4 @@
+@import url(https://fonts.googleapis.com/css?family=Varela+Round);
+
+@font-family: 'Varela Round', sans-serif;
+body { font-family: @font-family;}

+ 1 - 1
static/src/scss/options/layout/boxed.scss → static/src/less/options/layout/boxed.less

@@ -5,7 +5,7 @@
 	width: 1170px;
 	max-width: 100%;
 	margin: 0 auto;
-	background: $light-color;
+	background: @light-color;
 	box-shadow: 1px 1px 4px 4px rgba(0,0,0,0.1);
 	@media(max-width: 1170px){
 		width:100%;

+ 84 - 174
static/src/scss/product.scss → static/src/less/product.less

@@ -4,7 +4,7 @@
 	}
 }
 .product-blog {
-	border-top: 1px solid lighten($dark-color, 70%);
+	border-top: 1px solid lighten(@dark-color, 70%);
 	padding-top: 56px
 }
 .list-items {
@@ -36,7 +36,7 @@
 				top: 0;
 				bottom: 0;
 				margin: auto;
-				background: $dark-color;
+				background: @dark-color;
 			}
 			.owl-prev {
 				left: 0px;
@@ -54,8 +54,8 @@
 				&:before {
 					content: "\f104";
 					font-family: "FontAwesome";
-					font-size: $font-size-base * 2;
-					color: darken($light-color, 20%);
+					font-size: @font-size-base * 2;
+					color: darken(@light-color, 20%);
 				}
 			}
 			.owl-next {
@@ -74,8 +74,8 @@
 				&:before {
 					content: "\f105";
 					font-family: "FontAwesome";
-					font-size: $font-size-base * 2;
-					color: darken($light-color, 20%);
+					font-size: @font-size-base * 2;
+					color: darken(@light-color, 20%);
 				}
 			}
 		}
@@ -85,7 +85,7 @@
 	padding-bottom: 30px;
 }
 .products-slider-section {
-	padding: 30px 25px 20px 25px;
+	padding: 0px 25px 20px 25px;
 
 	@media (max-width:1200px){
 		padding: 0px 30px;
@@ -109,7 +109,7 @@
 		.add-to-cart {
 			position: absolute;
 			left: 100%;
-			@include transition(all, 0.4s, ease);
+			.transition(all, 0.4s, ease);
 			bottom: 0;
 			width: 100%;
 
@@ -118,14 +118,14 @@
 				float: left;
 				text-align: center;
 				text-transform: uppercase;
-				font-size: $font-family;
-				background: $theme;
+				font-size: @font-family;
+				background: @theme;
 				padding: 10px;
-				color: $light-color;
+				color: @light-color;
 
 				&:hover {
 					text-decoration: none;
-					background: fade($theme, 90);
+					background: fade(@theme, 90);
 				}
 			}
 		}
@@ -142,15 +142,15 @@
 		.pwpi-title {
 			margin: 0;
 			padding: 0 0 5px;
-			font-size: $font-size-base + 1;
+			font-size: @font-size-base + 1;
 			
 
 			a {
-				color: $dark-color;
+				color: @dark-color;
 
 				&:hover {
 					text-decoration: none;
-					color: $theme;
+					color: @theme;
 				}
 			}
 		}
@@ -159,14 +159,14 @@
 			padding: 0;
 
 			.price {
-				font-size: $font-size-base + 1;
+				font-size: @font-size-base + 1;
 				font-weight: 700;
-				color:$theme;
+				color:@theme;
 			}
 			.old-price {
 				text-decoration: line-through;
-				color: lighten($theme, 40%);
-				font-size: $font-size-base + 1;
+				color: lighten(@theme, 40%);
+				font-size: @font-size-base + 1;
 			}
 		}
 		@media  (min-width:320px) and (max-width:767px) {
@@ -176,10 +176,10 @@
 	}
 	.pink-box {
 		width: 100%;
-		background-color: fade-in($theme, 0.9);		/*display: inline-block;*/
+		background-color: fade(@theme, 95);		/*display: inline-block;*/
 		padding: 0px 19px;		/*position: absolute;*/
 		position: relative;
-		@include transition(all, 0.6s, ease);
+		.transition(all, 0.6s, ease);
 
 		/*bottom: 61px;
 		left: 0;*/
@@ -210,14 +210,14 @@
 						width: 14px;
 						height: 14px;
 					}
-		
+					;
 
 					&.active {
 						background: url(../img/white-star.png)no-repeat;
 						width: 14px;
 						height: 14px;
 					}
-			
+					;
 				}
 			}
 		}
@@ -260,7 +260,7 @@
 		}
 		.stars {
 			float: left;
-			color: $light-color;
+			color: @light-color;
 
 			i {
 				margin-right: 3px;
@@ -268,7 +268,7 @@
 		}
 	}
 	.pwp-info {
-		border: 1px solid $theme;
+		border: 1px solid @theme;
 		border-top: none;
 	}
 }
@@ -282,15 +282,15 @@
 	width: 100%;
 	display: inline-block;
 	vertical-align: top;
-	padding: 0px 15px 25px 15px;
+	padding: 0 0 25px;
 
 	.toolbar-pager {
 		.pager_left {
-			float: right;
+			float: left;
 		}
 		.pager_right {
-			float: left;
-			text-align: left;
+			float: right;
+			text-align: right;
 
 			.sort-by {
 				display: inline-block;
@@ -298,18 +298,10 @@
 
 				.dropdown {
 					button {
-						background: $light-color;
-						border: 1px solid darken($light-color, 10%);
+						background: @light-color;
+						border: 1px solid darken(@light-color, 10%);
 						padding: 6px 15px;
-						cursor: pointer;
-						&:focus {
-							outline:none;
-						}
-					}
-					.caret{
-						&:hover{
-							border-top-color:#000000;
-						}
+						border-radius: none;
 					}
 				}
 			}
@@ -318,12 +310,12 @@
 	.view-mode {
 		button {
 			background: none;
-			border: 1px solid darken($light-color, 10%);
+			border: 1px solid darken(@light-color, 10%);
 			padding: 5px 10px;
 
 			&:hover {
-				background: $theme;
-				color: $light-color;
+				background: @theme;
+				color: @light-color;
 			}
 		}
 	}
@@ -334,7 +326,7 @@
 .product-view {
 	.product-shop-info {
 		.product-title {
-			border-bottom: 1px solid lighten($dark-color, 70%);
+			border-bottom: 1px solid lighten(@dark-color, 70%);
 
 			@media (max-width:767px){
 				margin-top: 10px;
@@ -342,10 +334,10 @@
 			
 
 			h1 {
-				font-size: $font-size-base + 6;
+				font-size: @font-size-base + 6;
 				margin: 0;
 				padding: 0 0 12px 0;
-				color: $dark-color;
+				color: @dark-color;
 				font-weight: bold;
 			}
 			.ratings {
@@ -373,13 +365,13 @@
 				}
 			}
 			.review {
-				float: none;
+				float: right;
 				width: 70%;
 
 				a {
-					font-size: $font-size-base - 2;
+					font-size: @font-size-base - 2;
 					font-weight: 400;
-					color: lighten($dark-color, 20%);
+					color: lighten(@dark-color, 20%);
 				}
 				&:hover a {
 					text-decoration: none;
@@ -388,15 +380,15 @@
 		}
 		.details {
 			padding: 0px 0px 15px 0px;
-			border-bottom: 1px solid lighten($dark-color, 70%);
+			border-bottom: 1px solid lighten(@dark-color, 70%);
 
 			.pro-desc {
 				width: 100%;
 				display: inline-block;
 				vertical-align: top;
-				font-size: $font-size-base + 1;
+				font-size: @font-size-base + 1;
 				font-weight: 400;
-				color: $dark-color;
+				color: @dark-color;
 			}
 			.price-box {
 				width: 100%;
@@ -413,15 +405,15 @@
 
 						.price {
 							text-decoration: line-through;
-							color: lighten($dark-color, 50%);
-							font-size: $font-size-base + 6;
+							color: lighten(@dark-color, 50%);
+							font-size: @font-size-base + 6;
 							font-weight: bold;
 						}
 					}
 					&.special-price {
 						.price {
-							font-size: $font-size-base  + 6;
-							color: $theme;
+							font-size: @font-size-base  + 6;
+							color: @theme;
 							font-weight: bold;
 						}
 					}
@@ -449,54 +441,44 @@
 			display: inline-block;
 			vertical-align: top;
 			padding: 0px 0px 29px 0px;
-			border-bottom: 1px solid lighten($dark-color, 70%);
+			border-bottom: 1px solid lighten(@dark-color, 70%);
 		}
 		.css_quantity {
 			width: 146px;
 			height: 44px;
-			margin-top: 25px;
-			
+			float: left;
 
 			.input-group-addon {
 				border-radius: 0;
 				width: 46px;
-				background: $theme;
-				color: $light-color;
-				border-color: $theme;
-				margin-bottom: 0 !important;
-				display: -webkit-box;
-    			display: -ms-flexbox;
-    			display: flex;
-    			-webkit-box-pack: center;
-    			-ms-flex-pack: center;
-    			justify-content: center;
-    			-webkit-box-align: center;
-    			-ms-flex-align: center;
-    			align-items: center;
+				background: @theme;
+				color: @light-color;
+				border-color: @theme;
 
 				&:hover {
-					background: darken($theme, 5%);
+					background: darken(@theme, 5%);
 				}
 			}
 			.form-control {
 				height: 44px;
 				text-align: center;
-				border-color: $theme;
-				color: $dark-color;
+				border-color: @theme;
+				color: @dark-color;
 			}
 		}
+		.add-to-cart {
+			float: right;
 
 			.cart-btn {
-				background:$dark-color;
+				background:@dark-color;
 				width: 176px;
 				padding: 12px 0px 11px 0px;
 				text-align: center;
 				border-radius: 0;
-				color: $light-color;
-				font-size: $font-size-base + 1;
+				color: @light-color;
+				font-size: @font-size-base + 1;
 				font-weight: bolder;
 				transition:all 0.1s ease;
-				margin-top: 8px;
 				/*text-transform: uppercase;*/
 
 				.fa {
@@ -504,17 +486,18 @@
 					margin-right: 8px;
 				}
 				&:hover {
-					border-color: $theme;
-					background: $theme;
-					color: $light-color;
+					border-color: @theme;
+					background: @theme;
+					color: @light-color;
 				}
 				@media (max-width:1200px) {
 					width: auto;
 					padding: 10px;
+					margin-top: 0px !important;
 				}
 				
 			}
-		
+		}
 		.email-addto-box {
 			width: 100%;
 			display: inline-block;
@@ -531,20 +514,20 @@
 				padding-right: 5px;
 
 				a {
-					color: lighten($dark-color, 50%);
+					color: lighten(@dark-color, 50%);
 					padding: 3px 7px;
-					border: 1px solid lighten($dark-color, 50%);
+					border: 1px solid lighten(@dark-color, 50%);
 					display: block;
 					border-radius: 2px;
-					font-size: $font-size-base - 2;
+					font-size: @font-size-base - 2;
 
 					.fa {
 						margin-right: 3px;
 					}
 					&:hover {
-						background: lighten($dark-color, 50%);
+						background: lighten(@dark-color, 50%);
 						text-decoration: none;
-						color: $light-color;
+						color: @light-color;
 					}
 				}
 			}
@@ -558,7 +541,7 @@
 	padding: 15px;
 }
 .sidebar-slider {
-	background: darken($light-color, 3%);
+	background: darken(@light-color, 3%);
 
 	.carousel-control {
 		width: 25px;
@@ -567,24 +550,24 @@
 		right: 0;
 		left: auto;
 		text-shadow: none;
-		color: $light-color;
+		color: @light-color;
 		line-height: normal;
 		opacity: 1;
 
 		&.right {
 			right: 0;
-			background: $theme;
+			background: @theme;
 
 			&:hover {
-				background: $dark-color;
+				background: @dark-color;
 			}
 		}
 		&.left {
 			right: 26px;
-			background: $theme;
+			background: @theme;
 
 			&:hover {
-				background: $dark-color;
+				background: @dark-color;
 			}
 		}
 	}
@@ -603,7 +586,7 @@
 	.rlp-img {
 		max-width: 65px;
 		float: left;
-		border: 1px solid darken($light-color, 8%);
+		border: 1px solid darken(@light-color, 8%);
 	}
 	.rlp-desc {
 		text-align: left;
@@ -613,100 +596,27 @@
 			margin: 0;
 		}
 		.rlp-title {
-			font-size: $font-size-base + 3;
+			font-size: @font-size-base + 3;
 			padding: 0 0 5px;
 
 			a {
-				color: lighten($dark-color, 20%);
+				color: lighten(@dark-color, 20%);
 			}
 		}
 		.price {
 			padding-bottom: 5px;
 
 			.price {
-				font-size: $font-size-base + 3;
+				font-size: @font-size-base + 3;
 			}
 			.old-price {
 				text-decoration: line-through;
-				color: lighten($theme, 40%);
-				font-size: $font-size-base + 1;
+				color: lighten(@theme, 40%);
+				font-size: @font-size-base + 1;
 			}
 		}
 		.wishlist-link {
-			color: darken($light-color, 40%);
+			color: darken(@light-color, 40%);
 		}
 	}
-}
-
-
-/*V11*/
-
-#wrap {
-	.cs-product {
-		.compare-wishlist-wrapper {
-			.btn {
-				line-height: 28px;
-				.fa {
-					color: $light-color;
-				}
-				&:hover {
-					.fa {
-						color: $theme;
-					}
-				}
-			}
-		}
-		.oe_subdescription{
-			text-align: center;
-			color: lighten($dark-color, 20%);
-			text-align: center;
-			padding: 10px 0;
-		}
-	}
-
-	#kingfisher_pro_products_grid_view {
-		letter-spacing: -0.31em;
-		.list-items {
-			letter-spacing: normal;
-			float: none;
-			display: inline-block;
-			vertical-align: top;
-		}
-	}
-}
-
-.shop-by {
-	.nav {
-		-webkit-box-orient: vertical;
-		-webkit-box-direction: normal;
-		-ms-flex-direction: column;
-		flex-direction: column;
-	}
-}
-
-.list-view-box {
-	.list-items {
-		-webkit-box-flex: 0;
-		-ms-flex: 0 0 100%;
-		flex: 0 0 100%;
-    	max-width: 100%;
-	}
-}
-.toolbar-pager {
-	button {
-		cursor: pointer;
-	}
-}
-#description_reviews_tabs {
-	li{
-		a {
-			padding: 10px 15px;
-			display: inline-block;
-		}	
-	}
-}
-.oe_website_spinner {
-	input.quantity {
-		min-width: 50px; 
-	}
 }

+ 25 - 37
static/src/scss/style.scss → static/src/less/style.less

@@ -5,7 +5,7 @@ li.divider {
     display: none;
 }
 .mega-dropdown-menu {
-    background-color: $light-color !important;
+    background-color: @light-color !important;
 
     &.dropdown-menu {
         padding: 15px;
@@ -21,9 +21,7 @@ li.divider {
     }
     .footer {
         padding: 0 15px;
-        border-top: 1px solid darken($light-color, 10%);
-        display: block;
-        width: 100%;
+        border-top: 1px solid darken(@light-color, 10%);
     }
 }
 header {
@@ -88,7 +86,7 @@ header {
             }
             ;
         }
-        /*.dropdown-header {
+        .dropdown-header {
             margin: 0 0 15px 0;
             padding: 0 0 8px;
             font-size: 16px;
@@ -101,17 +99,17 @@ header {
             a {
                 padding-left: 0;
             }
-        }*/
+        }
         li a:hover {
             text-decoration: none;
         }
         .slider_header {
-            width: 100%;
+            width: 80%;
             white-space: normal;
             display: inline-block;
         }
     }
-    .carousel-control-prev, .carousel-control-next {
+    .carousel-control {
         background: none;
         height: 30px;
         width: 30px;
@@ -135,7 +133,7 @@ header {
         &:hover {
             opacity: 1;
         }
-        &.carousel-control-next {
+        &.right {
             left: auto;
             right: 27px;
         }
@@ -144,7 +142,6 @@ header {
         text-align: center;
         font-size: 20px;
         text-transform: capitalize;
-        width: 100%;
     }
 }
 .carousel-inner {
@@ -173,18 +170,18 @@ header {
 }
 
 /*theme_customize_modal*/
-body .o_theme_customize_modal {
+body #theme_customize_modal {
 
     .modal-dialog {
-        width: 300px !important;
-        /*box-shadow: 0px 0px 0px 1px rgba(144, 141, 141, 0.38);*/
+        width: 300px;
+        box-shadow: 0px 0px 0px 1px rgba(144, 141, 141, 0.38);
 
         .modal-content {
 
             /*box-shadow: none;*/
             border-radius: 0;
             background: #212d41;
-            border: 1px solid $dark-color;
+            border: 1px solid @dark-color;
 
             .modal-header {
                 width: 100%;
@@ -197,24 +194,16 @@ body .o_theme_customize_modal {
                 .close {
                     color: #fff;
                     text-shadow: none;
-                    padding: 0;
-                    margin: 0;
                 }
                 .modal-title {
                     color: #fff;
-                    font-family: $font-family;
+                    font-family: @font-family;
                     padding: 0;
                     font-size: 14px;
                     text-transform: uppercase;
                     font-weight: 600;
-                    margin-top: 0;
-                    display: inline-block;
                 }
             }
-
-            .modal-body{
-               background-color: transparent; 
-            }
             .modal-h5 {
                 width: 100%;
                 display: inline-block;
@@ -222,11 +211,10 @@ body .o_theme_customize_modal {
                 text-align: center;
                 background: none;
                 color: #fff;
-                font-family: $font-family;
+                font-family: @font-family;
                 position: relative;
                 padding: 0 0px 10px;
-                margin: 0 0 20px 0;
-                font-size: 15px;
+                margin: 20px 0;
 
                 &:after {
                     width: 50px;
@@ -241,8 +229,7 @@ body .o_theme_customize_modal {
                 }
             }
             label {
-                font-family: $font-family;
-                width: 100%;
+                font-family: @font-family;
             }
             table[name="layout"] {
                 .center-block {
@@ -293,7 +280,7 @@ body .o_theme_customize_modal {
             table[name="font"] {
                 label {
                     span {
-                        color: $light-color;
+                        color: @light-color;
                         display: block;
                         cursor: pointer;
                         padding: 5px;
@@ -316,7 +303,6 @@ body .o_theme_customize_modal {
                 }
             }
             table[name="bg_patterns"]{
-                margin-bottom: 10px;
                 td{
                     padding: 5px;
                 }
@@ -347,22 +333,22 @@ body .o_theme_customize_modal {
                         vertical-align: top;
                     }
                     .pf-color1{
-                        background: $box-body-bg1;
+                        background: @box-body-bg1;
                     }
                     .pf-color2{
-                        background: $box-body-bg2;
+                        background: @box-body-bg2;
                     }
                     .pf-color3{
-                        background: $box-body-bg3;
+                        background: @box-body-bg3;
                     }
                     .pf-color4{
-                        background: $box-body-bg4;
+                        background: @box-body-bg4;
                     }
                     .pf-color5{
-                        background: $box-body-bg5;
+                        background: @box-body-bg5;
                     }
                     .pf-color6{
-                        background: $box-body-bg6;
+                        background: @box-body-bg6;
                     }
                 }
             }
@@ -372,4 +358,6 @@ body .o_theme_customize_modal {
 
 
 
-/**/
+/**/
+
+

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 182 - 209
static/src/less/web.less


+ 7 - 0
static/src/less/website.less

@@ -0,0 +1,7 @@
+@import "mixins.less";
+@import "variable.less";
+@import "box-layout.less";
+@import "header.less";
+@import "footer.less";
+@import "product.less";
+@import "custom.less";

+ 0 - 22
static/src/scss/custom_theme.scss

@@ -1,22 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Open+Sans:700,400);
-
-
-/*Font*/
-$font-family:      'Open Sans', sans-serif;
-$font-size-base:	14px;
-$font-size-body:	14px;
-$title:				18px;
-
-/*Color*/
-$header-bg:			#fff;
-$theme:				#c38647;
-$light-color:		#ffffff;
-$dark-color:		#393939;;
-$body-color:		#393939;
-$footer-bg:			#161b1e;
-$footer-text:		#b3b3b3;
-$new-label-color:   #39b54a;
-$sale-label-color:  #f7941d;
-$text-muted		:	#9E9E9E;
-/*img*/
- $img-path:			'../img/';

+ 0 - 27
static/src/scss/mixins.scss

@@ -1,27 +0,0 @@
-/*BG micin*/
-@mixin bg-img($img-name){
-  background-image: url('${img-path}${img-name}');
-}
-@mixin bg-size($cover){
-  background-size: $cover;
-  -moz-background-size: $cover;
-  -webkit-background-size: $cover;
-  -o-background-size: $cover;
-}
-
-
-/* Transition */
-@mixin transition($all, $s, $ease){
-      transition: $all $s $ease;
--webkit-transition: $all $s $ease;
-   -moz-transition: $all $s $ease;
-     -o-transition: $all $s $ease;
-}
-
-/*Responsive*/
-/*@mixin media($maxwidth; $rules){
-    @media only screen and (max-width: $maxwidth) {
-        $rules();
-    }
-}*/
-

+ 0 - 1
static/src/scss/options/bg_patterns/bg-pattern-1.scss

@@ -1 +0,0 @@
-body {background: $box-body-bg1;}

+ 0 - 1
static/src/scss/options/bg_patterns/bg-pattern-2.scss

@@ -1 +0,0 @@
-body {background: $box-body-bg2;}

+ 0 - 1
static/src/scss/options/bg_patterns/bg-pattern-3.scss

@@ -1 +0,0 @@
-body {background: $box-body-bg3;}

+ 0 - 1
static/src/scss/options/bg_patterns/bg-pattern-4.scss

@@ -1 +0,0 @@
-body {background: $box-body-bg4;}

+ 0 - 1
static/src/scss/options/bg_patterns/bg-pattern-5.scss

@@ -1 +0,0 @@
-body {background: $box-body-bg5;}

+ 0 - 1
static/src/scss/options/bg_patterns/bg-pattern-6.scss

@@ -1 +0,0 @@
-body {background: $box-body-bg6;}

+ 0 - 22
static/src/scss/options/colors/colors.scss

@@ -1,22 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Open+Sans:700,400);
-
-
-/*Font*/
-$font-family:      'Open Sans', sans-serif;
-$font-size-base:	14px;
-$font-size-body:	14px;
-$title:				18px;
-
-/*Color*/
-$header-bg:			#fff;
-$theme:				#c38647;
-$light-color:		#ffffff;
-$dark-color:		#393939;
-$body-color:		#393939;
-$footer-bg:			#161b1e;
-$footer-text:		#b3b3b3;
-$new-label-color:   #39b54a;
-$sale-label-color:  #f7941d;
-$text-muted		:	#9E9E9E;
-/*img*/
- $img-path:			'../img/';

+ 0 - 22
static/src/scss/options/colors/theme_aqua.scss

@@ -1,22 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Open+Sans:700,400);
-
-
-/*Font*/
-$font-family:      'Open Sans', sans-serif;
-$font-size-base:	14px;
-$font-size-body:	14px;
-$title:				18px;
-
-/*Color*/
-$header-bg:			#fff;
-$theme:				#80af9b;
-$light-color:		#ffffff;
-$dark-color:		#393939;
-$body-color:		#393939;
-$footer-bg:			#161b1e;
-$footer-text:		#b3b3b3;
-$new-label-color:   #39b54a;
-$sale-label-color:  #f7941d;
-$text-muted		:	#9E9E9E;
-/*img*/
- $img-path:			'../img/';

+ 0 - 22
static/src/scss/options/colors/theme_blue.scss

@@ -1,22 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Open+Sans:700,400);
-
-
-/*Font*/
-$font-family:      'Open Sans', sans-serif;
-$font-size-base:	14px;
-$font-size-body:	14px;
-$title:				18px;
-
-/*Color*/
-$header-bg:			#fff;
-$theme:				#62d2ea;
-$light-color:		#ffffff;
-$dark-color:		#393939;
-$body-color:		#393939;
-$footer-bg:			#161b1e;
-$footer-text:		#b3b3b3;
-$new-label-color:   #39b54a;
-$sale-label-color:  #f7941d;
-$text-muted		:	#9E9E9E;
-/*img*/
- $img-path:			'../img/';

+ 0 - 22
static/src/scss/options/colors/theme_brown.scss

@@ -1,22 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Open+Sans:700,400);
-
-
-/*Font*/
-$font-family:      'Open Sans', sans-serif;
-$font-size-base:	14px;
-$font-size-body:	14px;
-$title:				18px;
-
-/*Color*/
-$header-bg:			#fff;
-$theme:				#73503c;
-$light-color:		#ffffff;
-$dark-color:		#393939;
-$body-color:		#393939;
-$footer-bg:			#161b1e;
-$footer-text:		#b3b3b3;
-$new-label-color:   #39b54a;
-$sale-label-color:  #f7941d;
-$text-muted		:	#9E9E9E;
-/*img*/
- $img-path:			'../img/';

+ 0 - 22
static/src/scss/options/colors/theme_orange.scss

@@ -1,22 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Open+Sans:700,400);
-
-
-/*Font*/
-$font-family:      'Open Sans', sans-serif;
-$font-size-base:	14px;
-$font-size-body:	14px;
-$title:				18px;
-
-/*Color*/
-$header-bg:			#fff;
-$theme:				#ff6801;
-$light-color:		#ffffff;
-$dark-color:		#393939;
-$body-color:		#393939;
-$footer-bg:			#161b1e;
-$footer-text:		#b3b3b3;
-$new-label-color:   #39b54a;
-$sale-label-color:  #f7941d;
-$text-muted		:	#9E9E9E;
-/*img*/
- $img-path:			'../img/';

+ 0 - 22
static/src/scss/options/colors/theme_pink.scss

@@ -1,22 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Open+Sans:700,400);
-
-
-/*Font*/
-$font-family:      'Open Sans', sans-serif;
-$font-size-base:	14px;
-$font-size-body:	14px;
-$title:				18px;
-
-/*Color*/
-$header-bg:			#fff;
-$theme:				#ff6801;
-$light-color:		#ffffff;
-$dark-color:		#393939;
-$body-color:		#393939;
-$footer-bg:			#161b1e;
-$footer-text:		#b3b3b3;
-$new-label-color:   #39b54a;
-$sale-label-color:  #f7941d;
-$text-muted		:	#9E9E9E;
-/*img*/
- $img-path:			'../img/';

+ 0 - 4
static/src/scss/options/fonts/font-style-varela-round-font.scss

@@ -1,4 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Varela+Round);
-
-$font-family: 'Varela Round', sans-serif;
-body { font-family: $font-family;}

+ 0 - 290
static/src/scss/theme_common.scss

@@ -1,290 +0,0 @@
-h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small, h1 .small, h2 .small, h3 .small, h4 .small, h5 .small, h6 .small, .h1 .small, .h2 .small, .h3 .small, .h4 .small, .h5 .small, .h6 .small {
-	    font-weight: normal;
-    	line-height: 1;
-	    color: #777777;
-}
-h1, .h1, h2, .h2, h3, .h3 {
-	margin-top: 20px;
-}
-h4, .h4, h5, .h5, h6, .h6{
-	margin-top: 10px;
-    margin-bottom: 10px;
-}
-.btn {
-	border-radius: 2px;
-}
-.coupon_form{
-	.form-control {
-		padding: 1.175rem 0.75rem;
-	}
-}
-.col-md-offset-6 {
-	@media (min-width:992px){
-    	margin-left: 50%;
-	}
-}
-.list-inline > li {
-    display: inline-block;
-    padding-left: 5px;
-    padding-right: 5px;
-}
-.s_theme_crafito_product_slider{
-	.carousel-item { 
-		display: unset;
-	}
-}
-a:hover{
-	text-decoration: none;
-}
-.nav > li {
-	display: block;
-}
-.navbar-light{
-	.navbar-toggler-icon {
-		background-image: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSI0MDIiIHdpZHRoPSI1ODIiIHk9Ii0xIiB4PSItMSIvPgogPC9nPgogPGc+CiAgPHRpdGxlPkxheWVyIDE8L3RpdGxlPgogIDxwYXRoIGZpbGw9IiNmZmZmZmYiIGlkPSJzdmdfMSIgZD0ibTQsMTBsMjQsMGMxLjEwNCwwIDIsLTAuODk2IDIsLTJzLTAuODk2LC0yIC0yLC0ybC0yNCwwYy0xLjEwNCwwIC0yLDAuODk2IC0yLDJzMC44OTYsMiAyLDJ6bTI0LDRsLTI0LDBjLTEuMTA0LDAgLTIsMC44OTYgLTIsMnMwLjg5NiwyIDIsMmwyNCwwYzEuMTA0LDAgMiwtMC44OTYgMiwtMnMtMC44OTYsLTIgLTIsLTJ6bTAsOGwtMjQsMGMtMS4xMDQsMCAtMiwwLjg5NiAtMiwyczAuODk2LDIgMiwybDI0LDBjMS4xMDQsMCAyLC0wLjg5NiAyLC0ycy0wLjg5NiwtMiAtMiwtMnoiLz4KIDwvZz4KPC9zdmc+);
-	}
-}
-.header-top{
-	.currency-options {
-		.dropdown {
-			.btn {
-				background: none;
-				border-color: transparent;
-				border:none;
-				color: darken($light-color, 50%);
-				padding: 0;
-				line-height: 30px;
-				&:hover{
-					color:$theme;
-				}
-			}
-			.dropdown-menu {
-				padding: 0;
-				.dropdown-item {
-					padding: 0 8px;
-					line-height: 30px;
-					font-size: 12px;
-					color: darken($light-color, 50%);
-					&:hover, &:focus{
-						background-color: $theme;
-						color: $light-color;
-					}
-				}
-			}
-		}
-	}
-}
-
-
-.header-top {
-	.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus
-	{
-		box-shadow: none;
-	}
-}
-.header-top {
-	.btn-secondary:focus, .btn-secondary.focus {
-    	box-shadow: none;
-	}
-}
-.card-body { padding: 15px; }
-.card-header {
-	padding-top: 0;
-	padding-bottom: 0;
-}
-
-.crafito_blog_slider{
-	.carousel-item {
-		display: block;
-	}
-}
-.our-team {
-	.owl-item {
-		.carousel-item {
-			display: block;
-		}
-	}
-	.owl-nav {
-		display: none;
-	}
-}
-.caret {
-    display: inline-block;
-    width: 0;
-    height: 0;
-    margin-left: 2px;
-    vertical-align: middle;
-    border-top: 4px dashed;
-    border-top: 4px solid \9;
-    border-right: 4px solid transparent;
-    border-left: 4px solid transparent;
-}
-
-
-
-#skill_model, #fact_model{
-	.modal-content {
-		.modal-body{
-			.form-group.mb0{
-				display: -webkit-box;
-				display: -ms-flexbox;
-				display: flex;
-				-ms-flex-wrap: wrap;
-				flex-wrap: wrap;
-				margin-top: 30px;
-
-				.col-sm-6, .col-sm-4 {
-					margin-bottom: 5px;
-					label {
-						margin-bottom: 0;
-					}
-				}
-			}
-		}
-	}
-}
-#s_media_block_modal, #s_media_block_modal_prod, #s_media_block_modal_feature {
-	.modal-body{
-		.form-horizontal {
-			display: block;
-			width: 100%;
-			.col-sm-12.form-group {
-				display: -webkit-box;
-				display: -ms-flexbox;
-				display: flex;
-				-ms-flex-wrap: wrap;
-				flex-wrap: wrap;
-				-webkit-box-align: center;
-				-ms-flex-align: center;
-				align-items: center;
-				.col-sm-3.control-label{
-					text-align: right;
-					margin-bottom: 0;
-				}
-			}
-		}
-	}
-}
-#userlist {
-	.modal-header{
-		.modal-title {
-			margin-top: 0;
-		}
-	}
-	.modal-body{
-		.form-group.mb0{
-			width: 100%;
-			display: -webkit-box;
-			display: -ms-flexbox;
-			display: flex;
-			-ms-flex-wrap: wrap;
-			flex-wrap: wrap;
-
-			.col-sm-9 {
-				margin-bottom: 5px;
-			}
-		}
-	}
-}
-
-.oe_login_buttons {
-	.small, a {
-		font-size: 14px;
-	}
-}
-.input-group-addon {
-	padding: 6px 12px;
-}
-
-.page-item.active{
-	.page-link {
-		background-color: $theme;
-    	border-color: $theme;
-    }
-}
-
-.website_blog {
-	ul.nav {
-		.nav-item{
-			margin-top: 2px;
-			.badge {
-				background-color: #777777;
-				padding: 4px 7px;
-				color: $light-color;
-			}
-		}
-	}
-	.blog_tags {
-		ul{
-			.nav-item + .nav-item {
-				margin-left: 5px;
-			}
-		}
-	}
-}
-
-.progress-wizard .progress-wizard-step.active .progress-wizard-dot, .progress-wizard .progress-wizard-step.complete .progress-wizard-dot:after {
-	background: $theme;
-}
-.progress-wizard .progress-wizard-step.complete .progress-wizard-steplabel, .btn-link {
-	color: $theme;
-}
-.progress-wizard .progress-wizard-step.complete .progress-wizard-dot:after, .progress-wizard .progress-wizard-step.complete:hover:not(.disabled) .progress-wizard-dot:after {
-	color: $light-color;
-}
-.oe_website_sale {
-	margin-bottom: 30px;
-}
-.border_primary {
-	border:1px solid;
-	border-color: $theme;
-}
-
-.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-danger.dropdown-toggle:focus {
-	box-shadow: lighten($theme, 0.5);
-}
-.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, .show > .btn-secondary.dropdown-toggle { 
-	background-color: $theme;
-    border-color: $theme;
-}
-
-.dropdown-item{
-	&.active{
-		background-color: $theme;
-	}
-	&:active {
-		background-color: $theme;
-	}
-}
-.badge-secondary {
-	background-color: $theme;
-}
-
-/*theme customizer scss*/
-.o_theme_customize_modal {
-	label {
-		input {
-			display: none;
-		}
-	}
-	label{
-		>div, > img{
-			border: 1px solid #fff;
-		    line-height: 30px;
-		    font-size: 0.9em;
-		    margin: 2px 4px;
-		}
-	}
-}
-
-.o_portal_wrap .list-group .list-group-item .flex_grow_rmv {
-	-webkit-box-flex: 0.2 !important;
-    -ms-flex-positive: 0.2 !important;
-    flex-grow: 0.2 !important;
-}
-.o_portal_wrap .o_portal_navbar, .o_portal .breadcrumb { padding-left: 10px; padding-right: 10px; }
-.o_portal .record_pager { padding-right: 10px; }
-
-.o_theme_customize_modal .modal-content .modal-footer {
-    display: none;
-}

+ 0 - 7
static/src/scss/website.scss

@@ -1,7 +0,0 @@
-@import "mixins.scss";
-@import "variable.scss";
-@import "box-layout.scss";
-@import "header.scss";
-@import "footer.scss";
-@import "product.scss";
-@import "custom.scss";

+ 13 - 18
views/assets.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<odoo>
+<openerp>
+<data>
    <!-- Assets Frontend -->
   
     <template id="asset_frontend" inherit_id="website.assets_frontend" name="Kingfisher pro assets frontend">
@@ -18,20 +19,15 @@
 
             <!-- Custom -->
             <!-- Theme -->
+            <link href="/kingfisher_pro/static/src/less/options/colors/colors.less" rel="stylesheet" type="text/less"/>
+            <link href="/kingfisher_pro/static/src/less/mixins.less" rel="stylesheet" type="text/less"/>
+            <link href="/kingfisher_pro/static/src/less/box-layout.less" rel="stylesheet" type="text/less"/>
+            <link href="/kingfisher_pro/static/src/less/header.less" rel="stylesheet" type="text/less"/>
+            <link href="/kingfisher_pro/static/src/less/footer.less" rel="stylesheet" type="text/less"/>
+            <link href="/kingfisher_pro/static/src/less/product.less" rel="stylesheet" type="text/less"/>
+            <link href="/kingfisher_pro/static/src/less/style.less" rel="stylesheet" type="text/less"/>
+            <link href="/kingfisher_pro/static/src/less/web.less" rel="stylesheet" type="text/less"/> 
 
-            <link href="/kingfisher_pro/static/src/scss/options/colors/colors.scss" rel="stylesheet" type="text/scss"/>
-
-            
-            <link href="/kingfisher_pro/static/src/scss/mixins.scss" rel="stylesheet" type="text/scss"/>
-            <link href="/kingfisher_pro/static/src/scss/web.scss" rel="stylesheet" type="text/scss"/> 
-             
-            <link href="/kingfisher_pro/static/src/scss/header.scss" rel="stylesheet" type="text/scss"/>
-            <link href="/kingfisher_pro/static/src/scss/footer.scss" rel="stylesheet" type="text/scss"/>
-            <link href="/kingfisher_pro/static/src/scss/product.scss" rel="stylesheet" type="text/scss"/>
-            <link href="/kingfisher_pro/static/src/scss/style.scss" rel="stylesheet" type="text/scss"/>
-           <link href="/kingfisher_pro/static/src/scss/theme_common.scss" rel="stylesheet" type="text/scss"/>
-           
-            <link href="/kingfisher_pro/static/src/scss/box-layout.scss" rel="stylesheet" type="text/scss"/>
             <script type="text/javascript" src="/kingfisher_pro/static/src/js/owl.carousel.min.js"></script>
             <script type="text/javascript" src="/kingfisher_pro/static/src/js/carousel-swipe.js"></script>
 
@@ -40,16 +36,15 @@
 
             <script src="/kingfisher_pro/static/src/js/custom.js" type="text/javascript"/>
 
-            <script src="/kingfisher_pro/static/src/js/rating_state.js" type="text/javascript"/>
-
         </xpath>
     </template>
 
     <!-- Assets Editor -->
-    <template id="assets_editor" inherit_id="web_editor.assets_editor" name="Kingfisher pro assets editor">
+    <template id="assets_editor" inherit_id="website.assets_editor" name="Kingfisher pro assets editor">
         <xpath expr="." position="inside">
             <script src="/kingfisher_pro/static/src/js/kingfisher_pro_editor.js" type="text/javascript"/>
         </xpath>
     </template>
     
- </odoo>
+ </data>
+ </openerp>

+ 61 - 93
views/product_view.xml

@@ -1,65 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<odoo>
-        <record id="kingfisher_pro_form_view_for_biz_product_images" model="ir.ui.view">
-            <field name="name">biztech.product.images</field>
-            <field name="model">biztech.product.images</field>
-            <field name="arch" type="xml">
-                <form string="Multiple Image">
-                    <group>
-                        <field name="name"/>
-                        <field name="alt"/>
-                        <field name="attach_type" widget='radio'/>
-                        <field name="image" 
-                               widget="image" class="oe_avatar"
-                               height='90' width="90" options='{"preview_image":"image"}'
-                               attrs="{'invisible': [('attach_type', '=', 'video')]}"/>
-                        <field name="video_type" attrs="{'invisible': [('attach_type', '=', 'image')]}"/>
-                    </group>
-                    <group col="4">
-                        <field name="cover_image" 
-                               widget="image" class="oe_avatar"
-                               height="90" width="90" options='{"preview_image":"cover_image"}'
-                               attrs="{'invisible': ['|', ('attach_type', '=', 'image'), ('video_type', '=', 'youtube')]}"/>
-                        <!-- <label string="It is required"
-                            attrs="{'invisible': ['|', ('attach_type', '=', 'image'), ('video_type', '=', 'youtube')]}"/> -->
-                    </group>
-                    <group>
-                        <field name="video_id"
-                            attrs="{'invisible': ['|', ('attach_type', '=', 'image'), ('video_type', '=', 'html5video')]}"/>
-
-                        <field name="video_ogv"
-                            attrs="{'invisible': ['|', ('attach_type', '=', 'image'), ('video_type', 'in', ('youtube', 'vimeo'))]}"/>
-                        <field name="video_webm"
-                            attrs="{'invisible': ['|', ('attach_type', '=', 'image'), ('video_type', 'in', ('youtube', 'vimeo'))]}"/>
-                        <field name="video_mp4"
-                            attrs="{'invisible': ['|', ('attach_type', '=', 'image'), ('video_type', 'in', ('youtube', 'vimeo'))]}"/>
-
-                        <field name="sequence"/>
-                        <field name="more_view_exclude"/>
-                    </group>
-                </form>
-            </field>
-        </record>
-           
-        <record id="kingfisher_pro_list_view_for_biz_product_images" model="ir.ui.view">
-            <field name="name">biztech.product.images</field>
-            <field name="model">biztech.product.images</field>
-            <field name="arch" type="xml">
-                <tree name="Multiple Image">
-                    <field name="name"/>
-                    <field name="alt"/>
-                    <field name="attach_type"/>
-                    <field name="image" widget='image' height='64px' width="64"
-                        attrs="{'invisible': [('attach_type', '=', 'video')]}" options='{"preview_image":"image"}'/>
-                    <field name="video_type" attrs="{'invisible': [('attach_type', '=', 'image')]}"/>
-                    <field name="video_id" attrs="{'invisible': [('attach_type', '=', 'image')]}"/>
-                    <field name="sequence"/>
-                    <field name="more_view_exclude"/>
-                </tree>
-            </field>
-        </record>
-
-
+<openerp>
+    <data>
         <!-- Product Form View Inherited -->
         <record id="view_product_template_form_multiple_image" model="ir.ui.view">
             <field name="name">product.template.form.view.inherited</field>
@@ -78,13 +19,57 @@
                 </xpath>
                 <xpath expr="//notebook" position="inside">
                     <page attrs="{'invisible':[('multi_image','!=',True)]}" name="product multi image" string="Product Multiple Images">
-                        <field name="images" nolabel="1" context="{'default_product_id': id, 'tree_view_ref':'kingfisher_pro.kingfisher_pro_list_view_for_biz_product_images', 'form_view_ref':'kingfisher_pro_structure.kingfisher_pro_form_view_for_biz_product_images'}"/>
+                        <field name="images">
+                            <form string="Multiple Image">
+                                <group>
+                                    <field name="name"/>
+                                    <field name="alt"/>
+                                    <field name="attach_type" widget='radio'/>
+                                    <field name="image" widget="image"
+                                           height='64'
+                                           attrs="{'invisible': [('attach_type', '=', 'video')]}"/>
+                                    <field name="video_type" attrs="{'invisible': [('attach_type', '=', 'image')]}"/>
+                                </group>
+                                <group col="4">
+                                    <field name="cover_image" widget="image"
+                                        height="64"
+                                        attrs="{'invisible': ['|', ('attach_type', '=', 'image'), ('video_type', '=', 'youtube')]}"/>
+                                    <label string="It is required"
+                                        attrs="{'invisible': ['|', ('attach_type', '=', 'image'), ('video_type', '=', 'youtube')]}"/>
+                                </group>
+                                <group>
+                                    <field name="video_id"
+                                        attrs="{'invisible': ['|', ('attach_type', '=', 'image'), ('video_type', '=', 'html5video')]}"/>
+
+                                    <field name="video_ogv"
+                                        attrs="{'invisible': ['|', ('attach_type', '=', 'image'), ('video_type', 'in', ('youtube', 'vimeo'))]}"/>
+                                    <field name="video_webm"
+                                        attrs="{'invisible': ['|', ('attach_type', '=', 'image'), ('video_type', 'in', ('youtube', 'vimeo'))]}"/>
+                                    <field name="video_mp4"
+                                        attrs="{'invisible': ['|', ('attach_type', '=', 'image'), ('video_type', 'in', ('youtube', 'vimeo'))]}"/>
+
+                                    <field name="sequence"/>
+                                    <field name="more_view_exclude"/>
+                                </group>
+                            </form>
+                            <tree>
+                                <field name="name"/>
+                                <field name="alt"/>
+                                <field name="attach_type"/>
+                                <field name="image"
+                                       
+                                       height="64"
+                                       attrs="{'invisible': [('attach_type', '=', 'video')]}"/>
+                                <field name="video_type" attrs="{'invisible': [('attach_type', '=', 'image')]}"/>
+                                <field name="video_id" attrs="{'invisible': [('attach_type', '=', 'image')]}"/>
+                                <field name="sequence"/>
+                                <field name="more_view_exclude"/>
+                            </tree>
+                        </field>
                     </page>
                     <page attrs="{'invisible':[('is_flip_image','!=',True)]}" name="flip_image_page" string="Product Flip Image">
                         <h4>Add flip image which will be visible on product hover in website</h4>
-                        <field name="flip_image" widget='image'
-                               height='90' width="90"
-                               options='{"preview_image":"flip_image"}'/>
+                        <field name="flip_image" widget='image' height="74px"/>
                     </page>
                 </xpath>
                 <field name="website_style_ids" position="after">
@@ -144,7 +129,7 @@
         <!-- Menu for Product Tags -->
         <menuitem name="Product Tags"
                   id="biztech_product_tags"
-                  parent="sale.menu_sale_config"
+                  parent="sales_team.menu_sale_config"
                   sequence="70"
                   action="action_for_biztech_product_tags"/>
 
@@ -195,7 +180,7 @@
         <!-- Menu for product sorting -->
         <menuitem name="Product Sorting"
                   id="sub_menu_sort_by"
-                  parent="sale.menu_sale_config"
+                  parent="sales_team.menu_sale_config"
                   sequence="80"
                   action="action_for_product_sorting"/>
 
@@ -208,10 +193,10 @@
                 <xpath expr="//field[@name='sequence']" position="after">
                     <field name="include_in_megamenu"/>
                 </xpath>
-                <xpath expr="//div[hasclass('oe_left')]" position="attributes">
+                <xpath expr="//div[@class='oe_left']" position="attributes">
                     <attribute name="style">width:500px;</attribute>
                 </xpath>
-                <xpath expr="//div[hasclass('oe_left')]/group" position="after">
+                <xpath expr="//div[@class='oe_left']/group" position="after">
                     <group attrs="{'invisible': [('include_in_megamenu', '=', False)]}">
                         <field name="menu_id" 
                             domain= "[('is_megamenu', '=', True)]"
@@ -280,7 +265,7 @@
         </record>
 
         <!-- For website config settings -->
-        <!-- <record id="view_website_config_settings_f_l_pager" model="ir.ui.view">
+        <record id="view_website_config_settings_f_l_pager" model="ir.ui.view">
             <field name="name">Website config Template First Last Pager</field>
             <field name="model">website.config.settings</field>
             <field name="inherit_id" ref="website.view_website_config_settings"/>
@@ -291,19 +276,9 @@
                     </group>
                 </group>
             </field>
-        </record> -->
-
-
-
-        <!-- Menu for Product Pagination -->
-        <menuitem name="Website Product Paging"
-                  id="view_res_config_ppp"
-                  parent="sale.menu_sale_config"
-                  sequence="70"
-                  action="action_product_per_page"/>
-
+        </record>
 
-      <!--   <record id="view_res_config_ppp" model="ir.ui.view">
+        <record id="view_res_config_ppp" model="ir.ui.view">
             <field name="name">sale.config.settings</field>
             <field name="model">sale.config.settings</field>
             <field name="inherit_id" ref="sale.view_sales_config"/>
@@ -316,7 +291,7 @@
                     </group>
                 </xpath>
             </field>
-        </record> -->
+        </record>
 
         <!-- Product style tag Form View-->
         <record id="form_view_for_biztech_product_style_tag" model="ir.ui.view">
@@ -362,16 +337,9 @@
         <!-- Menu for Product Tags -->
         <menuitem name="Product Style Tag"
                   id="biztech_product_style_tag"
-                  parent="sale.menu_sale_config"
+                  parent="sales_team.menu_sale_config"
                   sequence="80"
                   action="action_for_biztech_product_style_tag"/>
 
-        <!-- New rating feature for displying only stars in any view for odoo 11 -->
-        <template id="inherited_message_thread" inherit_id="portal.message_thread">
-            <xpath expr="//div[@id='discussion']" position="attributes">
-                <attribute name="t-att-data-rating_val">rating_val or 6</attribute>
-                <attribute name="t-att-data-only_rating">only_rating or 0</attribute>
-            </xpath>
-        </template>
-
-</odoo>
+    </data>
+</openerp>

+ 24 - 16
views/slider_view.xml

@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
-<odoo>
+<openerp>
+<data>
 
-    <menuitem id="menu_slider_config" parent="sale.sale_menu_root" name="Slider Configuration" sequence="101"/>
+    <menuitem id="menu_slider_config" parent="sales_team.menu_base_partner" name="Slider Configuration" sequence="101"/>
 
 <!-- Product Category Slider -->
     <!-- Product Category Slider Form View-->
@@ -130,7 +131,7 @@
                                nolabel='1' widget="image"/>
                     </group>
                     <group string="Description">
-                        <field name="brand_description" nolabel="1" widget="html"/>
+                        <field name="brand_description" nolabel="1"/>
                     </group>
                 </sheet>
             </form>
@@ -154,31 +155,37 @@
         <field name="name">product.brands.kanban</field>
         <field name="model">product.brands</field>
         <field name="arch" type="xml">
-            <kanban class="o_kanban_mobile">
+            <kanban>
                 <field name="brand_logo"/>
                 <field name="products_count"/>
-                <field name="name"/>
                 <field name="brand_description"/>
                 <templates>
                     <t t-name="kanban-box">
-                        <div class="oe_kanban_global_click">
-                            <div class="o_kanban_image">
-                                <img t-att-src="kanban_image('product.brand', 'brand_logo')"  t-att-alt="brand_description"/>
-                            </div>
+                        <div class="oe_kanban_vignette oe_semantic_html_override">
+                            <a type="open">
+                                <img t-att-src="kanban_image('product.product', 'brand_logo', record.id.value)"
+                                     height="74"
+                                     width="74"
+                                     class="o_kanban_image"/>
+                            </a>
                             <div class="oe_kanban_details">
-                                <strong class="o_kanban_record_title"><field name="name"/></strong>
+                                <h4>
+                                    <a type="open">
+                                        <field name="name"/>
+                                    </a>
+                                </h4>
                                 <div>
                                     <a name="%(kingfisher_pro.action_open_brand_products)d"
                                        type="action">
                                         <t t-esc="record.products_count.value"/> Products
                                     </a>
                                 </div>
-                                <div>
-                                    <t t-raw="record.brand_description.value.slice(0,200)"/>
+                                <span>
+                                    <t t-raw="record.brand_description.value.substr(0,200)"/>
                                     <t t-if="record.brand_description.value.length > 200">
                                         <a type="open"><b>...</b></a>
                                     </t>
-                                </div>
+                                </span>
                             </div>
                         </div>
                     </t>
@@ -237,7 +244,7 @@
         <field name="model">product.template</field>
         <field name="inherit_id" ref="product.product_template_kanban_view" />
         <field name="arch" type="xml">
-            <xpath expr="//div[hasclass('oe_kanban_details')]/strong" position="after">
+            <xpath expr="//div[@class='oe_kanban_details']/strong" position="after">
                 <div>
                     <a t-if="record.product_brand_id" type="action"
                        name="%(action_open_single_product_brand)d">
@@ -255,7 +262,7 @@
         <field name="model">product.product</field>
         <field name="inherit_id" ref="product.product_kanban_view" />
         <field name="arch" type="xml">
-            <xpath expr="//div[hasclass('oe_kanban_details')]/strong" position="after">
+            <xpath expr="//div[@class='oe_kanban_details']/strong" position="after">
                 <div>
                     <a t-if="record.product_brand_id" type="open">
                         <field name="product_brand_id"/>
@@ -463,4 +470,5 @@
               parent="kingfisher_pro.menu_slider_config"
               sequence="70"/>
 
-</odoo>
+</data>
+</openerp>

+ 123 - 171
views/snippets.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<odoo>
+<openerp>
+<data>
 
     <!-- Home Slider snippet -->
     <template id="s_kingfisher_pro_home_slider" name="Home Slider">
@@ -11,7 +12,7 @@
             </ol>
             <!-- Wrapper for slides -->
             <div class="carousel-inner">
-                <div class="carousel-item item1 active">
+                <div class="item item1 active">
                     <div class="container">
                         <div class="row content">
                             <blockquote class="col-md-6 col-sm-6 col-xs-6">
@@ -28,10 +29,10 @@
                         </div>
                     </div>
                 </div>
-                <div class="carousel-item item2">
+                <div class="item item2">
                     <div class="container">
-                        <div class="flex-row-reverse row content">
-                            <blockquote class=" col-md-5 col-sm-6 col-xs-6">
+                        <div class="row content">
+                            <blockquote class="pull-right col-md-5 col-sm-6 col-xs-6">
                                 <p>Western Wear</p>
                                 <h2>Women Tops</h2>
                                 <h5>Save <span>20%</span></h5>
@@ -47,14 +48,14 @@
                 </div>
             </div>
             <!-- Controls -->
-            <a class="carousel-control-prev" data-target="#myCarousel" data-slide="prev" role="button">
-                <span class="previous-icon">
+            <a class="left carousel-control" data-target="#myCarousel" data-slide="prev" role="button">
+                <span aria-hidden="true" class="previous-icon">
                     <img src="/kingfisher_pro/static/src/img/prev-slide.png"/>
                 </span>
                 <span class="sr-only">Previous</span>
             </a>
-            <a class="carousel-control-next" data-slide="next" data-target="#myCarousel" role="button">
-                <span class="next-icon">
+            <a class="right carousel-control" data-slide="next" data-target="#myCarousel" role="button">
+                <span aria-hidden="true" class="next-icon">
                     <img src="/kingfisher_pro/static/src/img/next-slide.png"/>
                 </span>
                 <span class="sr-only">Next</span>
@@ -160,7 +161,7 @@
                 <div class="row">
                     <div class="col-sm-4">
                         <a href="#">
-                             <i class="fa fa-shopping-cart"  alt="Free Shipping"></i>
+                             <i class="fa fa-shopping-cart" aria-hidden="true" alt="Free Shipping"></i>
                         </a>
                         <h4 class="">
                             <b>FREE SHIPPING WORLDWIDE</b>
@@ -169,7 +170,7 @@
                     </div>
                     <div class="col-sm-4">
                         <a href="#">
-                            <i class="fa fa-phone"  Title="Customer Service" alt="Customer Service"></i>
+                            <i class="fa fa-phone" aria-hidden="true" Title="Customer Service" alt="Customer Service"></i>
                         </a>
                         <h4 class="">
                             <b>24/7 CUSTOMER SERVICE</b>
@@ -178,7 +179,7 @@
                     </div>
                     <div class="col-sm-4">
                         <a href="#">
-                            <i class="fa fa-money"  Title="Money Back" alt="Money Back"></i>
+                            <i class="fa fa-money" aria-hidden="true" Title="Money Back" alt="Money Back"></i>
                         </a>
                         <h4 class="">
                             <b>MONEY BACK GUARANTEE !</b>
@@ -243,14 +244,11 @@
                                 </a>
                             </div>
                             <div class="pink-box">
-                                <ul class='ratings' t-if="request.env.ref('website_sale.product_comment').active">
-                                    <t t-set='rates' t-value="slide.rating_get_stats([('website_published', '=', True)])"/> 
-                                    <t t-call="portal.message_thread">
-                                        <t t-set="rating_val" t-value="rates.get('avg')" t-if="rates and rates.get('avg')"/>
-                                        <t t-set="object" t-value="slide"/>
-                                        <t t-set="only_rating" t-value="1"/>
-                                        <t t-set="display_rating" t-value="True"/>
-                                        <t t-set="disable_composer" t-value="True"/>
+                                <ul class='ratings'>
+                                    <t t-call="rating.rating_card">
+                                        <t t-set="rating_stat" t-value="slide.rating_get_stats([('website_published', '=', True)])"/>
+                                        <t t-set="max_rate" t-value="5"/>
+                                        <t t-set="min_rate" t-value="1"/>
                                     </t>
                                 </ul>
                                 <div class="view">
@@ -430,7 +428,7 @@
                             <ul id="multi_dynamic_slider_tabs" class="nav nav-tabs">
 
                                 <t t-if="slider_details.no_of_collection == '2'">
-                                    <li class="my-test">
+                                    <li class="active my-test">
                                         <a href="#multi-collection1" data-toggle="tab">
                                             <t t-esc='slider_details.label_collection_1'/>
                                         </a>
@@ -443,7 +441,7 @@
                                 </t>
 
                                 <t t-if="slider_details.no_of_collection == '3'">
-                                    <li class="">
+                                    <li class="active">
                                         <a href="#multi-collection1" data-toggle="tab">
                                             <t t-esc='slider_details.label_collection_1'/>
                                         </a>
@@ -461,7 +459,7 @@
                                 </t>
 
                                 <t t-if="slider_details.no_of_collection == '4'">
-                                    <li class="">
+                                    <li class="active">
                                         <a href="#multi-collection1" data-toggle="tab">
                                             <t t-esc='slider_details.label_collection_1'/>
                                         </a>
@@ -484,7 +482,7 @@
                                 </t>
 
                                 <t t-if="slider_details.no_of_collection == '5'">
-                                    <li class="">
+                                    <li class="active">
                                         <a href="#multi-collection1" data-toggle="tab">
                                             <t t-esc='slider_details.label_collection_1'/>
                                         </a>
@@ -528,14 +526,11 @@
                                                         </a>
                                                     </div>
                                                     <div class="pink-box">
-                                                        <ul class='ratings' t-if="request.env.ref('website_sale.product_comment').active">
-                                                            <t t-set='rates' t-value="product.rating_get_stats([('website_published', '=', True)])"/> 
-                                                            <t t-call="portal.message_thread">
-                                                                <t t-set="rating_val" t-value="rates.get('avg')" t-if="rates and rates.get('avg')"/>
-                                                                <t t-set="object" t-value="product"/>
-                                                                <t t-set="only_rating" t-value="1"/>
-                                                                <t t-set="display_rating" t-value="True"/>
-                                                                <t t-set="disable_composer" t-value="True"/>
+                                                        <ul class='ratings'>
+                                                            <t t-call="rating.rating_card">
+                                                                <t t-set="rating_stat" t-value="product.rating_get_stats([('website_published', '=', True)])"/>
+                                                                <t t-set="max_rate" t-value="5"/>
+                                                                <t t-set="min_rate" t-value="1"/>
                                                             </t>
                                                         </ul>
                                                         <div class="view">
@@ -579,14 +574,11 @@
                                                         </a>
                                                     </div>
                                                     <div class="pink-box">
-                                                        <ul class='ratings' t-if="request.env.ref('website_sale.product_comment').active">
-                                                            <t t-set='rates' t-value="product.rating_get_stats([('website_published', '=', True)])"/> 
-                                                            <t t-call="portal.message_thread">
-                                                                <t t-set="rating_val" t-value="rates.get('avg')" t-if="rates and rates.get('avg')"/>
-                                                                <t t-set="object" t-value="product"/>
-                                                                <t t-set="only_rating" t-value="1"/>
-                                                                <t t-set="display_rating" t-value="True"/>
-                                                                <t t-set="disable_composer" t-value="True"/>
+                                                        <ul class='ratings'>
+                                                            <t t-call="rating.rating_card">
+                                                                <t t-set="rating_stat" t-value="product.rating_get_stats([('website_published', '=', True)])"/>
+                                                                <t t-set="max_rate" t-value="5"/>
+                                                                <t t-set="min_rate" t-value="1"/>
                                                             </t>
                                                         </ul>
                                                         <div class="view">
@@ -632,14 +624,11 @@
                                                         </a>
                                                     </div>
                                                     <div class="pink-box">
-                                                        <ul class='ratings' t-if="request.env.ref('website_sale.product_comment').active">
-                                                            <t t-set='rates' t-value="product.rating_get_stats([('website_published', '=', True)])"/> 
-                                                            <t t-call="portal.message_thread">
-                                                                <t t-set="rating_val" t-value="rates.get('avg')" t-if="rates and rates.get('avg')"/>
-                                                                <t t-set="object" t-value="product"/>
-                                                                <t t-set="only_rating" t-value="1"/>
-                                                                <t t-set="display_rating" t-value="True"/>
-                                                                <t t-set="disable_composer" t-value="True"/>
+                                                        <ul class='ratings'>
+                                                            <t t-call="rating.rating_card">
+                                                                <t t-set="rating_stat" t-value="product.rating_get_stats([('website_published', '=', True)])"/>
+                                                                <t t-set="max_rate" t-value="5"/>
+                                                                <t t-set="min_rate" t-value="1"/>
                                                             </t>
                                                         </ul>
                                                         <div class="view">
@@ -659,8 +648,8 @@
                                                         <p class="price">
                                                             <span class="price">
                                                                 <t t-if="(compute_currency(product.lst_price) - product.website_price) &gt; 0.1  and website.get_current_pricelist().discount_policy=='without_discount'">
-                                                                    <del class="text-danger mr8" style="white-space: nowrap;" t-esc="compute_currency(product.website_public_price)" t-options="{'widget': 'monetary', 'display_currency': website.get_current_pricelist().currency_id, 'from_currency': website.currency_id}"/>
-                                                                </t>
+                                                                                            <del class="text-danger mr8" style="white-space: nowrap;" t-esc="compute_currency(product.website_public_price)" t-options="{'widget': 'monetary', 'display_currency': website.get_current_pricelist().currency_id, 'from_currency': website.currency_id}"/>
+                                                                                        </t>
                                                                 <span t-esc="product.website_price" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
                                                             </span>
                                                         </p>
@@ -684,14 +673,11 @@
                                                         </a>
                                                     </div>
                                                     <div class="pink-box">
-                                                        <ul class='ratings' t-if="request.env.ref('website_sale.product_comment').active">
-                                                            <t t-set='rates' t-value="product.rating_get_stats([('website_published', '=', True)])"/> 
-                                                            <t t-call="portal.message_thread">
-                                                                <t t-set="rating_val" t-value="rates.get('avg')" t-if="rates and rates.get('avg')"/>
-                                                                <t t-set="object" t-value="product"/>
-                                                                <t t-set="only_rating" t-value="1"/>
-                                                                <t t-set="display_rating" t-value="True"/>
-                                                                <t t-set="disable_composer" t-value="True"/>
+                                                        <ul class='ratings'>
+                                                            <t t-call="rating.rating_card">
+                                                                <t t-set="rating_stat" t-value="product.rating_get_stats([('website_published', '=', True)])"/>
+                                                                <t t-set="max_rate" t-value="5"/>
+                                                                <t t-set="min_rate" t-value="1"/>
                                                             </t>
                                                         </ul>
                                                         <div class="view">
@@ -736,14 +722,11 @@
                                                         </a>
                                                     </div>
                                                     <div class="pink-box">
-                                                        <ul class='ratings' t-if="request.env.ref('website_sale.product_comment').active">
-                                                            <t t-set='rates' t-value="product.rating_get_stats([('website_published', '=', True)])"/> 
-                                                            <t t-call="portal.message_thread">
-                                                                <t t-set="rating_val" t-value="rates.get('avg')" t-if="rates and rates.get('avg')"/>
-                                                                <t t-set="object" t-value="product"/>
-                                                                <t t-set="only_rating" t-value="1"/>
-                                                                <t t-set="display_rating" t-value="True"/>
-                                                                <t t-set="disable_composer" t-value="True"/>
+                                                        <ul class='ratings'>
+                                                            <t t-call="rating.rating_card">
+                                                                <t t-set="rating_stat" t-value="product.rating_get_stats([('website_published', '=', True)])"/>
+                                                                <t t-set="max_rate" t-value="5"/>
+                                                                <t t-set="min_rate" t-value="1"/>
                                                             </t>
                                                         </ul>
                                                         <div class="view">
@@ -791,14 +774,11 @@
                                                         </a>
                                                     </div>
                                                     <div class="pink-box">
-                                                        <ul class='ratings' t-if="request.env.ref('website_sale.product_comment').active">
-                                                            <t t-set='rates' t-value="product.rating_get_stats([('website_published', '=', True)])"/> 
-                                                            <t t-call="portal.message_thread">
-                                                                <t t-set="rating_val" t-value="rates.get('avg')" t-if="rates and rates.get('avg')"/>
-                                                                <t t-set="object" t-value="product"/>
-                                                                <t t-set="only_rating" t-value="1"/>
-                                                                <t t-set="display_rating" t-value="True"/>
-                                                                <t t-set="disable_composer" t-value="True"/>
+                                                        <ul class='ratings'>
+                                                            <t t-call="rating.rating_card">
+                                                                <t t-set="rating_stat" t-value="product.rating_get_stats([('website_published', '=', True)])"/>
+                                                                <t t-set="max_rate" t-value="5"/>
+                                                                <t t-set="min_rate" t-value="1"/>
                                                             </t>
                                                         </ul>
                                                         <div class="view">
@@ -843,14 +823,11 @@
                                                         </a>
                                                     </div>
                                                     <div class="pink-box">
-                                                        <ul class='ratings' t-if="request.env.ref('website_sale.product_comment').active">
-                                                            <t t-set='rates' t-value="product.rating_get_stats([('website_published', '=', True)])"/> 
-                                                            <t t-call="portal.message_thread">
-                                                                <t t-set="rating_val" t-value="rates.get('avg')" t-if="rates and rates.get('avg')"/>
-                                                                <t t-set="object" t-value="product"/>
-                                                                <t t-set="only_rating" t-value="1"/>
-                                                                <t t-set="display_rating" t-value="True"/>
-                                                                <t t-set="disable_composer" t-value="True"/>
+                                                        <ul class='ratings'>
+                                                            <t t-call="rating.rating_card">
+                                                                <t t-set="rating_stat" t-value="product.rating_get_stats([('website_published', '=', True)])"/>
+                                                                <t t-set="max_rate" t-value="5"/>
+                                                                <t t-set="min_rate" t-value="1"/>
                                                             </t>
                                                         </ul>
                                                         <div class="view">
@@ -895,14 +872,11 @@
                                                         </a>
                                                     </div>
                                                     <div class="pink-box">
-                                                        <ul class='ratings' t-if="request.env.ref('website_sale.product_comment').active">
-                                                            <t t-set='rates' t-value="product.rating_get_stats([('website_published', '=', True)])"/> 
-                                                            <t t-call="portal.message_thread">
-                                                                <t t-set="rating_val" t-value="rates.get('avg')" t-if="rates and rates.get('avg')"/>
-                                                                <t t-set="object" t-value="product"/>
-                                                                <t t-set="only_rating" t-value="1"/>
-                                                                <t t-set="display_rating" t-value="True"/>
-                                                                <t t-set="disable_composer" t-value="True"/>
+                                                        <ul class='ratings'>
+                                                            <t t-call="rating.rating_card">
+                                                                <t t-set="rating_stat" t-value="product.rating_get_stats([('website_published', '=', True)])"/>
+                                                                <t t-set="max_rate" t-value="5"/>
+                                                                <t t-set="min_rate" t-value="1"/>
                                                             </t>
                                                         </ul>
                                                         <div class="view">
@@ -947,14 +921,11 @@
                                                         </a>
                                                     </div>
                                                     <div class="pink-box">
-                                                        <ul class='ratings' t-if="request.env.ref('website_sale.product_comment').active">
-                                                            <t t-set='rates' t-value="product.rating_get_stats([('website_published', '=', True)])"/> 
-                                                            <t t-call="portal.message_thread">
-                                                                <t t-set="rating_val" t-value="rates.get('avg')" t-if="rates and rates.get('avg')"/>
-                                                                <t t-set="object" t-value="product"/>
-                                                                <t t-set="only_rating" t-value="1"/>
-                                                                <t t-set="display_rating" t-value="True"/>
-                                                                <t t-set="disable_composer" t-value="True"/>
+                                                        <ul class='ratings'>
+                                                            <t t-call="rating.rating_card">
+                                                                <t t-set="rating_stat" t-value="product.rating_get_stats([('website_published', '=', True)])"/>
+                                                                <t t-set="max_rate" t-value="5"/>
+                                                                <t t-set="min_rate" t-value="1"/>
                                                             </t>
                                                         </ul>
                                                         <div class="view">
@@ -1001,14 +972,11 @@
                                                         </a>
                                                     </div>
                                                     <div class="pink-box">
-                                                        <ul class='ratings' t-if="request.env.ref('website_sale.product_comment').active">
-                                                            <t t-set='rates' t-value="product.rating_get_stats([('website_published', '=', True)])"/> 
-                                                            <t t-call="portal.message_thread">
-                                                                <t t-set="rating_val" t-value="rates.get('avg')" t-if="rates and rates.get('avg')"/>
-                                                                <t t-set="object" t-value="product"/>
-                                                                <t t-set="only_rating" t-value="1"/>
-                                                                <t t-set="display_rating" t-value="True"/>
-                                                                <t t-set="disable_composer" t-value="True"/>
+                                                        <ul class='ratings'>
+                                                            <t t-call="rating.rating_card">
+                                                                <t t-set="rating_stat" t-value="product.rating_get_stats([('website_published', '=', True)])"/>
+                                                                <t t-set="max_rate" t-value="5"/>
+                                                                <t t-set="min_rate" t-value="1"/>
                                                             </t>
                                                         </ul>
                                                         <div class="view">
@@ -1053,14 +1021,11 @@
                                                         </a>
                                                     </div>
                                                     <div class="pink-box">
-                                                        <ul class='ratings' t-if="request.env.ref('website_sale.product_comment').active">
-                                                            <t t-set='rates' t-value="product.rating_get_stats([('website_published', '=', True)])"/> 
-                                                            <t t-call="portal.message_thread">
-                                                                <t t-set="rating_val" t-value="rates.get('avg')" t-if="rates and rates.get('avg')"/>
-                                                                <t t-set="object" t-value="product"/>
-                                                                <t t-set="only_rating" t-value="1"/>
-                                                                <t t-set="display_rating" t-value="True"/>
-                                                                <t t-set="disable_composer" t-value="True"/>
+                                                        <ul class='ratings'>
+                                                            <t t-call="rating.rating_card">
+                                                                <t t-set="rating_stat" t-value="product.rating_get_stats([('website_published', '=', True)])"/>
+                                                                <t t-set="max_rate" t-value="5"/>
+                                                                <t t-set="min_rate" t-value="1"/>
                                                             </t>
                                                         </ul>
                                                         <div class="view">
@@ -1105,14 +1070,11 @@
                                                         </a>
                                                     </div>
                                                     <div class="pink-box">
-                                                        <ul class='ratings' t-if="request.env.ref('website_sale.product_comment').active">
-                                                            <t t-set='rates' t-value="product.rating_get_stats([('website_published', '=', True)])"/> 
-                                                            <t t-call="portal.message_thread">
-                                                                <t t-set="rating_val" t-value="rates.get('avg')" t-if="rates and rates.get('avg')"/>
-                                                                <t t-set="object" t-value="product"/>
-                                                                <t t-set="only_rating" t-value="1"/>
-                                                                <t t-set="display_rating" t-value="True"/>
-                                                                <t t-set="disable_composer" t-value="True"/>
+                                                        <ul class='ratings'>
+                                                            <t t-call="rating.rating_card">
+                                                                <t t-set="rating_stat" t-value="product.rating_get_stats([('website_published', '=', True)])"/>
+                                                                <t t-set="max_rate" t-value="5"/>
+                                                                <t t-set="min_rate" t-value="1"/>
                                                             </t>
                                                         </ul>
                                                         <div class="view">
@@ -1157,14 +1119,11 @@
                                                         </a>
                                                     </div>
                                                     <div class="pink-box">
-                                                        <ul class='ratings' t-if="request.env.ref('website_sale.product_comment').active">
-                                                            <t t-set='rates' t-value="product.rating_get_stats([('website_published', '=', True)])"/> 
-                                                            <t t-call="portal.message_thread">
-                                                                <t t-set="rating_val" t-value="rates.get('avg')" t-if="rates and rates.get('avg')"/>
-                                                                <t t-set="object" t-value="product"/>
-                                                                <t t-set="only_rating" t-value="1"/>
-                                                                <t t-set="display_rating" t-value="True"/>
-                                                                <t t-set="disable_composer" t-value="True"/>
+                                                        <ul class='ratings'>
+                                                            <t t-call="rating.rating_card">
+                                                                <t t-set="rating_stat" t-value="product.rating_get_stats([('website_published', '=', True)])"/>
+                                                                <t t-set="max_rate" t-value="5"/>
+                                                                <t t-set="min_rate" t-value="1"/>
                                                             </t>
                                                         </ul>
                                                         <div class="view">
@@ -1209,14 +1168,11 @@
                                                         </a>
                                                     </div>
                                                     <div class="pink-box">
-                                                        <ul class='ratings' t-if="request.env.ref('website_sale.product_comment').active">
-                                                            <t t-set='rates' t-value="product.rating_get_stats([('website_published', '=', True)])"/> 
-                                                            <t t-call="portal.message_thread">
-                                                                <t t-set="rating_val" t-value="rates.get('avg')" t-if="rates and rates.get('avg')"/>
-                                                                <t t-set="object" t-value="product"/>
-                                                                <t t-set="only_rating" t-value="1"/>
-                                                                <t t-set="display_rating" t-value="True"/>
-                                                                <t t-set="disable_composer" t-value="True"/>
+                                                        <ul class='ratings'>
+                                                            <t t-call="rating.rating_card">
+                                                                <t t-set="rating_stat" t-value="product.rating_get_stats([('website_published', '=', True)])"/>
+                                                                <t t-set="max_rate" t-value="5"/>
+                                                                <t t-set="min_rate" t-value="1"/>
                                                             </t>
                                                         </ul>
                                                         <div class="view">
@@ -1339,7 +1295,7 @@
 
                         <div id="myQuoteCarousel" class="psb-inner carousel quotecarousel slide s_kingfisher_pro_testimonials_slider" data-interval="10000">
                             <div class="carousel-inner">
-                                <div class="carousel-item text_only active">
+                                <div class="item text_only active">
                                     <div class="container">
                                         <div class="row content">
                                             <blockquote>
@@ -1355,7 +1311,7 @@
                                         </div>
                                     </div>
                                 </div>
-                                <div class="carousel-item text_only">
+                                <div class="item text_only">
                                     <div class="container">
                                         <div class="row content">
                                             <blockquote>
@@ -1372,10 +1328,10 @@
                                     </div>
                                 </div>
                             </div>
-                            <a class= "carousel-control-prev" data-target= "#myQuoteCarousel" data-slide= "prev">
+                            <a class= "carousel-control left" data-target= "#myQuoteCarousel" data-slide= "prev">
                                 <i class='fa fa-angle-left'/>
                             </a>
-                            <a class= "carousel-control-next" data-target= "#myQuoteCarousel" data-slide= "next">
+                            <a class= "carousel-control right" data-target= "#myQuoteCarousel" data-slide= "next">
                                 <i class='fa fa-angle-right'/>
                             </a>
                         </div>
@@ -1386,35 +1342,31 @@
     </template>
 
     <template id="kingfisher_pro_extra_snippet" inherit_id="website.snippets" name="Kingfisher Pro Extra Snippet">
-        <xpath expr="//div[@id='o_scroll']" position="inside">
-            <div class="o_panel" id="snippet_theme_crafito">
-                <div class="o_panel_header">
-                    <span class="fa-stack">
-                        <i class="fa fa-circle-o-notch fa-stack-1x"/>
-                    </span>Kingfisher Pro
-                </div>
-                <div class="o_panel_body">
-                    <t t-snippet="kingfisher_pro.s_kingfisher_pro_home_slider"
-                       t-thumbnail="/kingfisher_pro/static/src/img/icons/home-slider-icon.png"/>
-                    <t t-snippet="kingfisher_pro.s_kingfisher_pro_promo_snippet"
-                       t-thumbnail="/kingfisher_pro/static/src/img/icons/promo-snippet.png"/>
-                    <t t-snippet="kingfisher_pro.s_kingfisher_pro_single_banner_snippet"
-                       t-thumbnail="/kingfisher_pro/static/src/img/icons/banner-without-slider.png"/>
-                    <t t-snippet="kingfisher_pro.s_kingfisher_pro_service_snippet"
-                       t-thumbnail="/kingfisher_pro/static/src/img/icons/service.png"/>
-                    <t t-snippet="kingfisher_pro.s_kingfisher_pro_testimonials_slider"
-                       t-thumbnail="/kingfisher_pro/static/src/img/icons/testimonials.png"/>
-                    <t t-snippet="kingfisher_pro.s_kingfisher_pro_product_category_slider"
-                       t-thumbnail="/kingfisher_pro/static/src/img/icons/product-category-slider.png"/>
-                    <t t-snippet="kingfisher_pro.s_kingfisher_pro_brand_custom_slider"
-                       t-thumbnail="/kingfisher_pro/static/src/img/icons/brand.png"/>
-                    <t t-snippet="kingfisher_pro.s_kingfisher_pro_blog_custom_snippet"
-                       t-thumbnail="/kingfisher_pro/static/src/img/icons/blog.png"/>
-                    <t t-snippet="kingfisher_pro.s_kingfisher_pro_multi_cat_custom_snippet"
-                       t-thumbnail="/kingfisher_pro/static/src/img/icons/tabs.png"/>
-                </div>
-            </div>
+        <xpath expr="//div[@id='snippet_structure']/div[@class='o_panel_body']" position="inside">
+            <t t-snippet="kingfisher_pro.s_kingfisher_pro_home_slider"
+               t-thumbnail="/kingfisher_pro/static/src/img/icons/home-slider-icon.png"/>
+            <t t-snippet="kingfisher_pro.s_kingfisher_pro_promo_snippet"
+               t-thumbnail="/kingfisher_pro/static/src/img/icons/promo-snippet.png"/>
+            <t t-snippet="kingfisher_pro.s_kingfisher_pro_single_banner_snippet"
+               t-thumbnail="/kingfisher_pro/static/src/img/icons/banner-without-slider.png"/>
+            <t t-snippet="kingfisher_pro.s_kingfisher_pro_service_snippet"
+               t-thumbnail="/kingfisher_pro/static/src/img/icons/service.png"/>
+        </xpath>
+        <xpath expr="//div[@id='snippet_feature']/div[@class='o_panel_body']" position="inside">
+            <t t-snippet="kingfisher_pro.s_kingfisher_pro_testimonials_slider"
+               t-thumbnail="/kingfisher_pro/static/src/img/icons/testimonials.png"/>
+            <t t-snippet="kingfisher_pro.s_kingfisher_pro_product_category_slider"
+               t-thumbnail="/kingfisher_pro/static/src/img/icons/product-category-slider.png"/>
+            <t t-snippet="kingfisher_pro.s_kingfisher_pro_brand_custom_slider"
+               t-thumbnail="/kingfisher_pro/static/src/img/icons/brand.png"/>
+            <t t-snippet="kingfisher_pro.s_kingfisher_pro_blog_custom_snippet"
+               t-thumbnail="/kingfisher_pro/static/src/img/icons/blog.png"/>
+            <t t-snippet="kingfisher_pro.s_kingfisher_pro_multi_cat_custom_snippet"
+               t-thumbnail="/kingfisher_pro/static/src/img/icons/tabs.png"/>
+        </xpath>
+        <xpath expr="//div[@id='snippet_effect']" position="inside">
         </xpath>
     </template>
 
-</odoo>
+</data>
+</openerp>

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 332 - 359
views/theme.xml


+ 53 - 51
views/theme_customize.xml

@@ -1,115 +1,116 @@
 <?xml version="1.0" encoding="utf-8"?>
-<odoo>
+<openerp>
+    <data>
 
-        <template active="False" customize_show="True" id="option_primary_color_aqua_theme" inherit_id="kingfisher_pro.asset_frontend" name="option_primary_color_aqua_theme">
-            <xpath expr="link[@href='/kingfisher_pro/static/src/scss/options/colors/colors.scss']" position="after">
-                <link href="/kingfisher_pro/static/src/scss/options/colors/theme_aqua.scss" rel="stylesheet" type="text/scss"/>
+        <template active="False" customize_show="True" id="option_primary_color_aqua_theme" inherit_id="website.assets_frontend" name="primary-color-aqua-theme">
+            <xpath expr="." position="inside">
+                <link href="/kingfisher_pro/static/src/less/options/colors/theme_aqua.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
-        <template active="False" customize_show="True" id="option_primary_color_blue_theme" inherit_id="kingfisher_pro.asset_frontend" name="option_primary_color_blue_theme">
-            <xpath expr="link[@href='/kingfisher_pro/static/src/scss/options/colors/colors.scss']" position="after">
-                <link href="/kingfisher_pro/static/src/scss/options/colors/theme_blue.scss" rel="stylesheet" type="text/scss"/>
+        <template active="False" customize_show="True" id="option_primary_color_blue_theme" inherit_id="website.assets_frontend" name="primary-color-blue-theme">
+            <xpath expr="." position="inside">
+                <link href="/kingfisher_pro/static/src/less/options/colors/theme_blue.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
-        <template active="False" customize_show="True" id="option_primary_color_brown_theme" inherit_id="kingfisher_pro.asset_frontend" name="option_primary_color_brown_theme">
-           <xpath expr="link[@href='/kingfisher_pro/static/src/scss/options/colors/colors.scss']" position="after">
-                <link href="/kingfisher_pro/static/src/scss/options/colors/theme_brown.scss" rel="stylesheet" type="text/scss"/>
+        <template active="False" customize_show="True" id="option_primary_color_brown_theme" inherit_id="website.assets_frontend" name="primary-color-brown-theme">
+            <xpath expr="." position="inside">
+                <link href="/kingfisher_pro/static/src/less/options/colors/theme_brown.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
-        <template active="False" customize_show="True" id="option_primary_color_orange" inherit_id="kingfisher_pro.asset_frontend" name="option_primary_color_orange">
-           <xpath expr="link[@href='/kingfisher_pro/static/src/scss/options/colors/colors.scss']" position="after">
-                <link href="/kingfisher_pro/static/src/scss/options/colors/theme_orange.scss" rel="stylesheet" type="text/scss"/>
+        <template active="False" customize_show="True" id="option_primary_color_orange" inherit_id="website.assets_frontend" name="primary-color-orange">
+            <xpath expr="." position="inside">
+                <link href="/kingfisher_pro/static/src/less/options/colors/theme_orange.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
-        <template active="False" customize_show="True" id="option_primary_color_pink" inherit_id="kingfisher_pro.asset_frontend" name="option_primary_color_pink">
-            <xpath expr="link[@href='/kingfisher_pro/static/src/scss/options/colors/colors.scss']" position="after">
-                <link href="/kingfisher_pro/static/src/scss/options/colors/theme_pink.scss" rel="stylesheet" type="text/scss"/>
+        <template active="False" customize_show="True" id="option_primary_color_pink" inherit_id="website.assets_frontend" name="primary-color-pink">
+            <xpath expr="." position="inside">
+                <link href="/kingfisher_pro/static/src/less/options/colors/theme_pink.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
 
         <!-- Option Primary Fonts -->
-        <template active="False" customize_show="True" id="option_font_style_open_sans" inherit_id="kingfisher_pro.asset_frontend" name="option_font_style_open_sans">
+        <template active="False" customize_show="True" id="option_font_style_open_sans" inherit_id="website.assets_frontend" name="option_font_style_open_sans">
             <xpath expr="." position="inside">
-                <link href="/kingfisher_pro/static/src/scss/options/fonts/font-style-open-sans-font.scss" rel="stylesheet" type="text/scss"/>
+                <link href="/kingfisher_pro/static/src/less/options/fonts/font-style-open-sans-font.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
-        <template active="False" customize_show="True" id="option_font_style_lato_font" inherit_id="kingfisher_pro.asset_frontend" name="option_font_style_lato_font">
+        <template active="False" customize_show="True" id="option_font_style_lato_font" inherit_id="website.assets_frontend" name="option_font_style_lato_font">
             <xpath expr="." position="inside">
-                <link href="/kingfisher_pro/static/src/scss/options/fonts/font-style-lato-font.scss" rel="stylesheet" type="text/scss"/>
+                <link href="/kingfisher_pro/static/src/less/options/fonts/font-style-lato-font.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
-        <template active="False" customize_show="True" id="option_font_style_raleway" inherit_id="kingfisher_pro.asset_frontend" name="option_font_style_raleway_font">
+        <template active="False" customize_show="True" id="option_font_style_raleway" inherit_id="website.assets_frontend" name="option_font_style_raleway_font">
             <xpath expr="." position="inside">
-                <link href="/kingfisher_pro/static/src/scss/options/fonts/font-style-raleway-font.scss" rel="stylesheet" type="text/scss"/>
+                <link href="/kingfisher_pro/static/src/less/options/fonts/font-style-raleway-font.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
-        <template active="False" customize_show="True" id="option_font_style_source_sans_pro" inherit_id="kingfisher_pro.asset_frontend" name="option_font_style_source_sans_pro">
+        <template active="False" customize_show="True" id="option_font_style_source_sans_pro" inherit_id="website.assets_frontend" name="option_font_style_source_sans_pro">
             <xpath expr="." position="inside">
-                <link href="/kingfisher_pro/static/src/scss/options/fonts/font-style-source-sans-pro-font.scss" rel="stylesheet" type="text/scss"/>
+                <link href="/kingfisher_pro/static/src/less/options/fonts/font-style-source-sans-pro-font.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
-        <template active="False" customize_show="True" id="option_font_style_source_serif_pro" inherit_id="kingfisher_pro.asset_frontend" name="option_font_style_source_serif_pro">
+        <template active="False" customize_show="True" id="option_font_style_source_serif_pro" inherit_id="website.assets_frontend" name="option_font_style_source_serif_pro">
             <xpath expr="." position="inside">
-                <link href="/kingfisher_pro/static/src/scss/options/fonts/font-style-source-serif-pro-font.scss" rel="stylesheet" type="text/scss"/>
+                <link href="/kingfisher_pro/static/src/less/options/fonts/font-style-source-serif-pro-font.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
-        <template active="False" customize_show="True" id="option_font_style_varela_round" inherit_id="kingfisher_pro.asset_frontend" name="option_font_style_varela_round">
+        <template active="False" customize_show="True" id="option_font_style_varela_round" inherit_id="website.assets_frontend" name="option_font_style_varela_round">
             <xpath expr="." position="inside">
-                <link href="/kingfisher_pro/static/src/scss/options/fonts/font-style-varela-round-font.scss" rel="stylesheet" type="text/scss"/>
+                <link href="/kingfisher_pro/static/src/less/options/fonts/font-style-varela-round-font.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
 
-        <template active="False" customize_show="True" id="boxed_layout" inherit_id="kingfisher_pro.asset_frontend" name="boxed_layout">
+        <template active="False" customize_show="True" id="boxed_layout" inherit_id="website.assets_frontend" name="boxed_layout">
             <xpath expr="." position="inside">
-                <link href="/kingfisher_pro/static/src/scss/options/layout/boxed.scss" rel="stylesheet" type="text/scss"/>
+                <link href="/kingfisher_pro/static/src/less/options/layout/boxed.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
 
         <!-- Background Pattern -->
-        <template id="option_bg_pattern_1" name="option_bg_pattern_1" inherit_id="kingfisher_pro.asset_frontend" active="False" customize_show="True">
+        <template id="option_bg_pattern_1" name="option_bg_pattern_1" inherit_id="website.assets_frontend" active="False" customize_show="True">
             <xpath expr="." position="inside">
-                <link href="/kingfisher_pro/static/src/scss/options/bg_patterns/bg-pattern-1.scss" rel="stylesheet" type="text/scss"/>
+                <link href="/kingfisher_pro/static/src/less/options/bg_patterns/bg-pattern-1.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
-        <template id="option_bg_pattern_2" name="option_bg_pattern_2" inherit_id="kingfisher_pro.asset_frontend" active="False" customize_show="True">
+        <template id="option_bg_pattern_2" name="option_bg_pattern_2" inherit_id="website.assets_frontend" active="False" customize_show="True">
             <xpath expr="." position="inside">
-                <link href="/kingfisher_pro/static/src/scss/options/bg_patterns/bg-pattern-2.scss" rel="stylesheet" type="text/scss"/>
+                <link href="/kingfisher_pro/static/src/less/options/bg_patterns/bg-pattern-2.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
-        <template id="option_bg_pattern_3" name="option_bg_pattern_3" inherit_id="kingfisher_pro.asset_frontend" active="False" customize_show="True">
+        <template id="option_bg_pattern_3" name="option_bg_pattern_3" inherit_id="website.assets_frontend" active="False" customize_show="True">
             <xpath expr="." position="inside">
-                <link href="/kingfisher_pro/static/src/scss/options/bg_patterns/bg-pattern-3.scss" rel="stylesheet" type="text/scss"/>
+                <link href="/kingfisher_pro/static/src/less/options/bg_patterns/bg-pattern-3.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
-        <template id="option_bg_pattern_4" name="option_bg_pattern_4" inherit_id="kingfisher_pro.asset_frontend" active="False" customize_show="True">
+        <template id="option_bg_pattern_4" name="option_bg_pattern_4" inherit_id="website.assets_frontend" active="False" customize_show="True">
             <xpath expr="." position="inside">
-                <link href="/kingfisher_pro/static/src/scss/options/bg_patterns/bg-pattern-4.scss" rel="stylesheet" type="text/scss"/>
+                <link href="/kingfisher_pro/static/src/less/options/bg_patterns/bg-pattern-4.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
-        <template id="option_bg_pattern_5" name="option_bg_pattern_5" inherit_id="kingfisher_pro.asset_frontend" active="False" customize_show="True">
+        <template id="option_bg_pattern_5" name="option_bg_pattern_5" inherit_id="website.assets_frontend" active="False" customize_show="True">
             <xpath expr="." position="inside">
-                <link href="/kingfisher_pro/static/src/scss/options/bg_patterns/bg-pattern-5.scss" rel="stylesheet" type="text/scss"/>
+                <link href="/kingfisher_pro/static/src/less/options/bg_patterns/bg-pattern-5.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
-        <template id="option_bg_pattern_6" name="option_bg_pattern_6" inherit_id="kingfisher_pro.asset_frontend" active="False" customize_show="True">
+        <template id="option_bg_pattern_6" name="option_bg_pattern_6" inherit_id="website.assets_frontend" active="False" customize_show="True">
             <xpath expr="." position="inside">
-                <link href="/kingfisher_pro/static/src/scss/options/bg_patterns/bg-pattern-6.scss" rel="stylesheet" type="text/scss"/>
+                <link href="/kingfisher_pro/static/src/less/options/bg_patterns/bg-pattern-6.less" rel="stylesheet" type="text/less"/>
             </xpath>
         </template>
 
         <!-- Customize Theme Template -->
-        <template id="kingfisher_pro_theme_customize" inherit_id="website_theme_install.customize_modal" name="Theme Kingfisher Pro Modal">
+        <template id="kingfisher_pro_theme_customize" inherit_id="website.theme_customize" name="Theme Kingfisher Pro Modal">
             <xpath expr="//div" position="replace">
-                <!-- <div class="modal fade" id="theme_customize_modal">
+                <div class="modal fade" id="theme_customize_modal">
                     <div class="modal-dialog">
-                        <div class="modal-content"> -->
+                        <div class="modal-content">
                             <!-- <input data-xmlid="website_less.option_bootstrap_less" id="less" style="display: none;"/> -->
-                        <!--     <div class="loading_backdrop"/>
+                            <div class="loading_backdrop"/>
                             <div class="modal-header">
                                 <button class="close" type="button">×</button>
                                 <h4 class="modal-title" id="mySmallModalLabel">Customize your theme</h4>
-                            </div> -->
-                            <div class="modal-body cstm-customized-theme">
+                            </div>
+                            <div class="modal-body">
                                 <h5 class="modal-h5">LAYOUT</h5>
                                 <table name="layout">
                                     <tr>
@@ -259,9 +260,10 @@
                                     </tr>
                                 </table>
                             </div>
-                       <!--  </div>
+                        </div>
                     </div>
-                </div> -->
+                </div>
             </xpath>
         </template>
-</odoo>
+    </data>
+</openerp>

+ 34 - 110
views/website_config_view.xml

@@ -1,115 +1,39 @@
 <?xml version="1.0" encoding="utf-8"?>
-<odoo>
-        <!-- Website Config Settings -->
+<openerp>
+    <data>
+
+        <!-- Website Config Settings for Multiple Image -->
         <record id="view_website_config_settings_effects_inherit" model="ir.ui.view">
-            <field name="name">website settings</field>
-            <field name="model">res.config.settings</field>
-            <field name="inherit_id" ref="website.res_config_settings_view_form"/>
+            <field name="name">Website settings</field>
+            <field name="model">website.config.settings</field>
+            <field name="inherit_id" ref="website.view_website_config_settings"/>
             <field name="arch" type="xml">
-                <div id="webmaster_settings" position="after">                
-                    <h2>Website Product Pager Settings</h2>
-                    <div class="row mt16 o_settings_container">
-                        <div class="col-xs-12 col-md-12 o_setting_box">
-                            <div class="o_setting_left_pane">
-                                <field name="enable_first_last_pager"/>
-                            </div>
-                            <div class="o_setting_right_pane">
-                                <label for="enable_first_last_pager"/>
-                            </div>
-                        </div>
-                    </div>
-
-                    <h2>Product per grid</h2>
-                    <div class="row mt16 o_settings_container">
-                        <div class="col-xs-12 col-md-12 o_setting_box">
-                            <div class="o_setting_right_pane">
-                                <label for="product_display_grid"/>
-                                <div class="mt8">
-                                    <field name="product_display_grid" widget="radio" options="{'horizontal': true}"/>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-
-                    <h2>Multiple Product Image</h2>
-                    <div class="row mt16 o_settings_container">
-                        <div class="col-xs-12 col-md-12 o_setting_box">
-                            <div class="o_setting_left_pane">
-                                <field name="no_extra_options"/>
-                            </div>
-                            <div class="o_setting_right_pane">
-                                <label for="no_extra_options"/>
-                            </div>
-                        </div>
-                        
-                        <div class="col-xs-12 col-md-12 o_setting_box" attrs="{'invisible': [('no_extra_options', '=', False)]}">
-                            <div class="o_setting_left_pane">
-                                <field name="enable_disable_text"/>
-                            </div>
-                            <div class="o_setting_right_pane">
-                                <label for="enable_disable_text"/>
-                            </div>
-                        </div>
-
-                        <div class="col-xs-12 col-md-12 o_setting_box" attrs="{'invisible': [('no_extra_options', '=', False)]}">
-                            <div class="o_setting_right_pane">
-                                <label for="thumbnail_panel_position"/>
-                                <div class="text-muted">
-                                    <field name="thumbnail_panel_position"/>
-                                </div>
-                            </div>
-                        </div>
-                        
-                        <div class="col-xs-12 col-md-12 o_setting_box" attrs="{'invisible': [('no_extra_options', '=', False)]}">
-                            <div class="o_setting_right_pane">
-                                <label for="interval_play"/>
-                                <div class="text-muted">
-                                    <field name="interval_play"/>
-                                </div>
-                            </div>
-                        </div>
-                        
-                        <div class="col-xs-12 col-md-12 o_setting_box" attrs="{'invisible': [('no_extra_options', '=', False)]}">
-                            <div class="o_setting_right_pane">
-                                <label for="color_opt_thumbnail"/>
-                                <div class="text-muted">
-                                    <field name="color_opt_thumbnail"/>
-                                </div>
-                            </div>
-                        </div>
-                        <div class="col-xs-12 col-md-12 o_setting_box">
-                            <div class="o_setting_left_pane">
-                                <field name="change_thumbnail_size"/>
-                            </div>
-                            <div class="o_setting_right_pane">
-                                <label for="change_thumbnail_size"/>
-                            </div>
-                        </div>
-                        
-                        <div class="col-xs-12 col-md-12 o_setting_box" attrs="{'invisible': [('change_thumbnail_size', '=', False)]}">
-                            <div class="o_setting_right_pane">
-                                <label for="thumb_height"/>
-                                <div class="text-muted">
-                                    <field name="thumb_height"/>
-                                </div>
-                            </div>
-                        </div>
-                      
-                        <div class="col-xs-12 col-md-12 o_setting_box" attrs="{'invisible': [('change_thumbnail_size', '=', False)]}">
-                            <div class="o_setting_right_pane">
-                                <label for="thumb_width"/>
-                                <div class="text-muted">
-                                    <field name="thumb_width"/>
-                                </div>
-                            </div>
-                        </div>
-                    </div>
-                </div>
+                <xpath expr="/form/div/group[@name='advanced']" position="before">
+                    <group string="Multiple Product Image">
+                        <field name="no_extra_options"/>
+                        <field name="thumbnail_panel_position"
+                               attrs="{'invisible': [('no_extra_options', '=', False)]}"/>
+                        <field name="interval_play"
+                               attrs="{'invisible': [('no_extra_options', '=', False)]}"/>
+                        <field name="enable_disable_text"
+                               attrs="{'invisible': [('no_extra_options', '=', False)]}"/>
+                        <field name="color_opt_thumbnail"
+                               attrs="{'invisible': [('no_extra_options', '=', False)]}"/>
+                        <field name="change_thumbnail_size"/>
+                        <field name="thumb_height"
+                               attrs="{'invisible': [('change_thumbnail_size', '=', False)]}"/>
+                       <field name="thumb_width"
+                               attrs="{'invisible': [('change_thumbnail_size', '=', False)]}"/>
+                    </group>
+                </xpath>
+                <xpath expr="/form/div/group[@name='advanced']" position="before">
+                    <group string="Product per grid">
+                        <field name="product_display_grid"/>
+                    </group>
+                </xpath>
             </field>
         </record>
 
-
-
         <!-- Website Menu List view -->
         <record id="website.menu_tree" model="ir.ui.view">
             <field name="name">website.menu.tree</field>
@@ -129,7 +53,7 @@
         </record>
 
         <!-- Website Menu Form view -->
-        <record id="website.website_menus_form_view" model="ir.ui.view">
+        <record id="view_website_menu_inherit" model="ir.ui.view">
             <field name="name">Website Menu Form View Inherited</field>
             <field name="model">website.menu</field>
             <field name="field_parent">child_id</field>
@@ -185,7 +109,6 @@
 
                             <field name="display_menu_footer"/>
                             <field name="menu_footer"
-                                   widget="html"
                                    attrs="{'invisible': [('display_menu_footer', '=', False)],
                                            'required': [('display_menu_footer', '=', True)]}"/>
                         </group>
@@ -201,5 +124,6 @@
             <field name="view_mode">list,form</field>
             <field name="context">{'search_default_my_websites':1}</field>
         </record>
-        
-</odoo>
+
+    </data>
+</openerp>

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio