edgar vor 6 Jahren
Ursprung
Commit
ab085c95e7
75 geänderte Dateien mit 1931 neuen und 2737 gelöschten Zeilen
  1. BIN
      Odoo Kinfisher Pro Fashion - User Guide.pdf
  2. BIN
      OdooKingfisherProFashion_Community_Edition.pdf
  3. BIN
      OdooKingfisherProFashion_Enterprise_Edition.pdf
  4. 2 2
      __init__.py
  5. 9 33
      __openerp__.py
  6. 1 1
      controllers/__init__.py
  7. 104 187
      controllers/main.py
  8. 2 2
      data/data.xml
  9. 2 2
      data/demo_homepage.xml
  10. 92 3
      doc/changelog.rst
  11. 3 3
      models/__init__.py
  12. 16 34
      models/products.py
  13. 1 4
      models/slider.py
  14. 42 42
      models/website.py
  15. 11 15
      security/ir.model.access.csv
  16. 60 27
      static/description/index.html
  17. 0 6
      static/src/css/kingfisher_pro.css
  18. 1 14
      static/src/js/custom.js
  19. 49 73
      static/src/js/kingfisher_pro.js
  20. 16 16
      static/src/js/kingfisher_pro_editor.js
  21. 43 100
      static/src/js/kingfisher_pro_frontend.js
  22. 0 29
      static/src/js/rating_state.js
  23. 0 0
      static/src/less/box-layout.less
  24. 22 0
      static/src/less/custom_theme.less
  25. 38 75
      static/src/less/footer.less
  26. 131 192
      static/src/less/header.less
  27. 28 0
      static/src/less/mixins.less
  28. 0 0
      static/src/less/mobile.less
  29. 1 0
      static/src/less/options/bg_patterns/bg-pattern-1.less
  30. 1 0
      static/src/less/options/bg_patterns/bg-pattern-2.less
  31. 1 0
      static/src/less/options/bg_patterns/bg-pattern-3.less
  32. 1 0
      static/src/less/options/bg_patterns/bg-pattern-4.less
  33. 1 0
      static/src/less/options/bg_patterns/bg-pattern-5.less
  34. 1 0
      static/src/less/options/bg_patterns/bg-pattern-6.less
  35. 22 0
      static/src/less/options/colors/colors.less
  36. 22 0
      static/src/less/options/colors/theme_aqua.less
  37. 22 0
      static/src/less/options/colors/theme_blue.less
  38. 22 0
      static/src/less/options/colors/theme_brown.less
  39. 22 0
      static/src/less/options/colors/theme_orange.less
  40. 22 0
      static/src/less/options/colors/theme_pink.less
  41. 2 2
      static/src/less/options/fonts/font-style-lato-font.less
  42. 2 2
      static/src/less/options/fonts/font-style-open-sans-font.less
  43. 2 2
      static/src/less/options/fonts/font-style-raleway-font.less
  44. 2 2
      static/src/less/options/fonts/font-style-source-sans-pro-font.less
  45. 2 2
      static/src/less/options/fonts/font-style-source-serif-pro-font.less
  46. 4 0
      static/src/less/options/fonts/font-style-varela-round-font.less
  47. 1 1
      static/src/less/options/layout/boxed.less
  48. 84 174
      static/src/less/product.less
  49. 25 37
      static/src/less/style.less
  50. 260 273
      static/src/less/web.less
  51. 7 0
      static/src/less/website.less
  52. 0 22
      static/src/scss/custom_theme.scss
  53. 0 27
      static/src/scss/mixins.scss
  54. 0 1
      static/src/scss/options/bg_patterns/bg-pattern-1.scss
  55. 0 1
      static/src/scss/options/bg_patterns/bg-pattern-2.scss
  56. 0 1
      static/src/scss/options/bg_patterns/bg-pattern-3.scss
  57. 0 1
      static/src/scss/options/bg_patterns/bg-pattern-4.scss
  58. 0 1
      static/src/scss/options/bg_patterns/bg-pattern-5.scss
  59. 0 1
      static/src/scss/options/bg_patterns/bg-pattern-6.scss
  60. 0 22
      static/src/scss/options/colors/colors.scss
  61. 0 22
      static/src/scss/options/colors/theme_aqua.scss
  62. 0 22
      static/src/scss/options/colors/theme_blue.scss
  63. 0 22
      static/src/scss/options/colors/theme_brown.scss
  64. 0 22
      static/src/scss/options/colors/theme_orange.scss
  65. 0 22
      static/src/scss/options/colors/theme_pink.scss
  66. 0 4
      static/src/scss/options/fonts/font-style-varela-round-font.scss
  67. 0 290
      static/src/scss/theme_common.scss
  68. 0 7
      static/src/scss/website.scss
  69. 13 18
      views/assets.xml
  70. 62 94
      views/product_view.xml
  71. 24 16
      views/slider_view.xml
  72. 210 231
      views/snippets.xml
  73. 333 374
      views/theme.xml
  74. 53 51
      views/theme_customize.xml
  75. 34 110
      views/website_config_view.xml

BIN
Odoo Kinfisher Pro Fashion - User Guide.pdf


BIN
OdooKingfisherProFashion_Community_Edition.pdf


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

+ 9 - 33
__manifest__.py → __openerp__.py

@@ -3,32 +3,8 @@
 
 {
     'name': 'Kingfisher Pro Fashion',
-    'description': """Kingfisher Pro Fashion
-odoo kingfisher fashion theme
-odoo fashion theme
-openerp fashion theme
-odoo fashion store theme
-odoo theme for fashion website
-odoo theme for fashion store
-fashion theme for odoo
-fashion theme for odoo store
-fashion store theme for odoo
-ecommerce fashion store theme
-ecommerce fashion store theme for odoo
-odoo responsive fashion theme
-responsive odoo fashion theme
-responsive fashion odoo theme
-responsive fashion theme for odoo
-odoo responsive kingfisher fashion theme
-odoo fashion theme for ecommerce store
-odoo apparel theme
-odoo apparel store theme
-apparel odoo ecommerce theme
-odoo theme for apparel store
-odoo lifestyle store theme
-odoo theme for lifestyle ecommerce store
-odoo fashion store template
-fashion theme
+    'description': '''Kingfisher Pro Fashion
+    fashion theme
 fashion
 fashion store
 odoo fashion store
@@ -48,18 +24,15 @@ 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': '9.0.1.1.1',
     'author': 'AppJetty',
     'website': 'https://www.appjetty.com/',
     'depends': [
-        'sale_management',
-        'website_theme_install',
         'website_sale',
+        # 'website_sale_options',
         'mass_mailing',
         'website_blog',
     ],
@@ -74,12 +47,15 @@ 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',
     'images': [
         'static/description/splash-screen.png',
-        'static/description/splash-screen_screenshot.png',
+        'static/description/splash-screen_screenshot.png'
     ],
     'price': 109.00,
     'currency': 'EUR',

+ 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

+ 104 - 187
controllers/main.py

@@ -2,15 +2,14 @@
 # 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.http import request
-from odoo.addons.http_routing.models.ir_http 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 openerp import http
+from openerp.http import request
+from openerp.addons.website.models.website import slug
+from openerp.addons.website_sale.controllers import main
+from openerp.addons.website_sale.controllers import main as main_shop
+from openerp.addons.website_sale.controllers.main import QueryURL
+from openerp.addons.website_sale.controllers.main import website_sale
+from openerp.addons.website_sale.controllers.main import table_compute
 
 
 class KingfisherProSliderSettings(http.Controller):
@@ -18,7 +17,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,
@@ -27,18 +26,9 @@ class KingfisherProSliderSettings(http.Controller):
 
     @http.route(['/kingfisher_pro/pro_get_dynamic_slider'], type='http', auth='public', website=True)
     def get_dynamic_slider(self, **post):
-        uid, context, pool = request.uid, dict(request.context), request.env
         if post.get('slider-type'):
             slider_header = request.env['product.category.slider.config'].sudo().search(
                 [('id', '=', int(post.get('slider-type')))])
-            if not context.get('pricelist'):
-                pricelist = request.website.get_current_pricelist()
-                context = dict(request.context, pricelist=int(pricelist))
-            else:
-                pricelist = pool.get('product.pricelist').browse(
-                    context['pricelist'])
-
-            context.update({'pricelist': pricelist.id})
             values = {
                 'slider_header': slider_header
             }
@@ -48,20 +38,12 @@ class KingfisherProSliderSettings(http.Controller):
             if slider_header.prod_cat_type == 'category':
                 values.update(
                     {'slider_details': slider_header.collections_category})
-
-            from_currency = pool['res.users'].sudo().browse(
-                uid).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())
-            values.update({'slider_type': slider_header.prod_cat_type,
-                           'compute_currency': compute_currency, })
-            return request.render("kingfisher_pro.kingfisher_pro_pro_cat_slider_view", values)
+            values.update({'slider_type': slider_header.prod_cat_type})
+            return request.website.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 +56,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,
@@ -90,11 +72,11 @@ class KingfisherProSliderSettings(http.Controller):
                 'slider_header': slider_header,
                 'blog_slider_details': slider_header.collections_blog_post,
             }
-            return request.render("kingfisher_pro.kingfisher_pro_blog_slider_view", values)
+            return request.website.render("kingfisher_pro.kingfisher_pro_blog_slider_view", values)
 
     @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 +107,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,
@@ -134,35 +116,18 @@ class KingfisherProSliderSettings(http.Controller):
 
     @http.route(['/kingfisher_pro/product_multi_get_dynamic_slider'], type='http', auth='public', website=True)
     def product_multi_get_dynamic_slider(self, **post):
-        context, pool = dict(request.context), request.env
         if post.get('slider-type'):
             slider_header = request.env['multi.slider.config'].sudo().search(
                 [('id', '=', int(post.get('slider-type')))])
-
-            if not context.get('pricelist'):
-                pricelist = request.website.get_current_pricelist()
-                context = dict(request.context, pricelist=int(pricelist))
-            else:
-                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
-            to_currency = pricelist.currency_id
-
-            def compute_currency(price): return pool['res.currency']._convert(
-                price, from_currency, to_currency, fields.Date.today())
             values = {
                 'slider_details': slider_header,
-                'slider_header': slider_header,
-                'compute_currency': compute_currency,
+                'slider_header': slider_header
             }
-            return request.render("kingfisher_pro.kingfisher_pro_multi_cat_slider_view", values)
+            return request.website.render("kingfisher_pro.kingfisher_pro_multi_cat_slider_view", values)
 
     @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),
@@ -173,7 +138,7 @@ class KingfisherProSliderSettings(http.Controller):
         return values
 
 
-class KingfisherProBrandSlider(WebsiteSale):
+class KingfisherProBrandSlider(website_sale):
 
     @http.route(['/shop/pager_selection/<model("product.per.page.no"):pl_id>'], type='http', auth="public", website=True)
     def product_page_change(self, pl_id, **post):
@@ -190,40 +155,29 @@ 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))
+        cr, uid, context, pool = request.cr, request.uid, request.context, request.registry
         if brand:
-            req_ctx = request.context.copy()
-            req_ctx.setdefault('brand_id', int(brand))
-            request.context = req_ctx
+            request.context.setdefault('brand_id', int(brand))
         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_obj = pool.get('product.per.page.no')
+        page_id = page_obj.search(
+            cr, uid, [('set_default_check', '=', True)], context=context)
+        page_no = page_obj.browse(cr, uid, page_id, context=context)
         if page_no:
             ppg = page_no.name
         else:
             ppg = main_shop.PPG
-        product_tmp = []
+        product = []
         newproduct = []
-        product_price = []
 
         # product template object
-        product_obj = request.env['product.template']
+        product_obj = pool.get('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()
@@ -231,8 +185,7 @@ class KingfisherProBrandSlider(WebsiteSale):
         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,32 +204,29 @@ 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 = pool['product.public.category'].browse(
+                cr, uid, int(category), context=context)
             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:
                 cat_id.append(ids.id)
             domain += ['|', ('public_categ_ids.id', 'in', cat_id),
                        ('public_categ_ids.parent_id', 'in', cat_id)]
-
         # for tag filter
         if session.get('tag'):
-            session_tag = session.get('tag')[0]
-            tag = session_tag
+            session_tag = session.get('tag')
+            tag = session_tag[0]
+            tags_obj = pool['biztech.product.tags']
+            tags_ids = tags_obj.search(cr, uid, [], context=context)
+            tags = tags_obj.browse(cr, uid, tags_ids, context=context)
             if tag:
-                tag = request.env['biztech.product.tags'].sudo().browse(
-                    int(tag))
+                tag = pool['biztech.product.tags'].browse(
+                    cr, uid, int(tag), context=context)
                 domain += [('biztech_tag_ids', '=', int(tag))]
                 request.session["tag"] = [tag.id, tag.name]
 
@@ -284,8 +234,11 @@ 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))
+            sorts_obj = pool['biztech.product.sortby']
+            sorts_ids = sorts_obj.search(cr, uid, [], context=context)
+            sorts = sorts_obj.browse(cr, uid, sorts_ids, context=context)
+            sort_field = pool['biztech.product.sortby'].browse(
+                cr, uid, int(sort), context=context)
             request.session['product_sort_name'] = sort_field.name
             order_field = sort_field.sort_on.name
             order_type = sort_field.sort_type
@@ -295,113 +248,77 @@ class KingfisherProBrandSlider(WebsiteSale):
                     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 = product_obj.search(cr, uid, [], context=context)
+        products_slider = product_obj.browse(
+            cr, uid, product_slider_ids, context=context)
+        product_withprice = products_slider._product_template_price(
+            products_slider, domain)
+
+        if product_withprice:
+            if post.get("range1") or post.get("range2") or not post.get("range1") or not post.get("range2"):
+                range1 = min(product_withprice.values())
+                range2 = max(product_withprice.values())
+                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 range1:
+                post["range2"] = range1
+
+            if request.session.get('min1') or request.session.get('max1'):
+                if request.session.get('min1'):
+                    if request.session['min1'] != None:
+                        for prod_id in product_withprice:
+                            if product_withprice.get(prod_id) >= float(request.session['min1']) and product_withprice.get(prod_id) <= float(request.session['max1']):
+                                product.append(prod_id)
+                        request.session["pricerange"] = str(
+                            request.session['min1'])+"-To-"+str(request.session['max1'])
+                newproduct = product
+                domain += [('id', 'in', newproduct)]
+
+            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)
+        product_count = product_obj.search_count(
+            cr, uid, domain, context=context)
         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])
-        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,
-                                'bins': TableCompute().process(products, ppg)})
+        product_ids = product_obj.search(
+            cr, uid, domain, limit=ppg, offset=pager['offset'], order=sort_order, context=context)
+        products = product_obj.browse(cr, uid, product_ids, context=context)
+
+        result.qcontext.update({'product_count': product_count})
+        result.qcontext.update({'products': products})
+        result.qcontext.update({'category': category})
+        result.qcontext.update({'pager': pager})
+        result.qcontext.update({'keep': keep})
+        result.qcontext.update({'search': search})
+
+        result.qcontext.update(
+            {'bins': table_compute().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()
     def cart_update_json(self, product_id, line_id=None, add_qty=None, set_qty=None, display=True):
         result = super(KingfisherProBrandSlider, self).cart_update_json(
-            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})
+            product_id=product_id, line_id=line_id, add_qty=add_qty, set_qty=set_qty, display=display)
+        result.update({'kingfisher_pro.hover_total': request.website._render("kingfisher_pro.hover_total", {
+            'website_sale_order': request.website.sale_get_order()
+        })
         })
         return result
 
@@ -416,7 +333,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
@@ -424,7 +341,7 @@ class KingfisherProBrandSlider(WebsiteSale):
         if post.get('product_label'):
             value['brand_header'] = post.get('product_label')
 
-        return request.render("kingfisher_pro.kingfisher_pro_brand_slider_view", value)
+        return request.website.render("kingfisher_pro.kingfisher_pro_brand_slider_view", value)
 
     @http.route(['/kingfisher_pro/removeattribute'], type='json', auth='public', website=True)
     def remove_selected_attribute(self, **post):

+ 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>

+ 92 - 3
doc/changelog.rst

@@ -1,9 +1,98 @@
 ========================
-``Kingfisher Pro Fashion`` changelog
+``Kingfisher Pro Theme`` changelog
 ========================
 
+*****
+
+Added translations file and make fields translatable
+
+*****
+
+1/. Added translation file for French(BE).
+
+2/. Make char fields translatable.
+
+*****
+
+Fixed the category paging issue
+
+*****
+
+1/. Fixed the issue which occured while switching pages into categories on website.
+
+
+*****
+
+Fixed paging issue
+
+*****
+
+1/. Fixed default paging issue
+
+
+*****
+
+Fixed proper alignment issue of price in cart
+
+*****
+
+1/. Fixed proper alignment issue of price in cart
+
+
+*****
+
+Removed one option from customized show
+
+*****
+
+1/. Removed one option from customized show which was causing the website crash.
+
+
+*****
+
+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.
+
+
+******************************************
+
+Provided access rights for theme features
+
+******************************************
+
+Provided access rights for the features like Multi image, sliders, tags and etc.
+
+
 ******************************************
-Improved code to support the default product flow for some static ids.
+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.
 
-1. Improved code to support the default product flow for some static ids.
+
+******************************************
+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,

+ 42 - 42
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,23 +101,19 @@ 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
 
-    @api.model
-    def pager(self, url, total, page=1, step=30, scope=5, url_args=None):
-        res = super(website, self). pager(url=url,
+    def pager(self, cr, uid, ids, url, total, page=1, step=30, scope=5, url_args=None, context=None):
+        res = super(website, self). pager(cr, uid, ids, url=url,
                                           total=total,
                                           page=page,
                                           step=step,
                                           scope=scope,
-                                          url_args=url_args)
+                                          url_args=url_args,
+                                          context=context)
         # Compute Pager
         page_count = int(math.ceil(float(total) / step))
 
@@ -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,15 +184,16 @@ 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)
         return product_img_data
 
     # For brands
-    def sale_product_domain(self):
-        domain = super(website, self).sale_product_domain()
+    def sale_product_domain(self, cr, uid, ids, context=None):
+        domain = super(website, self).sale_product_domain(cr, uid, ids=ids,
+                                                          context=context)
         if 'brand_id' in request.context:
             domain.append(
                 ('product_brand_id', '=', request.context['brand_id']))
@@ -241,10 +236,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 +247,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.")

+ 11 - 15
security/ir.model.access.csv

@@ -1,23 +1,19 @@
 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
-access_biztech_multi_product_slider,access_biztech_multi_product_slider,model_multi_slider_config,website.group_website_designer,1,1,1,1
-access_biztech_custom_product_style_tag,access_biztech_custom_product_style_tag,model_biztech_product_style_tag,website.group_website_designer,1,1,1,1
-access_biztech_product_sorting,access_biztech_product_sorting,model_biztech_product_sortby,website.group_website_designer,1,1,1,1
-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_biztech_product_brand,access_biztech_product_brand,model_product_brands,base.group_website_designer,1,1,1,1
+access_biztech_product_catagory_slider,access_biztech_product_catagory_slider,model_product_category_slider_config,base.group_website_designer,1,1,1,1
+access_biztech_multi_product_slider,access_biztech_multi_product_slider,model_multi_slider_config,base.group_website_designer,1,1,1,1
+access_biztech_custom_product_style_tag,access_biztech_custom_product_style_tag,model_biztech_product_style_tag,base.group_website_designer,1,1,1,1
+access_biztech_product_sorting,access_biztech_product_sorting,model_biztech_product_sortby,base.group_website_designer,1,1,1,1
+access_biztech_custom_product_tags,access_biztech_custom_product_tags,model_biztech_product_tags,base.group_website_designer,1,1,1,1
+access_biztech_product_multiple_images,access_biztech_product_multiple_images,model_biztech_product_images,base.group_website_designer,1,1,1,1
+access_biztech_website_product_paging,access_biztech_website_product_paging,model_product_per_page,base.group_website_designer,1,1,1,1

+ 60 - 27
static/description/index.html

@@ -1,20 +1,10 @@
-<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>
+            <p class=" text-center text-muted" style=" font-size:20px">Now customize your fashion store with grand appearance! Odoo Kingfisher Pro Fashion allows you to personalize various elements creatively. Experience the well managed snippets with drag & drop.</p>
         </div>
     </div>
     <div class="container-fluid" style="background-color:#E8E8E8; padding:20px 0px 90px 0px">
@@ -30,7 +20,7 @@
     <div class="container" style="border-bottom: 1px solid rgba(225, 225, 225, 0.57); padding:20px 0px">
         <div class="oe_row oe_spaced">
             <h2 class="oe_slogan" style="color:#FF5D5D;">Building Blocks</h2>
-            <p class=" text-muted text-center" style="font-size:20px">Odoo Fashion theme imparts great benefits in the form of stellar design. Get the store speed optimized with Less CSS. It is a professional responsive fashion theme for Odoo which helps enhance the look and feel of your fashion store. 
+            <p class=" text-muted text-center" style="font-size:20px">Odoo Kingfisher Pro Fashion imparts great benefits in the form of stellar design. Get the store speed optimized with Less CSS. It is a professional responsive theme which helps enhance the look and feel of your fashion store. 
             </p>
         </div>
         <div class="container">
@@ -70,7 +60,7 @@
                     <h3 class="text-left" style="color:#FF5D5D;">Product Slider snippet</h3>
                     <ul style="list-style-type:none; padding-left:0">
                         <li>
-                            <p class="text-muted">Add a snippet to your Odoo Apparel E-Commerce store containing exclusive products from product list.</p>
+                            <p class="text-muted">Add a snippet to your E-Commerce store containing exclusive products from product list.</p>
                         </li>
                         <li>
                             <p class="text-muted">From this snippet your customer can directly add product to the cart and can also see ratings of the added product.</p>
@@ -105,7 +95,7 @@
                     <h3 class="text-left" style="color:#FF5D5D;">Category Slider snippet</h3>
                     <ul style="list-style-type:none; padding-left:0">
                         <li>
-                            <p class="text-muted">Add a snippet to your Odoo Lifestyle E-Commerce store containing exclusive products from product Categories. List Multiple Product Categories and add products to them.</p>
+                            <p class="text-muted">Add a snippet to your E-Commerce store containing exclusive products from product Categories. List Multiple Product Categories and add products to them.</p>
                         </li>
                         <li>
                             <p class="text-muted">Category Slider snippet supports two different widths:</p>
@@ -240,7 +230,7 @@
             <div class="row">
                 <div class="col-md-6">
                     <h3 class="text-left" style="color:#FF5D5D;">Advance Mega Menu</h3>
-                    <p class="text-muted">Make your simple menu mega menu with the help of Advance Mega Menu available in Kingfisher Pro Fashion Odoo theme for fashion website. Display all the product categories and sub categories in mega menu for easy and better navigation.</p>
+                    <p class="text-muted">Make your simple menu mega menu with the help of Advance Mega Menu available in Kingfisher Pro Fashion Theme. Display all the product categories and sub categories in mega menu for easy and better navigation.</p>
                 </div>
                 <div class="col-md-6">
                     <img class="img-border img-fluid thumbnail" src="mega-menu.png" />
@@ -256,7 +246,7 @@
                 </div>
                 <div class="col-md-6">
                     <h3 class="text-left" style="color:#FF5D5D;">Product Multiple Image Gallery</h3>
-                    <p class="text-muted">Odoo fashion store template has a support for Product multiple image galleries with image zoom in/out, image full screen and video support.</p>
+                    <p class="text-muted">The Kingfisher Pro Fashion theme has a support for Product multiple image galleries with image zoom in/out, image full screen and video support.</p>
                 </div>
             </div>
         </div>
@@ -266,7 +256,7 @@
             <div class="row">
                 <div class="col-md-6">
                     <h3 class="text-left" style="color:#FF5D5D;">Theme Customization</h3>
-                    <p class="text-muted">You can customize the Odoo apparel store theme the way you want. You can change the theme layout, Theme’s main color &amp; Theme’s font combination.</p>
+                    <p class="text-muted">You can customize the theme the way you want. You can change the theme layout, Theme’s main color &amp; Theme’s font combination.</p>
                 </div>
                 <div class="col-md-6">
                     <img class="img-border img-fluid thumbnail" src="theme-customization.png" />
@@ -420,22 +410,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">
             <div class="row">
@@ -577,4 +609,5 @@
         </div>
     </section>
 
+
 </section>

+ 0 - 6
static/src/css/kingfisher_pro.css

@@ -15,10 +15,4 @@
   padding-left: 3px; }
 #o_shop_collapse_category li i.fa {
   cursor: pointer; }
-  /*--- V10 patch --*/
-  .o_my_status_table .btn-primary{color:#fff !important;}
-  .o_my_status_table .btn-primary:hover{color:#333!important;}
-  .o_my_sidebar .btn-default:hover{color:#fff !important;}
-  
-
 

+ 1 - 14
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
@@ -153,7 +140,7 @@ function equal_height_all() {
 
 $(document).ready(function(){
  
-    $(".li-mega-menu > a").click(function(){
+    $(".li-mega-menu > a .fa").click(function(){
         $(this).parent().parent().toggleClass("mob-open");
     });
 });

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

@@ -42,63 +42,29 @@ 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 $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;
-                        }
+                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 +128,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 +145,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 +161,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 +169,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");
+                    $(this).attr("src", "/web/image/product.product/" + product_id + "/image");
 
-                        $stay = $(this).parent().parent();
-                        $(this).css({
-                            'width': 'initial',
-                            'height': 'initial'
-                        });
-                        api.resetZoom();
-                        api.zoomIn();
-                    }
+                    $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 +250,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 {
 
 
 
-/**/
+/**/
+
+

Datei-Diff unterdrückt, da er zu groß ist
+ 260 - 273
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>

+ 62 - 94
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="base.menu_sale_config"
                   sequence="70"
                   action="action_for_biztech_product_tags"/>
 
@@ -176,7 +161,7 @@
             <field name="name">Biztech Product Sorting List View</field>
             <field name="model">biztech.product.sortby</field>
             <field name="arch" type="xml">
-                <tree name="Product Sorting">
+                <tree name="Product Sortingng">
                     <field name="name"/>
                     <field name="sort_on"/>
                     <field name="sort_type"/>
@@ -195,7 +180,7 @@
         <!-- Menu for product sorting -->
         <menuitem name="Product Sorting"
                   id="sub_menu_sort_by"
-                  parent="sale.menu_sale_config"
+                  parent="base.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="base.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="base.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>

+ 210 - 231
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">
@@ -269,10 +267,11 @@
                                 </p>
                                 <p class="price">
                                     <span class="price">
-                                        <t t-if="(compute_currency(slide.lst_price) - slide.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(slide.website_public_price)" t-options="{'widget': 'monetary', 'display_currency': website.get_current_pricelist().currency_id, 'from_currency': website.currency_id}"/>
-                                        </t>
-                                        <span t-esc="slide.website_price" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
+                                        <span t-field="slide.lst_price"
+                                              t-field-options='{
+                                                 "widget": "monetary",
+                                                 "display_currency": "website.pricelist_id.currency_id"
+                                        }'></span>
                                     </span>
                                 </p>
                             </div>
@@ -430,7 +429,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 +442,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 +460,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 +483,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 +527,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">
@@ -554,14 +550,23 @@
                                                         </p>
                                                         <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>
-                                                                <span t-esc="product.website_price" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
+                                                                <span t-field="product.lst_price"
+                                                                      t-field-options='{
+                                                                         "widget": "monetary",
+                                                                         "display_currency": "website.pricelist_id.currency_id"
+                                                                }'></span>
                                                             </span>
                                                         </p>
                                                     </div>
                                                 </div>
+                                                <!-- <a t-att-href="'/shop/product/%s' % slug(prod)">
+                                                    <div class="brand-logo text-center">
+                                                        <img  t-att-src="website.image_url(prod, 'image')" t-att-title="prod.name" t-att-alt="prod.name"/>
+                                                    </div>
+                                                    <div t-att-title='prod.name' class="text-center brand-title">
+                                                        <strong><t t-esc="prod.name"/></strong>
+                                                    </div>
+                                                </a> -->
                                             </t>
                                         </div>
                                     </div>
@@ -579,14 +584,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">
@@ -603,12 +605,15 @@
                                                                 <span t-field='product.name'/>
                                                             </a>
                                                         </p>
-                                                        <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>
-                                                            <span t-esc="product.website_price" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
-                                                        </span>
+                                                        <p class="price">
+                                                            <span class="price">
+                                                                <span t-field="product.lst_price"
+                                                                      t-field-options='{
+                                                                         "widget": "monetary",
+                                                                         "display_currency": "website.pricelist_id.currency_id"
+                                                                }'></span>
+                                                            </span>
+                                                        </p>
                                                     </div>
                                                 </div>
 
@@ -632,14 +637,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">
@@ -658,10 +660,11 @@
                                                         </p>
                                                         <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>
-                                                                <span t-esc="product.website_price" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
+                                                                <span t-field="product.lst_price"
+                                                                      t-field-options='{
+                                                                         "widget": "monetary",
+                                                                         "display_currency": "website.pricelist_id.currency_id"
+                                                                }'></span>
                                                             </span>
                                                         </p>
                                                     </div>
@@ -684,14 +687,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">
@@ -710,10 +710,11 @@
                                                         </p>
                                                         <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>
-                                                                <span t-esc="product.website_price" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
+                                                                <span t-field="product.lst_price"
+                                                                      t-field-options='{
+                                                                         "widget": "monetary",
+                                                                         "display_currency": "website.pricelist_id.currency_id"
+                                                                }'></span>
                                                             </span>
                                                         </p>
                                                     </div>
@@ -736,14 +737,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">
@@ -762,10 +760,11 @@
                                                         </p>
                                                         <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>
-                                                                <span t-esc="product.website_price" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
+                                                                <span t-field="product.lst_price"
+                                                                      t-field-options='{
+                                                                         "widget": "monetary",
+                                                                         "display_currency": "website.pricelist_id.currency_id"
+                                                                }'></span>
                                                             </span>
                                                         </p>
                                                     </div>
@@ -791,14 +790,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">
@@ -817,10 +813,11 @@
                                                         </p>
                                                         <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>
-                                                                <span t-esc="product.website_price" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
+                                                                <span t-field="product.lst_price"
+                                                                      t-field-options='{
+                                                                         "widget": "monetary",
+                                                                         "display_currency": "website.pricelist_id.currency_id"
+                                                                }'></span>
                                                             </span>
                                                         </p>
                                                     </div>
@@ -843,14 +840,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">
@@ -869,10 +863,11 @@
                                                         </p>
                                                         <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>
-                                                                <span t-esc="product.website_price" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
+                                                                <span t-field="product.lst_price"
+                                                                      t-field-options='{
+                                                                         "widget": "monetary",
+                                                                         "display_currency": "website.pricelist_id.currency_id"
+                                                                }'></span>
                                                             </span>
                                                         </p>
                                                     </div>
@@ -895,14 +890,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">
@@ -921,10 +913,11 @@
                                                         </p>
                                                         <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>
-                                                                <span t-esc="product.website_price" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
+                                                                <span t-field="product.lst_price"
+                                                                      t-field-options='{
+                                                                         "widget": "monetary",
+                                                                         "display_currency": "website.pricelist_id.currency_id"
+                                                                }'></span>
                                                             </span>
                                                         </p>
                                                     </div>
@@ -947,14 +940,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">
@@ -973,14 +963,16 @@
                                                         </p>
                                                         <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>
-                                                                <span t-esc="product.website_price" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
+                                                                <span t-field="product.lst_price"
+                                                                      t-field-options='{
+                                                                         "widget": "monetary",
+                                                                         "display_currency": "website.pricelist_id.currency_id"
+                                                                }'></span>
                                                             </span>
                                                         </p>
                                                     </div>
                                                 </div>
+
                                             </t>
                                         </div>
                                     </div>
@@ -1001,14 +993,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">
@@ -1027,10 +1016,11 @@
                                                         </p>
                                                         <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>
-                                                                <span t-esc="product.website_price" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
+                                                                <span t-field="product.lst_price"
+                                                                      t-field-options='{
+                                                                         "widget": "monetary",
+                                                                         "display_currency": "website.pricelist_id.currency_id"
+                                                                }'></span>
                                                             </span>
                                                         </p>
                                                     </div>
@@ -1053,14 +1043,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">
@@ -1079,10 +1066,11 @@
                                                         </p>
                                                         <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>
-                                                                <span t-esc="product.website_price" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
+                                                                <span t-field="product.lst_price"
+                                                                      t-field-options='{
+                                                                         "widget": "monetary",
+                                                                         "display_currency": "website.pricelist_id.currency_id"
+                                                                }'></span>
                                                             </span>
                                                         </p>
                                                     </div>
@@ -1105,14 +1093,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">
@@ -1131,10 +1116,11 @@
                                                         </p>
                                                         <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>
-                                                                <span t-esc="product.website_price" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
+                                                                <span t-field="product.lst_price"
+                                                                      t-field-options='{
+                                                                         "widget": "monetary",
+                                                                         "display_currency": "website.pricelist_id.currency_id"
+                                                                }'></span>
                                                             </span>
                                                         </p>
                                                     </div>
@@ -1157,14 +1143,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">
@@ -1183,10 +1166,11 @@
                                                         </p>
                                                         <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>
-                                                                <span t-esc="product.website_price" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
+                                                                <span t-field="product.lst_price"
+                                                                      t-field-options='{
+                                                                         "widget": "monetary",
+                                                                         "display_currency": "website.pricelist_id.currency_id"
+                                                                }'></span>
                                                             </span>
                                                         </p>
                                                     </div>
@@ -1209,14 +1193,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">
@@ -1235,10 +1216,11 @@
                                                         </p>
                                                         <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>
-                                                                <span t-esc="product.website_price" t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/>
+                                                                <span t-field="product.lst_price"
+                                                                      t-field-options='{
+                                                                         "widget": "monetary",
+                                                                         "display_currency": "website.pricelist_id.currency_id"
+                                                                }'></span>
                                                             </span>
                                                         </p>
                                                     </div>
@@ -1339,7 +1321,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 +1337,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 +1354,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 +1368,32 @@
     </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>

Datei-Diff unterdrückt, da er zu groß ist
+ 333 - 374
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>

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.