Browse Source

[ADD] Initial Commit 'theme_classic_store'

pull/175/head
Ajmal Cybro 4 years ago
parent
commit
5f9d09f412
  1. 24
      theme_classic_store/__init__.py
  2. 69
      theme_classic_store/__manifest__.py
  3. 25
      theme_classic_store/controller/__init__.py
  4. 161
      theme_classic_store/controller/price_filter.py
  5. 60
      theme_classic_store/controller/s_category.py
  6. 64
      theme_classic_store/controller/s_trending.py
  7. 9
      theme_classic_store/data/classic_store_config_data.xml
  8. 24
      theme_classic_store/models/__init__.py
  9. 67
      theme_classic_store/models/classic_store_config.py
  10. 47
      theme_classic_store/models/product_category.py
  11. 2
      theme_classic_store/security/ir.model.access.csv
  12. BIN
      theme_classic_store/static/description/banner.png
  13. BIN
      theme_classic_store/static/description/icon.png
  14. BIN
      theme_classic_store/static/description/images/1.jpg
  15. BIN
      theme_classic_store/static/description/images/2.jpg
  16. BIN
      theme_classic_store/static/description/images/3.jpg
  17. BIN
      theme_classic_store/static/description/images/4.jpg
  18. BIN
      theme_classic_store/static/description/images/5.jpg
  19. BIN
      theme_classic_store/static/description/images/6.jpg
  20. BIN
      theme_classic_store/static/description/images/Cybrosys.png
  21. BIN
      theme_classic_store/static/description/images/categories.jpg
  22. BIN
      theme_classic_store/static/description/images/cybro-logo-oca-no-text.png
  23. BIN
      theme_classic_store/static/description/images/cybro-logo-oca.png
  24. BIN
      theme_classic_store/static/description/images/demo-1.jpg
  25. BIN
      theme_classic_store/static/description/images/demo-2.jpg
  26. BIN
      theme_classic_store/static/description/images/demo-3.jpg
  27. BIN
      theme_classic_store/static/description/images/demo-4.jpg
  28. BIN
      theme_classic_store/static/description/images/demo-5.jpg
  29. BIN
      theme_classic_store/static/description/images/hero.png
  30. BIN
      theme_classic_store/static/description/images/laptop-screenshots.jpg
  31. BIN
      theme_classic_store/static/description/images/phone-screenshots.jpg
  32. 295
      theme_classic_store/static/description/index.html
  33. BIN
      theme_classic_store/static/description/theme_screenshot.png
  34. 7
      theme_classic_store/static/src/css/animate.min.css
  35. 29
      theme_classic_store/static/src/css/classic_store.css
  36. 6
      theme_classic_store/static/src/css/owl.carousel.min.css
  37. 6
      theme_classic_store/static/src/css/owl.theme.default.min.css
  38. 4366
      theme_classic_store/static/src/css/style.css
  39. 40
      theme_classic_store/static/src/css/style.css.map
  40. BIN
      theme_classic_store/static/src/images/404/404.png
  41. BIN
      theme_classic_store/static/src/images/about/about.jpg
  42. BIN
      theme_classic_store/static/src/images/about/er.jpg
  43. BIN
      theme_classic_store/static/src/images/account/Account1.png
  44. BIN
      theme_classic_store/static/src/images/apps/apple-app-store.png
  45. BIN
      theme_classic_store/static/src/images/apps/google-play-store.png
  46. BIN
      theme_classic_store/static/src/images/banner/hero.jpg
  47. BIN
      theme_classic_store/static/src/images/blog/post-1.jpg
  48. BIN
      theme_classic_store/static/src/images/blog/post-2.jpg
  49. BIN
      theme_classic_store/static/src/images/blog/post-3.jpg
  50. BIN
      theme_classic_store/static/src/images/blog/post-4.jpg
  51. BIN
      theme_classic_store/static/src/images/blog/post-5.jpg
  52. BIN
      theme_classic_store/static/src/images/blog/video-icon.png
  53. BIN
      theme_classic_store/static/src/images/call-to-action/cta-background.jpg
  54. BIN
      theme_classic_store/static/src/images/call-to-action/sd.jpg
  55. BIN
      theme_classic_store/static/src/images/categories/c1 (1).jpg
  56. BIN
      theme_classic_store/static/src/images/categories/c1 (2).jpg
  57. BIN
      theme_classic_store/static/src/images/categories/c1 (3).jpg
  58. BIN
      theme_classic_store/static/src/images/categories/c1 (4).jpg
  59. BIN
      theme_classic_store/static/src/images/categories/c1 (5).jpg
  60. BIN
      theme_classic_store/static/src/images/categories/c1 (6).jpg
  61. BIN
      theme_classic_store/static/src/images/categories/c1 (7).jpg
  62. BIN
      theme_classic_store/static/src/images/categories/c1 (8).jpg
  63. BIN
      theme_classic_store/static/src/images/footer/phone-icon.png
  64. BIN
      theme_classic_store/static/src/images/logo-footer.png
  65. BIN
      theme_classic_store/static/src/images/logo.png
  66. BIN
      theme_classic_store/static/src/images/products/22 (1).jpg
  67. BIN
      theme_classic_store/static/src/images/products/22 (2).jpg
  68. BIN
      theme_classic_store/static/src/images/products/22 (3).jpg
  69. BIN
      theme_classic_store/static/src/images/products/22 (4).jpg
  70. BIN
      theme_classic_store/static/src/images/products/products-1.jpg
  71. BIN
      theme_classic_store/static/src/images/products/products-2.jpg
  72. BIN
      theme_classic_store/static/src/images/products/products-3.jpg
  73. BIN
      theme_classic_store/static/src/images/products/products-4.jpg
  74. BIN
      theme_classic_store/static/src/images/snippets/about_us_block.jpg
  75. BIN
      theme_classic_store/static/src/images/snippets/banner_block.jpg
  76. BIN
      theme_classic_store/static/src/images/snippets/categories_block.jpg
  77. BIN
      theme_classic_store/static/src/images/snippets/counter_block.jpg
  78. BIN
      theme_classic_store/static/src/images/snippets/listing_block.jpg
  79. BIN
      theme_classic_store/static/src/images/snippets/packages_block.jpg
  80. BIN
      theme_classic_store/static/src/images/snippets/search_bar_block.jpg
  81. BIN
      theme_classic_store/static/src/images/snippets/sub_header_block.jpg
  82. BIN
      theme_classic_store/static/src/images/snippets/team_members_block.jpg
  83. BIN
      theme_classic_store/static/src/images/snippets/trending-products.jpg
  84. BIN
      theme_classic_store/static/src/images/subscription/subscription-back.jpg
  85. BIN
      theme_classic_store/static/src/images/team/team1.jpg
  86. BIN
      theme_classic_store/static/src/images/team/team2.jpg
  87. BIN
      theme_classic_store/static/src/images/team/team3.jpg
  88. BIN
      theme_classic_store/static/src/images/team/team4.jpg
  89. BIN
      theme_classic_store/static/src/images/user/user-thumb.jpg
  90. 3448
      theme_classic_store/static/src/js/owl.carousel.js
  91. 7
      theme_classic_store/static/src/js/owl.carousel.min.js
  92. 25
      theme_classic_store/static/src/js/price_filter.js
  93. 18
      theme_classic_store/static/src/js/snippets_category.js
  94. 63
      theme_classic_store/static/src/js/snippets_trending.js
  95. 38
      theme_classic_store/static/src/scss/_common.scss
  96. 352
      theme_classic_store/static/src/scss/_normalize.scss
  97. 38
      theme_classic_store/static/src/scss/_variables.scss
  98. 360
      theme_classic_store/static/src/scss/classic_store_style.scss
  99. 121
      theme_classic_store/static/src/scss/components/_banner.scss
  100. 224
      theme_classic_store/static/src/scss/components/_button.scss

24
theme_classic_store/__init__.py

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from . import controller
from . import models

69
theme_classic_store/__manifest__.py

@ -0,0 +1,69 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
{
'name': 'Theme Classic Store',
'description': 'Theme Classic Store for Odoo Website and e-Commerce',
'summary': 'Theme Classic Store is an attractive eCommerce Website theme. '
'The theme comes with many useful and stylish snippets',
'version': '14.0.1.0.0',
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'website': 'https://www.cybrosys.com',
'category': 'Theme/eCommerce',
'depends': ['website_blog', 'website_sale_wishlist', 'website_sale_comparison'],
'data': [
'views/classic_store_config.xml',
'data/classic_store_config_data.xml',
'security/ir.model.access.csv',
'views/layout.xml',
'views/assets.xml',
'views/footer.xml',
'views/header.xml',
'views/contact_us.xml',
'views/blog.xml',
'views/shop.xml',
'views/shop_sidebar.xml',
'views/404.xml',
'views/product_view.xml',
'views/product_view_inherits.xml',
'views/snippets/about.xml',
'views/snippets/banner.xml',
'views/snippets/categories.xml',
'views/snippets/listing.xml',
'views/snippets/package.xml',
'views/snippets/team.xml',
'views/snippets/counter.xml',
'views/snippets/sub_header.xml',
'views/snippets/search.xml',
'views/snippets/trending.xml',
],
'images': [
'static/description/banner.png',
'static/description/theme_screenshot.png',
],
'license': 'LGPL-3',
'installable': True,
'application': False,
'auto_install': False,
}

25
theme_classic_store/controller/__init__.py

@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from . import s_category
from . import price_filter
from . import s_trending

161
theme_classic_store/controller/price_filter.py

@ -0,0 +1,161 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from werkzeug.exceptions import NotFound
from odoo.addons.http_routing.models.ir_http import slug
from odoo.addons.website.controllers.main import QueryURL
from odoo.addons.website_sale.controllers.main import TableCompute, WebsiteSale
from odoo import http
from odoo.http import request
class PriceFilter(WebsiteSale):
@http.route()
def shop(self, page=0, category=None, search='', ppg=False, **post):
"""Override WebsiteSale shop for Price Filter"""
maximum = minimum = 0
add_qty = int(post.get('add_qty', 1))
Category = request.env['product.public.category']
if category:
category = Category.search([('id', '=', int(category))], limit=1)
if not category or not category.can_access_from_current_website():
raise NotFound()
else:
category = Category
if ppg:
try:
ppg = int(ppg)
post['ppg'] = ppg
except ValueError:
ppg = False
if not ppg:
ppg = request.env['website'].get_current_website().shop_ppg or 20
ppr = request.env['website'].get_current_website().shop_ppr or 4
product_ids = request.env['product.template'].search(
['&', ('sale_ok', '=', True), ('active', '=', True)])
if product_ids and product_ids.ids:
request.cr.execute(
'select min(list_price),max(list_price) from product_template where id in %s',
(tuple(product_ids.ids),))
list_prices = request.cr.fetchall()
minimum = list_prices[0][0]
maximum = list_prices[0][1]
attrib_list = request.httprequest.args.getlist('attrib')
attrib_values = [[int(x) for x in v.split("-")] for v in attrib_list if
v]
attributes_ids = {v[0] for v in attrib_values}
attrib_set = {v[1] for v in attrib_values}
domain = self._get_search_domain(search, category, attrib_values)
if post.get('minimum') and post.get('maximum'):
domain = domain + [('list_price', '>=', float(post.get('minimum'))),
('list_price', '<=', float(post.get('maximum')))]
keep = QueryURL('/shop', category=category and int(category),
search=search, attrib=attrib_list,
order=post.get('order'), minimum=post.get('minimum'),
maximum=post.get('maximum'))
pricelist_context, pricelist = self._get_pricelist_context()
request.context = dict(request.context, pricelist=pricelist.id,
partner=request.env.user.partner_id)
url = "/shop"
if search:
post["search"] = search
if attrib_list:
post['attrib'] = attrib_list
Product = request.env['product.template'].with_context(bin_size=True)
search_product = Product.search(domain,
order=self._get_search_order(post))
website_domain = request.website.website_domain()
categs_domain = [('parent_id', '=', False)] + website_domain
if search:
search_categories = Category.search(
[('product_tmpl_ids', 'in',
search_product.ids)] + website_domain).parents_and_self
categs_domain.append(('id', 'in', search_categories.ids))
else:
search_categories = Category
categs = Category.search(categs_domain)
if category:
url = "/shop/category/%s" % slug(category)
product_count = len(search_product)
pager = request.website.pager(url=url, total=product_count, page=page,
step=ppg, scope=7, url_args=post)
offset = pager['offset']
products = search_product[offset: offset + ppg]
ProductAttribute = request.env['product.attribute']
if products:
# get all products without limit
attributes = ProductAttribute.search(
[('product_tmpl_ids', 'in', search_product.ids)])
else:
attributes = ProductAttribute.browse(attributes_ids)
layout_mode = request.session.get('website_sale_shop_layout_mode')
if not layout_mode:
if request.website.viewref(
'website_sale.products_list_view').active:
layout_mode = 'list'
else:
layout_mode = 'grid'
values = {
'search': search,
'category': category,
'attrib_values': attrib_values,
'attrib_set': attrib_set,
'pager': pager,
'pricelist': pricelist,
'add_qty': add_qty,
'products': products,
'search_count': product_count, # common for all searchbox
'bins': TableCompute().process(products, ppg, ppr),
'ppg': ppg,
'ppr': ppr,
'categories': categs,
'attributes': attributes,
'keep': keep,
'search_categories_ids': search_categories.ids,
'layout_mode': layout_mode,
'minimum': minimum,
'maximum': maximum,
}
if category:
values['main_object'] = category
return request.render("website_sale.products", values)

60
theme_classic_store/controller/s_category.py

@ -0,0 +1,60 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import http
from odoo.http import request
class WebsiteClassicCategory(http.Controller):
@http.route('/classic_product_category', auth="public", type='json',
website=True)
def get_product_categories(self):
product_ids = request.env['product.template'].sudo().search(
[('website_published', '=', True)])
product_category_ids = request.env[
'product.public.category'].sudo().search([])
product_categories_main_list = []
for rec in product_category_ids:
if rec.child_id:
product_categories_main_list.append(rec)
category_counter = {}
for rec in product_category_ids:
category_counter[rec] = 0
for rec in product_ids:
for cat in rec.public_categ_ids:
if cat in product_category_ids:
category_counter[cat] += 1
values = {
'product_categories_main': product_categories_main_list,
'counter': category_counter
}
response = http.Response(
template='theme_classic_store.s_classic_store_categories',
qcontext=values)
return response.render()

64
theme_classic_store/controller/s_trending.py

@ -0,0 +1,64 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import http, fields
from odoo.http import request
import datetime
class WebsiteClassicTrending(http.Controller):
@http.route('/classic_product_trending', auth="public", type='json',
website=True)
def get_trending_products(self):
classic_config = request.env[
'classic_store.config'].sudo().search([])
trending_products = classic_config.trending_product_ids
if not trending_products:
products = request.env['product.template'].sudo().search([])
for each in products:
each.views = 0
each.most_viewed = False
date = fields.Datetime.now()
date_before = date - datetime.timedelta(days=7)
products = request.env['website.track'].sudo().search(
[('visit_datetime', '<=', date),
('visit_datetime', '>=', date_before),
('product_id', '!=', False)])
for pro in products:
pro.product_id.views = pro.product_id.views + 1
trending_products = request.env['product.template'].sudo().search(
[('is_published', '=', True),
('views', '!=', 0)],
order='views desc', limit=4)
values = {
'trending_products': trending_products
}
response = http.Response(
template='theme_classic_store.s_classic_store_trending',
qcontext=values)
return response.render()

9
theme_classic_store/data/classic_store_config_data.xml

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data noupdate="1">
<record id="classic_store_config_data" model="classic_store.config">
<field name="name">Classic Store Configuration</field>
<field name="max_price">100000</field>
</record>
</data>
</odoo>

24
theme_classic_store/models/__init__.py

@ -0,0 +1,24 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from . import product_category
from . import classic_store_config

67
theme_classic_store/models/classic_store_config.py

@ -0,0 +1,67 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import models, fields
class ClassicStoreConfig(models.Model):
_name = 'classic_store.config'
name = fields.Char('Name')
max_price = fields.Integer(string="Maximum Price", default=100000,
help="Maximum amount to apply in product filter.")
trending_product_ids = fields.Many2many('product.template',
string="Trending Products",
help="Manually enter trending "
"products or leave the field "
"blank to automatically "
"add the trending products.",
domain=[
('is_published', '=', True)])
class ThemeClassicStore(models.AbstractModel):
_inherit = 'theme.utils'
def _theme_classic_store(self, mod):
self.disable_view('website_sale_comparison.add_to_compare')
self.disable_view('website_sale_comparison.product_attributes_body')
self.disable_view('website_sale.add_grid_or_list_option')
self.disable_view('website_sale.products_add_to_cart')
self.disable_view('website_sale_comparison.add_to_compare')
self.disable_view('website_sale.product_buy_now')
self.disable_view('website_sale_wishlist.add_to_wishlist')
self.disable_view('website_sale.add_grid_or_list_option')
self.disable_view('website_sale.products_images_full')
self.disable_view('website_sale.products_list_view')
self.disable_view('website_sale.recommended_products')
self.disable_view('website_sale.product_picture_magnify_auto')
self.disable_view('website_sale.product_buy_now')
self.disable_view('website_sale.product_comment')
self.disable_view('website_sale.product_picture_magnify')
self.disable_view('website_sale.product_variants')
self.disable_view('website_sale_comparison.product_attributes_body')
self.disable_view('website_sale.recently_viewed_products_product')
self.disable_view('website_sale.ecom_show_extra_fields')
self.disable_view('website_sale.product_custom_text')
self.disable_view('website_sale_wishlist.product_add_to_wishlist')

47
theme_classic_store/models/product_category.py

@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# You can modify it under the terms of the GNU LESSER
# GENERAL PUBLIC LICENSE (LGPL v3), Version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details.
#
# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE
# (LGPL v3) along with this program.
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
from odoo import models, fields
class ProductPublicCategory(models.Model):
_inherit = 'product.public.category'
category_count = fields.Integer("Count", compute="_compute_category_count")
def _compute_category_count(self):
for ct in self:
product_ids = self.env['product.template'].search(
[('website_published', '=', True)])
count = 0
for rec in product_ids:
for cat in rec.public_categ_ids:
if cat in ct:
count += 1
ct.category_count = count
class Product(models.Model):
_inherit = 'product.template'
views = fields.Integer('Views')
most_viewed = fields.Boolean('Most Viewed')

2
theme_classic_store/security/ir.model.access.csv

@ -0,0 +1,2 @@
id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
access_theme_classic_store,classic_store.config,model_classic_store_config,base.group_user,1,1,1,1
1 id name model_id/id group_id/id perm_read perm_write perm_create perm_unlink
2 access_theme_classic_store classic_store.config model_classic_store_config base.group_user 1 1 1 1

BIN
theme_classic_store/static/description/banner.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

BIN
theme_classic_store/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
theme_classic_store/static/description/images/1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 KiB

BIN
theme_classic_store/static/description/images/2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 KiB

BIN
theme_classic_store/static/description/images/3.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 KiB

BIN
theme_classic_store/static/description/images/4.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

BIN
theme_classic_store/static/description/images/5.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 363 KiB

BIN
theme_classic_store/static/description/images/6.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 KiB

BIN
theme_classic_store/static/description/images/Cybrosys.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
theme_classic_store/static/description/images/categories.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
theme_classic_store/static/description/images/cybro-logo-oca-no-text.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
theme_classic_store/static/description/images/cybro-logo-oca.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
theme_classic_store/static/description/images/demo-1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 KiB

BIN
theme_classic_store/static/description/images/demo-2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 360 KiB

BIN
theme_classic_store/static/description/images/demo-3.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

BIN
theme_classic_store/static/description/images/demo-4.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

BIN
theme_classic_store/static/description/images/demo-5.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 KiB

BIN
theme_classic_store/static/description/images/hero.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

BIN
theme_classic_store/static/description/images/laptop-screenshots.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 522 KiB

BIN
theme_classic_store/static/description/images/phone-screenshots.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 KiB

295
theme_classic_store/static/description/index.html

@ -0,0 +1,295 @@
<!-- Hero Section -->
<div class="container pt-4 mt-4 rounded" style="background-color: #f0f2f4; font-family: Montserrat, 'sans-serif';">
<div class="row">
<div class="col-lg-12 mb-4">
<img src="images/Cybrosys.png" alt="Cybrosys Logo" style="width: 120px; height: auto;">
<hr style="border-color: #e1e5e9;" />
</div>
</div>
<div class="row">
<div class="col-lg-12 text-center">
<img src="images/hero.png" width=60% height="auto" class="mb-4" alt="Theme Screenshot">
</div>
<div class="col-lg-12 text-center">
<h1 class="mt-4">Theme Classic Store</h1>
<p class="lead mb-4" style="max-width: 700px; margin: 0 auto;">
Theme Classic Store is an attractive and unique front-end theme mainly suitable for eCommerce website. Many
custom designed snippets facilitates to add better user experience. Contains Categories Snippet with subcategories and its product count, Shop categories sidebar with product count, Shop price filter. This theme fully customized the eCommerce website, shop view, custom categories view, product view, contact-us page...etc.
</p>
</div>
</div>
<!-- End of Hero Section -->
<!-- Alternate Section -->
<div class="row p-4">
<div class="col-lg-6 px-4" style="margin-top: 100px;">
<h2>Desktop View</h2>
<p class="lead">
Attractive webpages with elegant desktop view. User friendly and Modern looking theme makes your page more Stylish and Beautiful.
</p>
</div>
<div class="col-lg-6 px-4">
<img style="border-radius: 0.5em;" src="images/laptop-screenshots.jpg" width="90%" height="auto"
class="mb-4 shadow-sm" alt="Theme Screenshot">
</div>
</div>
<div class="row p-4">
<div class="col-lg-6 px-4">
<img style="border-radius: 0.5em;" src="images/phone-screenshots.jpg" width="90%" height="auto"
class="mb-4 shadow-sm" alt="Theme Screenshot">
</div>
<div class="col-lg-6 px-4" style="margin-top: 100px;">
<h2>Mobile View</h2>
<p class="lead">
The webpages are Stylish, Attractive and Easy to use in mobile view also.
</p>
</div>
</div>
<!-- End of Alternate Section -->
<!-- Two Columns Section -->
<div class="row p-4">
<!-- Column 1 -->
<div class="col-lg-6">
<div class="row">
<div class="col-lg-12">
<img style="border-radius: 0.5em;" src="images/1.jpg" width="100%" height="auto"
class="mb-4 shadow-sm" alt="Theme Screenshot">
</div>
<div class="col-lg-12 mt-4">
<h2 class="text-center">Home Page</h2>
<p class="lead text-center">
Stylish Home page which is easily customizable. Simple and attractive header with
page menus that has animated styles.
</p>
</div>
</div>
</div>
<!-- End of Column 1 -->
<!-- Column 2 -->
<div class="col-lg-6">
<div class="row">
<div class="col-lg-12">
<img style="border-radius: 0.5em;" src="images/2.jpg" width="100%" height="auto"
class="mb-4 shadow-sm" alt="Theme Screenshot">
</div>
<div class="col-lg-12 mt-4">
<h2 class="text-center">Shop page</h2>
<p class="lead text-center">
Shop Page with additional features like Category sidebar with product counts and Price filter.
</p>
</div>
</div>
</div>
<!-- End of Column 2 -->
</div>
<!-- End of Two Columns Section -->
<!-- One Column Section -->
<div class="row p-4">
<div class="col-lg-6">
<img style="border-radius: 0.5em;" src="images/3.jpg" width="90%" height="auto" class="mb-4 shadow-sm"
alt="Theme Screenshot">
</div>
<div class="col-lg-6" style="padding-top: 100px;">
<h2>Overview</h2>
<p class="lead">
Theme Classic Store is a simple and elegant theme for your odoo website. It is easy to customize and use. It comes with customizable snippets that can be dragged and dropped to make attractive webpages.
Simple and stylish header, footer and page banners.
</p>
</div>
</div>
<!-- End of One Column Section -->
<!-- Categories Section -->
<div class="row p-4">
<div class="col-lg-6" style="padding-top: 100px;">
<h2>Categories</h2>
<p class="lead">
Categories Snippet which shows all the main categories of the e-commerce shop with its sub categories and corresponding product count. The sequence of apperance, image and count is dynamically updated from backend data.
</p>
</div>
<div class="col-lg-6">
<img style="border-radius: 0.5em;" src="images/categories.jpg" width="90%" height="auto"
class="mb-4 shadow-sm" alt="Theme Screenshot">
</div>
</div>
<!-- End of Categories Section -->
<!-- Two Columns Section -->
<div class="row p-4">
<!-- Column 1 -->
<div class="col-lg-4">
<div class="row">
<div class="col-lg-12">
<img style="border-radius: 0.5em;" src="images/4.jpg" width="100%" height="auto"
class="mb-4 shadow-sm" alt="Theme Screenshot">
</div>
<div class="col-lg-12 mt-4">
<h2 class="text-center">Product Preview</h2>
<p class="lead text-center">
Product preview page with simple and stylish display features and additional Product Details, Specification and Review Tabs.
</p>
</div>
</div>
</div>
<!-- End of Column 1 -->
<!-- Column 2 -->
<div class="col-lg-4">
<div class="row">
<div class="col-lg-12">
<img style="border-radius: 0.5em;" src="images/5.jpg" width="100%" height="auto"
class="mb-4 shadow-sm" alt="Theme Screenshot">
</div>
<div class="col-lg-12 mt-4">
<h2 class="text-center">Blog</h2>
<p class="lead text-center">
Blog Page with stylish banner and list view.
</p>
</div>
</div>
</div>
<!-- End of Column 2 -->
<!-- Column 4 -->
<div class="col-lg-4">
<div class="row">
<div class="col-lg-12">
<img style="border-radius: 0.5em;" src="images/6.jpg" width="100%" height="auto"
class="mb-4 shadow-sm" alt="Theme Screenshot">
</div>
<div class="col-lg-12 mt-4">
<h2 class="text-center">About Us</h2>
<p class="lead text-center">
About Us page which can be easily created and customized using snippets.
</p>
</div>
</div>
</div>
<!-- End of Column 4 -->
</div>
<!-- End of Two Columns Section -->
<!-- Demo Pages -->
<section class="oe_container">
<div class="row" style="margin: 60px auto -30px;">
<div class="col-lg-12 text-center">
<h4 class="mt-4">Demo Pages</h4>
<hr style="border-width: 3px; border-color: #0984e3; width: 100px;">
</div>
</div>
<div class="row" style="margin: 40px auto; border-radius: 15px; padding: 38px;">
<div class="col-sm-6 col-md-4 px-2">
<div class="bg-white shadow overflow-hidden mb32"
style="border-radius: 15px; width: 300px; padding-bottom: 0; margin-right: 30px;">
<img src="./images/demo-1.jpg" width="300px" height="auto">
<h6 class="text-center my-3">Home</h6>
<hr style="border-width: 5px; border-color: #0984e3; width: 150px; margin-bottom: 0;">
</div>
</div>
<div class="col-sm-6 col-md-4 px-2">
<div class="bg-white shadow overflow-hidden mb32"
style="border-radius: 15px; width: 300px; padding-bottom: 0;">
<img src="./images/demo-3.jpg" width="300px" height="auto">
<h6 class="text-center my-3">Shop</h6>
<hr style="border-width: 5px; border-color: #05c46b; width: 150px; margin-bottom: 0;">
</div>
</div>
<div class="col-sm-6 col-md-4 px-2">
<div class="bg-white shadow overflow-hidden mb32"
style="border-radius: 15px; width: 300px; padding-bottom: 0;">
<img src="./images/demo-2.jpg" width="300px" height="auto">
<h6 class="text-center my-3">Blog</h6>
<hr style="border-width: 5px; border-color: #f44f52; width: 150px; margin-bottom: 0;">
</div>
</div>
</div>
<div class="row d-flex justify-content-center" style="margin: 40px auto; border-radius: 15px; padding: 38px;">
<div class="col-sm-6 col-md-4 px-2">
<div class="bg-white shadow overflow-hidden mb32"
style="border-radius: 15px; width: 300px; padding-bottom: 0;">
<img src="./images/demo-4.jpg" width="300px" height="auto">
<h6 class="text-center my-3">Product Preview</h6>
<hr style="border-width: 5px; border-color: #ffa801; width: 150px; margin-bottom: 0;">
</div>
</div>
<div class="col-sm-6 col-md-4 px-2">
<div class="bg-white shadow overflow-hidden mb32"
style="border-radius: 15px; width: 300px; padding-bottom: 0;">
<img src="./images/demo-5.jpg" width="300px" height="auto">
<h6 class="text-center my-3">About Us Page</h6>
<hr style="border-width: 5px; border-color: #3c40c6; width: 150px; margin-bottom: 0;">
</div>
</div>
</div>
</section>
<!-- End of Demo Pages -->
<!-- Footer -->
<div class="row" style="margin-top: 4rem;">
<div class="col-lg-12 text-center">
<h2>Get Help</h2>
<hr style=" border: 2px solid #b22126; margin-top: 2px;" width="40px">
<p class="text-center" style="max-width: 650px; margin: 0 auto;">If you have anything to share with us
based
on
your use of this module, please let us know. We are ready to offer our support.</p>
</div>
</div>
<div class="row">
<div class="col px-4 pt-3 pb-2 shadow-sm"
style="background-color: #fff; max-width: 450px; border-radius: 0.5em; margin: 1em auto;">
<div class="row">
<div class="col-lg-8">
<h6><a href="mailto:info@cybrosys.com" target="_blank"
style="color: #050505; text-decoration: none;"><i
class="fa fa-envelope mr-2"></i>info@cybrosys.com</a></h6>
</div>
<div class="col-lg-4 d-flex justify-content-end" style="position: relative;">
<h6><a href="mailto:info@cybrosys.com" target="_blank"
style="color: #050505; text-decoration: none;"><i class="fa fa-chevron-right"></i></a>
</h6>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col px-4 pt-3 pb-2 shadow-sm"
style="background-color: #fff; max-width: 450px; border-radius: 0.5em; margin: 1em auto;">
<div class="row">
<div class="col-lg-8">
<h6><a href="https://www.cybrosys.com" target="_blank"
style="color: #050505; text-decoration: none;"><i
class="fa fa-globe mr-2"></i>www.cybrosys.com</a></h6>
</div>
<div class="col-lg-4 d-flex justify-content-end" style="position: relative;">
<h6><a href="https://www.cybrosys.com" target="_blank"
style="color: #050505; text-decoration: none;"><i class="fa fa-chevron-right"></i></a>
</h6>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12 mt-4 mb-2 text-center">
<p style="font-weight: bold">A Quality Theme From</p>
</div>
<div class="col-lg-12 text-center">
<img src="images/cybro-logo-oca.png" width="80px" height="auto">
</div>
</div>
<!-- End of Footer -->
</div>

BIN
theme_classic_store/static/description/theme_screenshot.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 480 KiB

7
theme_classic_store/static/src/css/animate.min.css

File diff suppressed because one or more lines are too long

29
theme_classic_store/static/src/css/classic_store.css

@ -0,0 +1,29 @@
.page-link {
position: relative;
display: block;
padding: .5rem .75rem;
margin-left: -1px;
line-height: 1.25;
color: #763242 !important;
background-color: #fff;
border: 1px solid #dee2e6;
}
.page-item.active .page-link {
z-index: 3;
color: #fff;
background-color: #c09f7f !important;
border-color: #c09f7f !important;
}
.page-link:hover {
z-index: 2;
color: #0056b3;
text-decoration: none;
background-color: #763242 !important;
border-color: #dee2e6;
}

6
theme_classic_store/static/src/css/owl.carousel.min.css

@ -0,0 +1,6 @@
/**
* Owl Carousel v2.3.4
* Copyright 2013-2018 David Deutsch
* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
*/
.owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y;touch-action:manipulation;-moz-backface-visibility:hidden}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item,.owl-carousel .owl-wrapper{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel .owl-nav button.owl-next,.owl-carousel .owl-nav button.owl-prev,.owl-carousel button.owl-dot{background:0 0;color:inherit;border:none;padding:0!important;font:inherit}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-ms-touch-action:pan-y;touch-action:pan-y;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{animation-duration:1s;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{animation-name:fadeOut}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item .owl-lazy:not([src]),.owl-carousel .owl-item .owl-lazy[src^=""]{max-height:0}.owl-carousel .owl-item img.owl-lazy{transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%}

6
theme_classic_store/static/src/css/owl.theme.default.min.css

@ -0,0 +1,6 @@
/**
* Owl Carousel v2.3.4
* Copyright 2013-2018 David Deutsch
* Licensed under: SEE LICENSE IN https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE
*/
.owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-theme .owl-nav [class*=owl-]:hover{background:#869791;color:#FFF;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#869791}

4366
theme_classic_store/static/src/css/style.css

File diff suppressed because it is too large

40
theme_classic_store/static/src/css/style.css.map

File diff suppressed because one or more lines are too long

BIN
theme_classic_store/static/src/images/404/404.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

BIN
theme_classic_store/static/src/images/about/about.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 491 KiB

BIN
theme_classic_store/static/src/images/about/er.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 MiB

BIN
theme_classic_store/static/src/images/account/Account1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
theme_classic_store/static/src/images/apps/apple-app-store.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
theme_classic_store/static/src/images/apps/google-play-store.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
theme_classic_store/static/src/images/banner/hero.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

BIN
theme_classic_store/static/src/images/blog/post-1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 MiB

BIN
theme_classic_store/static/src/images/blog/post-2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

BIN
theme_classic_store/static/src/images/blog/post-3.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 KiB

BIN
theme_classic_store/static/src/images/blog/post-4.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 812 KiB

BIN
theme_classic_store/static/src/images/blog/post-5.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

BIN
theme_classic_store/static/src/images/blog/video-icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
theme_classic_store/static/src/images/call-to-action/cta-background.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

BIN
theme_classic_store/static/src/images/call-to-action/sd.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
theme_classic_store/static/src/images/categories/c1 (1).jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

BIN
theme_classic_store/static/src/images/categories/c1 (2).jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 KiB

BIN
theme_classic_store/static/src/images/categories/c1 (3).jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

BIN
theme_classic_store/static/src/images/categories/c1 (4).jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

BIN
theme_classic_store/static/src/images/categories/c1 (5).jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 KiB

BIN
theme_classic_store/static/src/images/categories/c1 (6).jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 MiB

BIN
theme_classic_store/static/src/images/categories/c1 (7).jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

BIN
theme_classic_store/static/src/images/categories/c1 (8).jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 MiB

BIN
theme_classic_store/static/src/images/footer/phone-icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
theme_classic_store/static/src/images/logo-footer.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
theme_classic_store/static/src/images/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
theme_classic_store/static/src/images/products/22 (1).jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
theme_classic_store/static/src/images/products/22 (2).jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
theme_classic_store/static/src/images/products/22 (3).jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

BIN
theme_classic_store/static/src/images/products/22 (4).jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
theme_classic_store/static/src/images/products/products-1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 KiB

BIN
theme_classic_store/static/src/images/products/products-2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

BIN
theme_classic_store/static/src/images/products/products-3.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 KiB

BIN
theme_classic_store/static/src/images/products/products-4.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

BIN
theme_classic_store/static/src/images/snippets/about_us_block.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
theme_classic_store/static/src/images/snippets/banner_block.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
theme_classic_store/static/src/images/snippets/categories_block.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
theme_classic_store/static/src/images/snippets/counter_block.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
theme_classic_store/static/src/images/snippets/listing_block.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
theme_classic_store/static/src/images/snippets/packages_block.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
theme_classic_store/static/src/images/snippets/search_bar_block.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
theme_classic_store/static/src/images/snippets/sub_header_block.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
theme_classic_store/static/src/images/snippets/team_members_block.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
theme_classic_store/static/src/images/snippets/trending-products.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
theme_classic_store/static/src/images/subscription/subscription-back.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 KiB

BIN
theme_classic_store/static/src/images/team/team1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

BIN
theme_classic_store/static/src/images/team/team2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

BIN
theme_classic_store/static/src/images/team/team3.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
theme_classic_store/static/src/images/team/team4.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
theme_classic_store/static/src/images/user/user-thumb.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

3448
theme_classic_store/static/src/js/owl.carousel.js

File diff suppressed because it is too large

7
theme_classic_store/static/src/js/owl.carousel.min.js

File diff suppressed because one or more lines are too long

25
theme_classic_store/static/src/js/price_filter.js

@ -0,0 +1,25 @@
odoo.define('theme_classic_store.price_filter', function (require) {
"use strict";
$(document).on("click", "#products_grid_before .price_filter_button", function(event){
event.preventDefault();
var amounts = $("#amount").val().split("-");
var min = amounts[0];
var max = amounts[1];
var max_amount = $("#classic_store_max_price").val();
if ((min == max_amount) && (max == max_amount)) {
$('#minimum').val(amounts[0]);
$('#maximum').val(amounts[1]);
} else if (min == max_amount){
$('#minimum').val(0);
$('#maximum').val(max_amount);
} else {
$('#minimum').val(amounts[0]);
$('#maximum').val(amounts[1]);
}
$("#products_grid_before form.js_attributes").submit();
});
})

18
theme_classic_store/static/src/js/snippets_category.js

@ -0,0 +1,18 @@
odoo.define('theme_classic_store.categories', function(require){
'use strict';
var Animation = require('website.content.snippets.animation');
var ajax = require('web.ajax');
Animation.registry.categories = Animation.Class.extend({
selector : '.categories',
start: function(){
var self = this;
ajax.jsonRpc('/classic_product_category', 'call', {})
.then(function (data) {
if(data){
self.$target.empty().append(data);
}
});
}
});
});

63
theme_classic_store/static/src/js/snippets_trending.js

@ -0,0 +1,63 @@
odoo.define('theme_classic_store.trending', function(require){
'use strict';
var Animation = require('website.content.snippets.animation');
var ajax = require('web.ajax');
Animation.registry.trending = Animation.Class.extend({
selector : '.trending',
start: function(){
var self = this;
ajax.jsonRpc('/classic_product_trending', 'call', {})
.then(function (data) {
if(data){
self.$target.empty().append(data);
self.product_carousel();
}
});
},
product_carousel: function (autoplay=false, items=4, slider_timing=5000) {
var self= this;
$(".owl-carousel").owlCarousel(
{
// animateOut: 'slideOutDown',
// animateIn: 'flipInX',
items: 3,
loop: true,
margin: 30,
stagePadding: 30,
smartSpeed: 450,
autoplay: true,
autoPlaySpeed: 1000,
autoPlayTimeout: 1000,
autoplayHoverPause: true,
onInitialized: self.counter(),
dots: true,
nav: true,
responsiveClass: true,
responsive: {
0: {
items: 1,
nav: true
},
600: {
items: 2,
nav: false
},
1000: {
items: 3,
nav: true,
loop: true
}
}
}
);
},
counter: function() {
var buttons = $('.owl-dots button');
buttons.each(function (index, item) {
$(item).find('span').text(index + 1);
});
}
});
});

38
theme_classic_store/static/src/scss/_common.scss

@ -0,0 +1,38 @@
*:focus {
outline: 0 !important;
box-shadow: none !important;
}
button:focus {
border: none;
outline: none;
}
button:active {
border: none;
outline: none;
box-shadow: none;
}
*{
list-style-type:none;
font-family: $font-default;
font-size: 14px;
&:focus,&:active{
outline: none !important;
}
}
*:hover{
-webkit-transition: 0.5s;
transition: 0.5s;
}
h3{
color: $color-brand2;
font-weight: 700;
font-size: $font-sub-heading;
letter-spacing: 0.05em;
text-align: center;
}

352
theme_classic_store/static/src/scss/_normalize.scss

@ -0,0 +1,352 @@
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS.
*/
html {
line-height: 1.15; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers.
*/
body {
margin: 0;
}
/**
* Render the `main` element consistently in IE.
*/
main {
display: block;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/* Grouping content
========================================================================== */
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/* Text-level semantics
========================================================================== */
/**
* Remove the gray background on active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none; /* 1 */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Remove the border on images inside links in IE 10.
*/
img {
border-style: none;
}
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: inherit; /* 1 */
font-size: 100%; /* 1 */
line-height: 1.15; /* 1 */
margin: 0; /* 2 */
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input { /* 1 */
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
text-transform: none;
}
/**
* Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box; /* 1 */
color: inherit; /* 2 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
white-space: normal; /* 1 */
}
/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
vertical-align: baseline;
}
/**
* Remove the default vertical scrollbar in IE 10+.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
/**
* Remove the inner padding in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/* Interactive
===========================================
=============================== */
/*
* Add the correct display in Edge, IE 10+, and Firefox.
*/
details {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Misc
========================================================================== */
/**
* Add the correct display in IE 10+.
*/
template {
display: none;
}
/**
* Add the correct display in IE 10.
*/
[hidden] {
display: none;
}

38
theme_classic_store/static/src/scss/_variables.scss

@ -0,0 +1,38 @@
//font
$font-default:'Mulish', sans-serif;
$font-offer: 'Roboto', sans-serif;
//colors
$color-brand: #763242;
$color-brand2: #565656;
$color-black:#000000;
$color-white:#fff;
$color-font:#797979;
$color-font2:#535353;
$color-green:#d8ceca;
$color-button:#c09f7f;
$color-footer:#121725;
$color-grey:#6c6a74;
$color-hover:#e9c939;
$color-border:#dedede;
$select-border-color: #ccc;
$select-focus-color: green;
//font-size
$font-h1:36px;
$font-h2: 18px;
$font-h3:36px;
$font-h4: 25px;
$font-h5:19px;
$font-h6: 18px;
$font-p:18px;
$font-size-banner:60px;
$font-heading:46px;
$font-sub-heading:30px;
$font-text:14px;

360
theme_classic_store/static/src/scss/classic_store_style.scss

@ -0,0 +1,360 @@
//font
$font-default:'Mulish', sans-serif;
$font-offer: 'Roboto', sans-serif;
//colors
$color-brand: #763242 !important;
$color-brand2: #565656;
$color-black:#000000;
$color-white:#fff;
$color-font:#797979;
$color-font2:#535353;
$color-green:#d8ceca;
$color-button:#c09f7f;
$color-footer:#121725;
$color-grey:#6c6a74;
$color-hover:#e9c939;
$color-border:#dedede;
$select-border-color: #ccc;
$select-focus-color: green;
//font-size
$font-h1:36px;
$font-h2: 18px;
$font-h3:36px;
$font-h4: 25px;
$font-h5:19px;
$font-h6: 18px;
$font-p:18px;
$font-size-banner:60px;
$font-heading:46px;
$font-sub-heading:30px;
$font-text:14px;
.products_pager {
padding: 10px 0;
margin-bottom: 0;
border: 0;
border-bottom: 1px solid #eee;
.dropdown-menu {
font-size: 13px;
line-height: 20px;
}
.o_wsale_products_searchbar_form {
.input-group {
.form-control {
font-size: 14px;
padding-top: 0;
padding-bottom: 0;
}
}
.btn {
padding-bottom: 0;
padding-top: 0;
font-weight: 500;
font-size: 13px;
}
.input-group-append {
.btn {
border-radius: 0;
letter-spacing: 0;
font-size: 16px;
}
}
}
&.mt-3 {
margin: 0;
padding: 0;
border: 0;
}
.o_website_sale_search {
display: none;
.input-group-append {
.btn {
background: $primary;
padding-top: 0;
padding-bottom: 0;
}
}
}
.dropdown {
.dropdown-menu {
font-size: 12px;
}
.dropdown-toggle {
&.btn-secondary {
background: none;
color: #333;
padding: 0 20px;
height: 35px;
line-height: 35px;
min-width: 125px;
border: 1px solid #999;
font-size: 14px;
font-weight: 500;
letter-spacing: 0;
border-radius: 0;
&:focus {
background: none;
box-shadow: none;
}
}
}
.dropdown-item {
padding: 5px 10px;
}
}
&.justify-content-center {
justify-content: center !important;
.pagination {
margin: 0 auto !important;
text-align: center;
}
}
.btn-group-toggle {
.btn {
padding: 10px;
font-size: 13px;
border-radius: 0 !important;
}
}
}
.btn-primary {
background-color: #763242 !important;
border-color: #c09f7f !important;
padding: 14px 31px;
color: #fff !important;
font-size: 16px;
font-weight: 600;
border-radius: 3px;
letter-spacing: 1px;
}
.btn-secondary {
background-color: #fff !important;
color: #763242 !important;
border-color: #000000 !important;
}
.categories {
margin-top: 90px;
padding-bottom: 90px;
.top_heading2 {
margin-bottom: 60px;
position: relative;
h3 {
color: $color-brand2;
font-weight: 700;
font-size: $font-sub-heading;
letter-spacing: 0.05em;
text-align: center;
}
p {
color: $color-font;
font-size: $font-p;
margin-top: 12px;
}
.bottom_line {
&:before {
content: " ";
display: block;
margin: 0 auto;
position: absolute;
bottom: -30px;
left: 0;
right: 0;
width: 127px;
height: 2px;
background-color: #e0e0e0;
}
&:after {
content: " ";
display: block;
margin: 0 auto;
position: absolute;
bottom: -30px;
left: 0;
right: 0;
width: 50px;
height: 4px;
background-color: $color-brand;
}
}
}
.wrapper {
padding-top: 40px;
.c_wrapper{
-webkit-box-shadow: 0px 7px 7px 4px rgba(240,240,240,1);
-moz-box-shadow: 0px 7px 7px 4px rgba(240,240,240,1);
box-shadow: 0px 7px 7px 4px rgba(240,240,240,1);
&:hover{
background-color: #eeeee6a8;
}
.categories_single {
text-align: center !important;
padding-bottom: 10px;
.icon {
color: $color-white;
background-color: #ccdb38;
height: 40px;
width: 40px;
padding-top: 13px;
border-radius: 50%;
font-size: 14px;
-webkit-box-shadow: 0 0 0px 4px #b4b87659;
-moz-box-shadow: 0 0 0px 4px #b4b87659;
box-shadow: 0 0 0px 4px #b4b87659;
margin-bottom: 15px;
}
.c_img{
height: 80px;
width: 80px;
padding-top: 0;
border-radius: 50%;
margin: auto;
-webkit-box-shadow: 0 0 0px 4px #b4b87659;
-moz-box-shadow: 0 0 0px 4px #b4b87659;
box-shadow: 0 0 0px 4px #b4b87659;
margin-bottom: 15px;
img{
width: 100%;
border-radius: 50%;
}
}
.fa-apple {
background-color: #d346bb;
-webkit-box-shadow: 0 0 0px 4px #d346bb88;
-moz-box-shadow: 0 0 0px 4px #d346bb88;
box-shadow: 0 0 0px 4px #d346bb88;
}
.fa-home {
background-color: #8f46d3;
-webkit-box-shadow: 0 0 0px 4px #8f46d367;
-moz-box-shadow: 0 0 0px 4px #8f46d367;
box-shadow: 0 0 0px 4px #8f46d367;
}
.fa-shopping-basket {
background-color: #46a6d3;
-webkit-box-shadow: 0 0 0px 4px #46a6d359;
-moz-box-shadow: 0 0 0px 4px #46a6d359;
box-shadow: 0 0 0px 4px #46a6d359;
}
.fa-briefcase {
background-color: #095775;
-webkit-box-shadow: 0 0 0px 4px#09567563;
-moz-box-shadow: 0 0 0px 4px#09567563;
box-shadow: 0 0 0px 4px#09567563;
}
.fa-car {
background-color: #539b51;
-webkit-box-shadow: 0 0 0px 4px #549b5169;
-moz-box-shadow: 0 0 0px 4px #549b5169;
box-shadow: 0 0 0px 4px #549b5169;
}
.fa-paw {
background-color: #d3ad46;
-webkit-box-shadow: 0 0 0px 4px #d3ad4675;
-moz-box-shadow: 0 0 0px 4px #d3ad4675;
box-shadow: 0 0 0px 4px #d3ad4675;
}
h5 {
color: $color-brand2;
font-weight: 700;
font-size: $font-h5;
}
}
.categories_list {
margin-top: 20px;
padding: 0 20px;
margin-bottom: 40px;
li {
display: flex;
justify-content: space-between;
color: $color-font;
padding-bottom: 20px;
align-items: center;
@media screen and(max-width:996px) {
justify-content: space-around;
}
a {
color: $color-font;
}
span{
background-color: $color-brand;
padding: 5px;
border-radius: 50%;
height: 35px;
width: 35px;
text-align: center;
color: white;
}
}
}
}
}
}
.ct_buttons .btn-cta {
background-color: #763242 !important;
padding: 14px 34px;
color: #fff !important;
font-size: 16px;
font-weight: 600;
border-radius: 3px;
letter-spacing: 0.05em;
margin-right: 10px;
}
.ct_buttons .btn-cta:hover {
color: #fff !important;
background: #c09f7f !important;
}
.ct_buttons .btn-ctb {
background-color: #fff !important;
padding: 14px 31px;
color: #000000 !important;
font-size: 16px;
font-weight: 600;
border-radius: 3px;
letter-spacing: 0.05em;
border: 1px solid;
border-color: #fff;
margin-right: 10px;
}
.ct_buttons .btn-ctb:hover {
border: 1px solid !important;
border-color: #fff !important;
color: #fff !important;
background: #763242 !important;
}
.ctaa {
background-image: linear-gradient(
9deg
, rgba(0, 0, 0, 0.548), rgba(0, 0, 0, 0.65)), url(./../images/call-to-action/cta-background.jpg);
text-align: center;
padding: 100PX 0;
}

121
theme_classic_store/static/src/scss/components/_banner.scss

@ -0,0 +1,121 @@
.banner{
background-image:linear-gradient(9deg, rgba(0, 0, 0, 0.82), rgba(0, 0, 0, 0.65)), url(./../images/banner/hero.jpg);
width: 100%;
// background-position: center;
background-size: cover;
background-repeat: no-repeat;
@media screen and(max-width:768px) {
height: 820px;
}
.card{background: transparent;
border: none;
padding: 100px 0 25px 0;
.card-body{
background: transparent;
text-align: center;
.card-title{
font-size: 65px;
font-weight: bold;
letter-spacing: 0.05em;
margin-bottom: 15px;
color: $color-brand;
@media screen and(max-width:768px) {
font-size: 50px;
}
}
.card-text{
font-size: 20px;
font-weight: 500;
color: $color-white;
@media screen and(max-width:768px) {
font-size: 16px;
font-weight: normal;
}
}
}
}
.populor{
padding-bottom: 180px;
h4{color: $color-white;
font-size: 16px;
font-weight: bolder;
margin-bottom: 30px;
@media screen and(max-width:768px) {
}
}
.populor-buttons{
a{
margin: 0 7px;
}
}
}
}
.search{
.wrapper{
background-color: $color-white;
-webkit-box-shadow: 1px 25px 19px -16px #c4c4c4;
-moz-box-shadow: 1px 25px 19px -16px #c4c4c4;
box-shadow: 1px 25px 19px -16px #c4c4c4;
border-radius: 3px;
padding: 35px 15px;
margin-top: -95px;
@media screen and(max-width:768px) {
margin-top: -276px;
}
.form-group{
input{
padding: 25px 5px;
}
select{
// padding: 25px 5px;
}
}
}
}
.banner_about{
background-color: $color-brand;
width: 100%;
text-align: center;
h3{
color: $color-white;
font-weight: bold;
font-size: 42px;
padding: 40px 0;
}
}
.banner_search{
background-color: $color-brand;
width: 100%;
text-align: center;
}

224
theme_classic_store/static/src/scss/components/_button.scss

@ -0,0 +1,224 @@
.btn {
border: none !important;
outline: 0 !important;
box-shadow: none !important;
-webkit-transition: 0.5s;
transition: 0.5s;
color: $color-button;
&-primary {
background-color:$color-button !important;
border-color: $color-button;
padding: 14px 31px;
color: $color-white !important;
font-size: 16px;
font-weight: 600;
border-radius:3px;
letter-spacing: 1px;
&:hover {
color: $color-white !important;
background-color: lighten($color-button, 5%) !important;
}
}
&-primary-s{
background-color:$color-button !important;
border-color: $color-button;
padding: 14px 31px;
color: $color-white !important;
font-size: 16px;
font-weight: 600;
border-radius:3px;
&:hover {
color: $color-white !important;
background-color: lighten($color-button, 5%) !important;
}
}
&-login {
background-color: transparent !important;
padding: 4px 18px;
color: $color-black !important;
font-size: 14px;
font-weight: 600;
border-radius:0;
border:1px solid !important;
border-color: 2px solid #dedede !important;
margin-left: 10px;
&:hover {
color: $color-white !important;
background-color: darken($color-button, 5%) !important;
}
}
&-listing {
background-color: $color-green !important;
padding: 5px 18px;
color: $color-white !important;
font-size: 14px;
font-weight: 600;
border-radius:0;
border:1px solid !important;
&:hover {
color: $color-white !important;
background-color: darken($color-green, 5%) !important;
border: none;
}
}
&-pop {
background-color: transparent !important;
padding: 4px 14px;
color: $color-white !important;
font-size: 12px;
font-weight: 600;
border-radius:0;
border:1px solid #404040 !important;
span{
padding-right: 5px;
}
&:hover {
color: $color-white !important;
}
}
&-cta {
background-color:$color-brand !important;
padding: 14px 34px;
color: $color-white !important;
font-size: 16px;
font-weight: 600;
border-radius:3px;
letter-spacing: 0.05em;
margin-right: 10px;
&:hover {
color: $color-white !important;
background: $color-button !important;
}
}
&-ctb {
background-color:$color-white !important;
padding: 14px 31px;
color: $color-black !important;
font-size: 16px;
font-weight: 600;
border-radius:3px;
letter-spacing: 0.05em;
border: 1px solid;
border-color: $color-white;
margin-right: 10px;
&:hover {
border: 1px solid !important;
border-color: $color-white !important;
color: $color-white !important;
background: $color-brand !important;
}
}
&-profile {
background-color: $color-brand !important;
padding: 5px 18px;
color: $color-white !important;
font-size: 14px;
font-weight: 400;
border-radius:5px;
&:hover {
color: $color-white !important;
background-color: darken($color-brand, 5%) !important;
border: none;
}
}
&-delete {
background-color:#d43d3d !important;
border-color: $color-button;
padding: 14px 31px;
color: $color-white !important;
font-size: 16px;
font-weight: 600;
border-radius:3px;
&:hover {
color: $color-white !important;
background:#eb2424 !important;
}
}
&-transparent {
background-color:transparent !important;
border-color: $color-button;
padding: 14px 31px;
color: $color-button !important;
font-size: 16px;
font-weight: 600;
border-radius:3px;
border:1px solid !important;
margin-top: 20px;
&:hover {
color: $color-white !important;
background: $color-button !important;
}
}
&-transparent2 {
background-color:transparent !important;
border-color: $color-white;
padding: 14px 31px;
color: $color-white !important;
font-size: 16px;
font-weight: 600;
border-radius:3px;
border:1px solid !important;
margin-top: 20px;
&:hover {
color: $color-font !important;
background: $color-white !important;
border: none !important;
}
}
&-primaryc {
background-color:$color-button !important;
border-color: $color-button;
padding: 14px 31px;
color: $color-white !important;
font-size: 16px;
font-weight: 600;
border-radius:5px;
letter-spacing: 1px;
width: 55%;
&:hover {
color: $color-white !important;
background-color: lighten($color-button, 5%) !important;
}
}
}

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save