Browse Source

Mar 14 : [ADD] Initial Commit 'theme_coffee_shop'

pull/313/head
RisvanaCybro 1 year ago
parent
commit
019a6bd3c0
  1. 49
      theme_coffee_shop/README.rst
  2. 23
      theme_coffee_shop/__init__.py
  3. 63
      theme_coffee_shop/__manifest__.py
  4. 22
      theme_coffee_shop/controllers/__init__.py
  5. 376
      theme_coffee_shop/controllers/theme_coffee_shop.py
  6. 26
      theme_coffee_shop/data/website_menu_data.xml
  7. 6
      theme_coffee_shop/doc/RELEASE_NOTES.md
  8. 22
      theme_coffee_shop/models/__init__.py
  9. 41
      theme_coffee_shop/models/theme_utils.py
  10. BIN
      theme_coffee_shop/static/description/banner.jpg
  11. BIN
      theme_coffee_shop/static/description/hero.gif
  12. BIN
      theme_coffee_shop/static/description/icon.png
  13. BIN
      theme_coffee_shop/static/description/images/1.png
  14. BIN
      theme_coffee_shop/static/description/images/2.png
  15. BIN
      theme_coffee_shop/static/description/images/3.png
  16. BIN
      theme_coffee_shop/static/description/images/4.png
  17. BIN
      theme_coffee_shop/static/description/images/5.png
  18. BIN
      theme_coffee_shop/static/description/images/6.png
  19. BIN
      theme_coffee_shop/static/description/images/8.png
  20. BIN
      theme_coffee_shop/static/description/images/9.png
  21. BIN
      theme_coffee_shop/static/description/images/Edu.png
  22. BIN
      theme_coffee_shop/static/description/images/POS.png
  23. BIN
      theme_coffee_shop/static/description/images/Production.png
  24. BIN
      theme_coffee_shop/static/description/images/arrow-black.png
  25. BIN
      theme_coffee_shop/static/description/images/banner-content-text.png
  26. BIN
      theme_coffee_shop/static/description/images/banner-img.jpg
  27. BIN
      theme_coffee_shop/static/description/images/banner-img.png
  28. BIN
      theme_coffee_shop/static/description/images/content-area-img.png
  29. BIN
      theme_coffee_shop/static/description/images/email.png
  30. BIN
      theme_coffee_shop/static/description/images/icon-Compatibility-with-plugins.png
  31. BIN
      theme_coffee_shop/static/description/images/icon-Fast-loading-times.png
  32. BIN
      theme_coffee_shop/static/description/images/icon-One-Click-Installation.png
  33. BIN
      theme_coffee_shop/static/description/images/icon-Responsive-design.png
  34. BIN
      theme_coffee_shop/static/description/images/icon-Up-to-date-development.png
  35. BIN
      theme_coffee_shop/static/description/images/icon-design.png
  36. BIN
      theme_coffee_shop/static/description/images/logo-cybro.png
  37. BIN
      theme_coffee_shop/static/description/images/odoo-consultancy.png
  38. BIN
      theme_coffee_shop/static/description/images/odoo-customization.png
  39. BIN
      theme_coffee_shop/static/description/images/odoo-developer.png
  40. BIN
      theme_coffee_shop/static/description/images/odoo-implement.png
  41. BIN
      theme_coffee_shop/static/description/images/odoo-integration.png
  42. BIN
      theme_coffee_shop/static/description/images/odoo-licencing.png
  43. BIN
      theme_coffee_shop/static/description/images/odoo-logo.png
  44. BIN
      theme_coffee_shop/static/description/images/odoo-migration.png
  45. BIN
      theme_coffee_shop/static/description/images/odoo-support.png
  46. BIN
      theme_coffee_shop/static/description/images/single product 2.png
  47. BIN
      theme_coffee_shop/static/description/images/template-white-theam-46.png
  48. BIN
      theme_coffee_shop/static/description/images/template-white-theam-5.png
  49. BIN
      theme_coffee_shop/static/description/images/template-white-theam-6.jpg
  50. BIN
      theme_coffee_shop/static/description/images/template-white-them-1.png
  51. BIN
      theme_coffee_shop/static/description/images/template-white-them-12.jpg
  52. BIN
      theme_coffee_shop/static/description/images/template-white-them-13.png
  53. BIN
      theme_coffee_shop/static/description/images/template-white-them-14.png
  54. BIN
      theme_coffee_shop/static/description/images/template-white-them-15.png
  55. BIN
      theme_coffee_shop/static/description/images/template-white-them-16.png
  56. BIN
      theme_coffee_shop/static/description/images/template-white-them-17.png
  57. BIN
      theme_coffee_shop/static/description/images/template-white-them-18.png
  58. BIN
      theme_coffee_shop/static/description/images/template-white-them-19.png
  59. BIN
      theme_coffee_shop/static/description/images/template-white-them-2.png
  60. BIN
      theme_coffee_shop/static/description/images/template-white-them-20.png
  61. BIN
      theme_coffee_shop/static/description/images/template-white-them-21.png
  62. BIN
      theme_coffee_shop/static/description/images/template-white-them-22.png
  63. BIN
      theme_coffee_shop/static/description/images/template-white-them-23.png
  64. BIN
      theme_coffee_shop/static/description/images/template-white-them-24.jpg
  65. BIN
      theme_coffee_shop/static/description/images/template-white-them-25.png
  66. BIN
      theme_coffee_shop/static/description/images/template-white-them-26.png
  67. BIN
      theme_coffee_shop/static/description/images/template-white-them-27.jpg
  68. BIN
      theme_coffee_shop/static/description/images/template-white-them-28.jpg
  69. BIN
      theme_coffee_shop/static/description/images/template-white-them-29.jpg
  70. BIN
      theme_coffee_shop/static/description/images/template-white-them-3.png
  71. BIN
      theme_coffee_shop/static/description/images/template-white-them-30.png
  72. BIN
      theme_coffee_shop/static/description/images/template-white-them-31.jpg
  73. BIN
      theme_coffee_shop/static/description/images/template-white-them-32.jpg
  74. BIN
      theme_coffee_shop/static/description/images/template-white-them-33.png
  75. BIN
      theme_coffee_shop/static/description/images/template-white-them-34.jpg
  76. BIN
      theme_coffee_shop/static/description/images/template-white-them-35.png
  77. BIN
      theme_coffee_shop/static/description/images/template-white-them-4.jpg
  78. BIN
      theme_coffee_shop/static/description/images/template-white-them-44.png
  79. BIN
      theme_coffee_shop/static/description/images/template-white-them-47.png
  80. BIN
      theme_coffee_shop/static/description/images/template-white-them-7.png
  81. BIN
      theme_coffee_shop/static/description/images/trading.png
  82. 948
      theme_coffee_shop/static/description/index.html
  83. BIN
      theme_coffee_shop/static/description/screenshot/single product 2.png
  84. BIN
      theme_coffee_shop/static/description/screenshot/template-white-theam-46.png
  85. BIN
      theme_coffee_shop/static/description/screenshot/template-white-theam-5.png
  86. BIN
      theme_coffee_shop/static/description/screenshot/template-white-theam-6.jpg
  87. BIN
      theme_coffee_shop/static/description/screenshot/template-white-them-1.jpg
  88. BIN
      theme_coffee_shop/static/description/screenshot/template-white-them-12.jpg
  89. BIN
      theme_coffee_shop/static/description/screenshot/template-white-them-13.png
  90. BIN
      theme_coffee_shop/static/description/screenshot/template-white-them-14.png
  91. BIN
      theme_coffee_shop/static/description/screenshot/template-white-them-15.png
  92. BIN
      theme_coffee_shop/static/description/screenshot/template-white-them-16.png
  93. BIN
      theme_coffee_shop/static/description/screenshot/template-white-them-17.png
  94. BIN
      theme_coffee_shop/static/description/screenshot/template-white-them-18.jpg
  95. BIN
      theme_coffee_shop/static/description/screenshot/template-white-them-19.png
  96. BIN
      theme_coffee_shop/static/description/screenshot/template-white-them-2.png
  97. BIN
      theme_coffee_shop/static/description/screenshot/template-white-them-20.png
  98. BIN
      theme_coffee_shop/static/description/screenshot/template-white-them-21.png
  99. BIN
      theme_coffee_shop/static/description/screenshot/template-white-them-22.png
  100. BIN
      theme_coffee_shop/static/description/screenshot/template-white-them-23.png

49
theme_coffee_shop/README.rst

@ -0,0 +1,49 @@
.. image:: https://img.shields.io/badge/licence-LGPL--3-blue.svg
:target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
Theme Coffee Shop
=================
This is a theme for Coffee Shop.
Installation
============
- www.odoo.com/documentation/17.0/setup/install.html
- Install our custom addon
License
-------
General Public License, Version 3 (LGPL v3).
(https://www.gnu.org/licenses/lgpl-3.0-standalone.html)
Company
-------
* `Cybrosys Techno Solutions <https://cybrosys.com/>`__
Credits
-------
Developer: (V16) Ayisha Sumayya K, Abbas P,
(V17) Sayanth M K, Sruthi M
Contact: odoo@cybrosys.com
Contacts
--------
* Mail Contact : odoo@cybrosys.com
* Website : https://cybrosys.com
Bug Tracker
-----------
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported.
Maintainer
==========
.. image:: https://cybrosys.com/images/logo.png
:target: https://cybrosys.com
This module is maintained by Cybrosys Technologies.
For support and more information, please visit https://www.cybrosys.com
Further information
===================
HTML Description: `<static/description/index.html>`__

23
theme_coffee_shop/__init__.py

@ -0,0 +1,23 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-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 controllers
from . import models

63
theme_coffee_shop/__manifest__.py

@ -0,0 +1,63 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-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 Coffee Shop',
'version': '17.0.1.0.0',
'category': 'Theme',
'summary': 'A Captivating and Practical E-Commerce Theme for Coffee Shops',
'description': 'Theme Coffee Shop brings a captivating and highly '
'practical theme crafted exclusively for e-Commerce'
' websites specializing in coffee shops. With its blend of '
'aesthetic appeal and user-centric design, this theme '
'provides an exceptional browsing and shopping experience '
'for coffee enthusiasts and customers.It encapsulates the'
' essence of a cozy coffee shop, translating it into an '
'engaging online platform for your coffee products and '
'accessories.',
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'website': 'https://www.cybrosys.com',
'depends': ['website_sale_wishlist', 'auth_oauth', 'website_sale', 'sale'],
'data': [
'data/website_menu_data.xml',
'views/header.xml',
'views/footer.xml',
'views/contact_us.xml',
'views/cart_lines.xml',
'views/shop.xml',
'views/about_us.xml',
'views/feature.xml',
'views/menu_page.xml',
],
'assets': {
'web.assets_frontend': [
'theme_coffee_shop/static/src/css/style.css',
],
},
'images': ['static/description/banner.jpg',
'static/description/theme_screenshot.jpg'],
'license': 'LGPL-3',
'installable': True,
'auto_install': False,
'application': False
}

22
theme_coffee_shop/controllers/__init__.py

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-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 theme_coffee_shop

376
theme_coffee_shop/controllers/theme_coffee_shop.py

@ -0,0 +1,376 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-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 collections import defaultdict
from datetime import datetime
from itertools import product as cartesian_product
from werkzeug.exceptions import NotFound
from odoo import http, tools
from odoo.http import request
from odoo.osv import expression
from odoo.tools import lazy
from odoo.addons.http_routing.models.ir_http import slug
from odoo.addons.website.controllers.main import QueryURL
from odoo.addons.website.models.ir_http import sitemap_qs2dom
class TableCompute(object):
"""This is used to compute the table"""
def __init__(self):
self.table = {}
def _check_place(self, posx, posy, sizex, sizey, ppr):
"""Checks the position """
res = True
for y in range(sizey):
for x in range(sizex):
if posx + x >= ppr:
res = False
break
row = self.table.setdefault(posy + y, {})
if row.setdefault(posx + x) is not None:
res = False
break
for x in range(ppr):
self.table[posy + y].setdefault(x, None)
return res
def process(self, products, ppg=20, ppr=4):
"""Compute products positions on the grid"""
minpos = 0
index = 0
maxy = 0
x = 0
for p in products:
x = min(max(p.website_size_x, 1), ppr)
y = min(max(p.website_size_y, 1), ppr)
if index >= ppg:
x = y = 1
pos = minpos
while not self._check_place(pos % ppr, pos // ppr, x, y, ppr):
pos += 1
# if 21st products (index 20) and the last line is full (ppr products in it), break
# (pos + 1.0) / ppr is the line where the product would be inserted
# maxy is the number of existing lines
# + 1.0 is because pos begins at 0, thus pos 20 is actually the 21st block
# and to force python to not round the division operation
if index >= ppg and ((pos + 1.0) // ppr) > maxy:
break
if x == 1 and y == 1: # simple heuristic for CPU optimization
minpos = pos // ppr
for y2 in range(y):
for x2 in range(x):
self.table[(pos // ppr) + y2][(pos % ppr) + x2] = False
self.table[pos // ppr][pos % ppr] = {
'product': p, 'x': x, 'y': y,
'ribbon': p.sudo().website_ribbon_id,
}
if index <= ppg:
maxy = max(maxy, y + (pos // ppr))
index += 1
# Format table according to HTML needs
rows = sorted(self.table.items())
rows = [r[1] for r in rows]
for col in range(len(rows)):
cols = sorted(rows[col].items())
x += len(cols)
rows[col] = [r[1] for r in cols if r[1]]
return rows
class ThemeCoffeeMenu(http.Controller):
""" Controller for rendering datas to menu page """
def _get_search_order(self, post):
""" OrderBy will be parsed in orm and so no direct sql injection id is
added to be sure that order is a unique sort key
"""
order = post.get('order') or request.env[
'website'].get_current_website().shop_default_sort
return 'is_published desc, %s, id desc' % order
def _get_search_domain(self, search, category, attrib_values,
search_in_description=True):
"""Function for getting search domain"""
domains = [request.website.sale_product_domain()]
if search:
for srch in search.split(" "):
subdomains = [
[('name', 'ilike', srch)],
[('product_variant_ids.default_code', 'ilike', srch)]
]
if search_in_description:
subdomains.append([('website_description', 'ilike', srch)])
subdomains.append([('description_sale', 'ilike', srch)])
domains.append(expression.OR(subdomains))
if category:
domains.append([('public_categ_ids', 'child_of', int(category))])
if attrib_values:
attrib = None
ids = []
for value in attrib_values:
if not attrib:
attrib = value[0]
ids.append(value[1])
elif value[0] == attrib:
ids.append(value[1])
else:
domains.append([
('attribute_line_ids.value_ids', 'in', ids)])
attrib = value[0]
ids = [value[1]]
if attrib:
domains.append([('attribute_line_ids.value_ids', 'in', ids)])
return expression.AND(domains)
def sitemap_shop(env, rule, qs):
"""Sitemap for shop"""
if not qs or qs.lower() in '/menu':
yield {'loc': '/menu'}
category = env['product.public.category']
dom = sitemap_qs2dom(qs, '/menu/category', category._rec_name)
dom += env['website'].get_current_website().website_domain()
for cat in category.search(dom):
loc = '/menu/category/%s' % slug(cat)
if not qs or qs.lower() in loc:
yield {'loc': loc}
def _get_search_options(
self, category=None, attrib_values=None, pricelist=None, **post):
"""Function for returning search options"""
return {
'displayDescription': True,
'displayDetail': True,
'displayExtraDetail': True,
'displayExtraLink': True,
'displayImage': True,
'allowFuzzy': not post.get('noFuzzy'),
'category': str(category.id) if category else None,
'attrib_values': attrib_values,
'display_currency': pricelist.currency_id,
}
def _shop_lookup_products(self, attrib_set, options,
post, search, website):
""" No limit because attributes are obtained from complete
product list"""
product_count, details, fuzzy_search_term = website._search_with_fuzzy(
"products_only", search, limit=None,
order=self._get_search_order(post), options=options
)
search_result = details[0].get(
'results', request.env['product.template']
).with_context(bin_size=True)
if attrib_set:
attribute_values = request.env[
'product.attribute.value'].browse(attrib_set)
values_per_attribute = defaultdict(
lambda: request.env['product.attribute.value'])
multi_value_attribute = False
for value in attribute_values:
values_per_attribute[value.attribute_id] |= value
if len(values_per_attribute[value.attribute_id]) > 1:
multi_value_attribute = True
def filter_template(template, attribute_values_list):
"""Transform product.attribute.value to
product.template.attribute.value """
attribute_value_to_ptav = {}
for ptav in \
template.attribute_line_ids.product_template_value_ids:
attribute_value_to_ptav[
ptav.product_attribute_value_id] = ptav.id
possible_combinations = False
for attribute_values in attribute_values_list:
ptav_ids = [attribute_value_to_ptav[val] for val in
attribute_values if
val in attribute_value_to_ptav]
ptavs = request.env[
'product.template.attribute.value'].browse(ptav_ids)
if len(ptavs) < len(attribute_values):
continue
if len(ptavs) == len(template.attribute_line_ids):
if template._is_combination_possible(ptavs):
return True
elif len(ptavs) < len(template.attribute_line_ids):
if len(attribute_values_list) == 1:
possible_combinations = template._get_possible_combinations(
necessary_values=ptavs)
if any(possible_combinations):
return True
if not possible_combinations:
possible_combinations = template._get_possible_combinations()
for combination in possible_combinations:
if ptavs.issubset(combination):
return True
return False
if not multi_value_attribute:
possible_attrib_values_list = [attribute_values]
else:
possible_attrib_values_list = [attribute_values] if not \
multi_value_attribute else \
[request.env['product.attribute.value']
.browse([rec.id for rec in values]) for values in
cartesian_product(*values_per_attribute.values())]
search_result = search_result.filtered(
lambda tmpl: filter_template(possible_attrib_values_list)
)
return fuzzy_search_term, product_count, search_result
def _menu_get_query_url_kwargs(self, category, search, attrib=None,
order=None):
"""Function for returning category, search, order and attribute"""
return {
'category': category,
'search': search,
'attrib': attrib,
'order': order,
}
@http.route([
'/menu',
'/menu/page/<int:page>',
'/menu/category/<model("product.public.category"):category>',
'/menu/category/<model("product.public.category"):'
'category>/page/<int:page>',
], type='http', auth="public", website=True, sitemap=sitemap_shop)
def menu_page(self, page=0, category=None, search='',
min_price=0.0, max_price=0.0, ppg=False, **post):
"""Function for rendering menu page"""
category_id = request.env['product.public.category']
if category:
category = category_id.search([('id', '=', int(category))],
limit=1)
if not category or not category.can_access_from_current_website():
raise NotFound()
else:
category = category_id
website = request.env['website'].get_current_website()
if ppg:
try:
ppg = int(ppg)
post['ppg'] = ppg
except ValueError:
ppg = False
if not ppg:
ppg = website.shop_ppg or 20
ppr = website.shop_ppr or 4
attrib_list = request.httprequest.args.getlist('attrib')
attrib_values = [[int(rec) for rec in res.split("-")]
for res in attrib_list if res
]
attributes_ids = {res[0] for res in attrib_values}
attrib_set = {res[1] for res in attrib_values}
keep = QueryURL('/menu', **self._menu_get_query_url_kwargs(
category and int(category), search, min_price, max_price, **post))
now = datetime.timestamp(datetime.now())
pricelist = request.env['product.pricelist']. \
browse(request.session.get('website_sale_current_pl'))
if not pricelist or request.session. \
get('website_sale_pricelist_time', 0) < now - 60 * 60:
pricelist = website.pricelist_id
request.session['website_sale_pricelist_time'] = now
request.session['website_sale_current_pl'] = pricelist.id
request.update_context(pricelist=pricelist.id,
partner=request.env.user.partner_id)
url = "/menu"
if search:
post["search"] = search
if attrib_list:
post['attrib'] = attrib_list
options = self._get_search_options(
category=category,
attrib_values=attrib_values,
pricelist=pricelist,
**post
)
fuzzy_search_term, product_count, search_product = \
self._shop_lookup_products(
attrib_set, options, post, search, website)
website_domain = website.website_domain()
categs_domain = [('parent_id', '=', False)] + website_domain
if search:
search_categories = category_id.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_id
categs = lazy(lambda: category_id.search(categs_domain))
if category:
url = "/menu/category/%s" % slug(category)
pager = 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]
product_attribute = request.env['product.attribute']
if products:
attributes = lazy(lambda: product_attribute.search([
('product_tmpl_ids', 'in', search_product.ids),
('visibility', '=', 'visible'),
]))
else:
attributes = lazy(lambda: product_attribute.browse(attributes_ids))
layout_mode = request.session.get('website_sale_shop_layout_mode')
if not layout_mode:
if website.viewref('website_sale.products_list_view').active:
layout_mode = 'list'
else:
layout_mode = 'grid'
request.session['website_sale_shop_layout_mode'] = layout_mode
# Try to fetch geoip based fpos or fallback on partner one
fiscal_position_sudo = website.fiscal_position_id.sudo()
products_prices = lazy(
lambda: products._get_sales_prices(pricelist, fiscal_position_sudo))
values = {
'order': post.get('order', ''),
'category': category,
'attrib_values': attrib_values,
'attrib_set': attrib_set,
'pager': pager,
'pricelist': pricelist,
'add_qty': int(post.get('add_qty', 1)),
'products': products,
'search_product': search_product,
'search_count': product_count,
'bins': lazy(lambda: TableCompute().process(
products, ppg, ppr)),
'ppg': ppg,
'ppr': ppr,
'categories': categs,
'attributes': attributes,
'keep': keep,
'search_categories_ids': search_categories.ids,
'products_prices': products_prices,
'get_product_prices': lambda product: lazy(
lambda: products_prices[product.id]
),
'float_round': tools.float_round,
}
if category:
values['main_object'] = category
return request.render("theme_coffee_shop.coffee_menu", values)

26
theme_coffee_shop/data/website_menu_data.xml

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data noupdate="1">
<!-- Define a menu item for "About us" -->
<record id="menu_about_sub" model="website.menu">
<field name="name">About us</field>
<field name="url">/about</field>
<field name="parent_id" ref="website.main_menu"/>
<field name="sequence" type="int">30</field>
</record>
<!-- Define a menu item for "Features" -->
<record id="menu_feature" model="website.menu">
<field name="name">Features</field>
<field name="url">/feature</field>
<field name="parent_id" ref="website.main_menu"/>
<field name="sequence" type="int">35</field>
</record>
<!-- Define a menu item for "Menu" -->
<record id="menu_menu" model="website.menu">
<field name="name">Menu</field>
<field name="url">/menu</field>
<field name="parent_id" ref="website.main_menu"/>
<field name="sequence" type="int">15</field>
</record>
</data>
</odoo>

6
theme_coffee_shop/doc/RELEASE_NOTES.md

@ -0,0 +1,6 @@
## Module <theme_coffee_shop>
#### 08.03.2024
#### Version 17.0.1.0.0
#### ADD
- Initial commit for Theme Coffee Shop

22
theme_coffee_shop/models/__init__.py

@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-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 theme_utils

41
theme_coffee_shop/models/theme_utils.py

@ -0,0 +1,41 @@
""" Class for enable and disable templates when using coffee shop theme """
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Sayanth M K (odoo@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 api, models
class ThemeUtils(models.AbstractModel):
""" Class for enable and disable templates when using coffee shop theme """
_inherit = 'theme.utils'
@api.model
def _theme_coffee_shop_post_copy(self, mod):
""" Enable and disable templates when using coffee shop theme """
self.enable_view("website_sale.products_categories")
self.enable_view("website_sale.products_description")
self.enable_view("website_sale.products_design_card")
self.enable_view("website_sale.products_add_to_cart")
self.enable_view("website_sale.product_comment")
self.enable_view("website_sale.option_collapse_products_categories")
self.enable_view("website_sale.product_buy_now")
self.disable_view("website_sale.products_categories_top")
self.disable_view("website_sale.products_design_grid")

BIN
theme_coffee_shop/static/description/banner.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

BIN
theme_coffee_shop/static/description/hero.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 KiB

BIN
theme_coffee_shop/static/description/icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
theme_coffee_shop/static/description/images/1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
theme_coffee_shop/static/description/images/2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

BIN
theme_coffee_shop/static/description/images/3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
theme_coffee_shop/static/description/images/4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

BIN
theme_coffee_shop/static/description/images/5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
theme_coffee_shop/static/description/images/6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 638 KiB

BIN
theme_coffee_shop/static/description/images/8.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 KiB

BIN
theme_coffee_shop/static/description/images/9.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 KiB

BIN
theme_coffee_shop/static/description/images/Edu.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
theme_coffee_shop/static/description/images/POS.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
theme_coffee_shop/static/description/images/Production.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
theme_coffee_shop/static/description/images/arrow-black.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
theme_coffee_shop/static/description/images/banner-content-text.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
theme_coffee_shop/static/description/images/banner-img.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

BIN
theme_coffee_shop/static/description/images/banner-img.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

BIN
theme_coffee_shop/static/description/images/content-area-img.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB

BIN
theme_coffee_shop/static/description/images/email.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
theme_coffee_shop/static/description/images/icon-Compatibility-with-plugins.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 843 B

BIN
theme_coffee_shop/static/description/images/icon-Fast-loading-times.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

BIN
theme_coffee_shop/static/description/images/icon-One-Click-Installation.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 899 B

BIN
theme_coffee_shop/static/description/images/icon-Responsive-design.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 848 B

BIN
theme_coffee_shop/static/description/images/icon-Up-to-date-development.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 936 B

BIN
theme_coffee_shop/static/description/images/icon-design.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1001 B

BIN
theme_coffee_shop/static/description/images/logo-cybro.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

BIN
theme_coffee_shop/static/description/images/odoo-consultancy.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
theme_coffee_shop/static/description/images/odoo-customization.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
theme_coffee_shop/static/description/images/odoo-developer.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
theme_coffee_shop/static/description/images/odoo-implement.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
theme_coffee_shop/static/description/images/odoo-integration.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
theme_coffee_shop/static/description/images/odoo-licencing.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
theme_coffee_shop/static/description/images/odoo-logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
theme_coffee_shop/static/description/images/odoo-migration.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
theme_coffee_shop/static/description/images/odoo-support.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
theme_coffee_shop/static/description/images/single product 2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

BIN
theme_coffee_shop/static/description/images/template-white-theam-46.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
theme_coffee_shop/static/description/images/template-white-theam-5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

BIN
theme_coffee_shop/static/description/images/template-white-theam-6.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 975 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-12.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 930 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-13.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-14.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 141 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-15.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

BIN
theme_coffee_shop/static/description/images/template-white-them-16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-17.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-18.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-19.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-20.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-21.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-22.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-23.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-24.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 890 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-25.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-26.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-27.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 993 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-28.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 928 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-29.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 940 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 553 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-30.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-31.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 975 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-32.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 999 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-33.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-34.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 969 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-35.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 695 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-4.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 953 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-44.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-47.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 KiB

BIN
theme_coffee_shop/static/description/images/template-white-them-7.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

BIN
theme_coffee_shop/static/description/images/trading.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

948
theme_coffee_shop/static/description/index.html

@ -0,0 +1,948 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>odoo</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
</head>
<body style="background-color: #ffeed8">
<div class="position-relative py-3">
<div class="position-absolute d-none d-lg-block"
style="background-color:#ffeed8; width:100vw; height:100%; margin-left:calc((1080px - 100vw) / 2); margin-top:-30px">
</div>
<div class=" pt-4 float-left w-100">
<div class="container">
<div class="row">
<div class="col-lg-6">
<div class="text-left logo-cybro">
<a class="" href="#">
<img src="images/logo-cybro.png"/>
</a>
</div>
</div>
<div class="col-lg-6">
<div class="text-right odoo-logo-top">
<img src="images/odoo-logo.png"/>
</div>
</div>
</div>
</div>
</div>
<!--- Closed section-top-menu --->
<div class=" pt-5 w-100 float-left">
<div class="text-center">
<img src="images/banner-content-text.png"/>
</div>
<div class="text-center mt-5 pt-5" style="">
<img style="width:80%;" src="images/banner-img.png"/>
</div>
</div>
<!--- Closed section-banner-img --->
<div class=" float-left w-100 pt-5 mt-5">
<div class="container">
<div class="row">
<div class="col-lg-6">
<h3 class="text-uppercase float-left font-weight-bold"
style="color:#cc2300; font-size:24px;">espresso</h3>
<div class="w-50 float-left text-center"
style="margin-left:14px;"><img class="w-100"
src="images/arrow-black.png"/>
</div>
</div>
<div class="col-lg-6">
<ul class="pl-0">
<li style="list-style:none; font-size:24px;">Website
Design
</li>
<li style="list-style:none; font-size:24px;">UI/UX</li>
<li style="list-style:none; font-size:24px;">
Developing
</li>
</ul>
</div>
</div>
</div>
</div>
<!--- Closed section-level-up --->
<div class=" float-left w-100 mt-5 pt-4">
<div class="container">
<div class="row">
<div class="col-lg-12">
<h3 class="text-uppercase font-weight-bold "
style="font-size:149px; color:#000;">make a break<br/>
<span style="font-size:162px; color:#000; " class="">for a hot<br/>
coffee</span>
</h3>
</div>
<div class="col-lg-8">
<p class="text-dark" style="padding-right:0px;">The
Espresso cafe theme
was created by Cybrosys Technology Solutions.
This theme can be added to make a classy
website for cafes, bistros, and restaurants.
Additionally, if you own wineries, bakeries, burger
joints, fast food chains, or recipe websites, you can
use it. It's a complete food company theme, making it a
fantastic option for both restaurants and food
websites. This theme is the missing special ingredient
for you to build irresistible websites. </p>
<p class="text-dark" style="padding-right:0px;">It uses the
collection of portfolio templates and powerful features
to create a stylish portfolio for your business.
Snippets can be used to create homepages that showcase
your shop's drink menus and other offerings.
Also, it features both common and
unique short codes designed specifically for
presentations. It might be useful for showcasing your
company's identity and product offerings.</p>
<p class="text-dark" style="padding-right:0px;">This theme
contains everything from designed homepages, to
shopping carts. It is compatible with Elementor and
simple to drag and drop items. Quickly create any
layout without any coding skills. Along with this theme
,
it permits users to use third-party plugins also.
This theme use the most recent iteration of a coffee
shop's
website. Both adaptable and user-friendly.</p>
</div>
<div class="col-lg-4 text-left">
<div class=" position-relative">
<img class="position-absolute w-75"
style="top:-83px; left:100px;"
src="images/content-area-img.png"/>
</div>
</div>
</div>
</div>
</div>
<!-- Closed section-content-area -->
<div class=" float-left w-100">
<div class="container">
<div class="row">
<div class="col-lg-12">
<h3 class="text-uppercase pt-5 mt-5 text-dark font-weight-bold">
Key features</h3>
<hr style="border-top:3px solid #F16868; width:7%;"
class=" float-left mt-0">
</div>
<div class="col-lg-6">
<div class="key-features-1 mt-4 p-3"
style="background-color:#FDD57C; border:3px solid #000; border-radius:14px;">
<div class="w-100 float-left pb-3">
<i><img src="images/icon-design.png"/> </i>
<span class="pl-2"
style="font-size:22px;">Design</span>
</div>
<p class="pt-4"
style="font-size:20px; line-height:34px;">The most
recent website creation for a coffee shop.
Flexible and simple to use.
</p>
</div>
</div>
<div class="col-lg-6">
<div class=" p-3 mt-4 "
style="background-color:#CFBFDF; border:3px solid #000; border-radius:14px;">
<div class="w-100 float-left pb-3">
<i><img src="images/icon-Compatibility-with-plugins.png"/>
</i>
<span class="pl-2" style="font-size:22px;">Compatibility with plugins</span>
</div>
<p class="pt-4"
style="font-size:20px; line-height:34px;">Along with
this theme, it permits users to use third-party
plugins also.</p>
</div>
</div>
<div class="col-lg-6">
<div class=" p-3 mt-4"
style="background-color:#E0FBAD; border:3px solid #000; border-radius:14px;">
<div class="w-100 float-left pb-3">
<i><img src="images/icon-Fast-loading-times.png"/>
</i>
<span class="pl-2" style="font-size:22px;">Fast loading times</span>
</div>
<p class="pt-4"
style="font-size:20px; line-height:34px;">This theme
loads all of its features more quickly than other
designs.</p>
</div>
</div>
<div class="col-lg-6">
<div class=" p-3 mt-4"
style="background-color:#D3F5E7; border:3px solid #000; border-radius:14px;">
<div class="w-100 float-left pb-3">
<i><img src="images/icon-Up-to-date-development.png"/>
</i>
<span class="pl-2" style="font-size:22px;">Up-to-date Development</span>
</div>
<p class="pt-4"
style="font-size:20px; line-height:34px;">The most
up-to-date approaches,
concepts, and innovations are being used.</p>
</div>
</div>
<div class="col-lg-6">
<div class=" p-3 mt-4"
style="background-color:#D1DFE7; border:3px solid #000; border-radius:14px;">
<div class="w-100 float-left pb-3">
<i><img src="images/icon-Responsive-design.png"/>
</i>
<span class="pl-2" style="font-size:22px;">Responsive Design</span>
</div>
<p class="pt-4"
style="font-size:20px; line-height:34px;">Different
resolution devices can be used by users to watch
websites. </p>
</div>
</div>
<div class="col-lg-6">
<div class=" p-3 mt-4"
style="background-color:#FED1E5; border:3px solid #000; border-radius:14px;">
<div class="w-100 float-left pb-3">
<i><img src="images/icon-One-Click-Installation.png"/>
</i>
<span class="pl-2" style="font-size:22px;">One Click Installation</span>
</div>
<p class="pt-4"
style="font-size:20px; line-height:34px;">This mode
is significantly easier than others because Odoo
makes One Click Installation feasible. </p>
</div>
</div>
</div>
</div>
</div>
<div class=" float-left w-100 pt-5 mt-5">
<div class="container">
<div class="row">
<div class="col-lg-6">
<h3 class="text-uppercase float-left font-weight-bold"
style="color:#cc2300; font-size:24px;">Main page</h3>
<div class="w-50 float-left text-center"
style="margin-left:14px;"><img class="w-100"
src="images/arrow-black.png">
</div>
</div>
<div class="col-lg-6">
<ul class="pl-0">
<li style="list-style:none; font-size:24px;">Home</li>
<li style="list-style:none; font-size:24px;">About us
</li>
<li style="list-style:none; font-size:24px;">Menu</li>
<li style="list-style:none; font-size:24px;">Shop</li>
<li style="list-style:none; font-size:24px;">
Features
</li>
<li style="list-style:none; font-size:24px;">Contact Us</li>
</ul>
</div>
</div>
</div>
</div>
<div class=" w-100 float-left mt-5 pt-5">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="text-center">
<img class="w-100"
src="images/template-white-them-1.png"/>
</div>
</div>
<div class="col-lg-12">
<div class="text-center mt-5 pt-5">
<img class="w-100"
src="images/template-white-them-7.png"/>
</div>
</div>
</div>
</div>
</div>
<div class=" float-left w-100 pt-5 mt-5">
<div class="container">
<div class="row">
<div class="col-lg-6">
<h3 class="text-uppercase float-left font-weight-bold"
style="color:#cc2300; font-size:24px;">Menu page</h3>
<div class="w-50 float-left text-center"
style="margin-left:14px;"><img class="w-100"
src="images/arrow-black.png">
</div>
</div>
<div class="col-lg-6">
<ul class="pl-0">
<li style="list-style:none; font-size:24px;">Banner
</li>
<li style="list-style:none; font-size:24px;">Easy
Categorized menu
</li>
<li style="list-style:none; font-size:24px;">Product
List
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="mt-5 float-left w-100">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="text-center">
<img class="w-100"
src="images/template-white-them-12.jpg"/>
</div>
</div>
</div>
</div>
</div>
<div class=" w-100 pt-5 mt-5 float-left">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="text-center">
<img class="w-100"
src="images/template-white-them-13.png"/>
</div>
</div>
<div class="col-lg-12">
<div class="text-center pt-5 mt-5">
<img class="w-100"
src="images/template-white-them-14.png"/>
</div>
</div>
</div>
</div>
</div>
<div class=" float-left w-100 pt-5 mt-5">
<div class="container">
<div class="row">
<div class="col-lg-8">
<h3 class="text-uppercase float-left font-weight-bold"
style="color:#cc2300; line-height:44px; font-size:24px;">
Single Product page</h3>
<div class="w-50 float-left text-center"
style="margin-left:14px;"><img class="w-100"
src="images/arrow-black.png">
</div>
</div>
<div class="col-lg-4">
<ul class="pl-0">
<li style="list-style:none; font-size:24px;">Product
Description
</li>
<li style="list-style:none; font-size:24px;">Similar
Product
</li>
</ul>
</div>
</div>
</div>
</div>
<div class=" w-100 float-left pt-5 mt-5">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="text-center">
<img class="w-100"
src="images/template-white-them-16.png"/>
</div>
</div>
</div>
</div>
</div>
<div class=" pt-5 mt-5 float-left w-100">
<div class="container">
<div class="row">
<div class="col-lg-6">
<h3 class="text-uppercase float-left font-weight-bold"
style="color:#cc2300; line-height:32px; font-size:24px;">
Cart & Check out</h3>
<div class="w-50 float-left text-center arrow-black"
style="margin-left:14px;"><img class="w-100"
src="images/arrow-black.png">
</div>
</div>
<div class="col-lg-6">
<ul class="pl-0">
<li style="list-style:none; font-size:24px;">Cart
</li>
<li style="list-style:none; font-size:24px;">Payment
Methods
</li>
<li style="list-style:none; font-size:24px;">
Checkout
</li>
</ul>
</div>
</div>
</div>
</div>
<div class=" float-left w-100">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="text-center pt-5 mt-5">
<img class="w-100"
src="images/template-white-them-18.png"/>
</div>
</div>
<div class="col-lg-12">
<div class="text-center pt-5 mt-5">
<img class="w-100"
src="images/template-white-them-19.png"/>
</div>
</div>
<div class="col-lg-12">
<div class="text-center pt-5 mt-5">
<img class="w-100"
src="images/template-white-them-20.png"/>
</div>
</div>
<div class="col-lg-12">
<div class="text-center pt-5 mt-5">
<img class="w-100"
src="images/template-white-them-22.png"/>
</div>
</div>
<div class="col-lg-12">
<div class="text-center pt-5 mt-5">
<img class="w-100"
src="images/template-white-them-23.png"/>
</div>
</div>
</div>
</div>
</div>
<div class=" pt-5 mt-5 float-left w-100">
<div class="container">
<div class="row">
<div class="col-lg-6">
<h3 class="text-uppercase float-left font-weight-bold"
style="color:#cc2300; line-height:32px; font-size:24px;">
Shop Page</h3>
<div class="w-50 float-left text-center arrow-black"
style="margin-left:14px;"><img class="w-100"
src="images/arrow-black.png">
</div>
</div>
<div class="col-lg-6">
<ul class="pl-0">
<li style="list-style:none; font-size:24px;">Banner
</li>
<li style="list-style:none; font-size:24px;">
Products
</li>
</ul>
</div>
</div>
</div>
<div class="col-lg-12">
<div class="text-center pt-5 mt-5">
<img class="w-100"
src="images/8.png"/>
</div>
</div>
<div class="col-lg-12">
<div class="text-center pt-5 mt-5">
<img class="w-100"
src="images/9.png"/>
</div>
</div>
</div>
</div>
<div class=" pt-5 mt-5 float-left w-100">
<div class="container">
<div class="row">
<div class="col-lg-6">
<h3 class="text-uppercase float-left font-weight-bold"
style="color:#cc2300; line-height:32px; font-size:24px;">
About Us Page</h3>
<div class="w-50 float-left text-center arrow-black"
style="margin-left:14px;"><img class="w-100"
src="images/arrow-black.png">
</div>
</div>
<div class="col-lg-6">
<ul class="pl-0">
<li style="list-style:none; font-size:24px;">Banner
</li>
<li style="list-style:none; font-size:24px;">About Us
</li>
<li style="list-style:none; font-size:24px;"> References
</li>
</ul>
</div>
</div>
</div>
</div>
<div class=" mt-5 w-100 float-left">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="text-center mt-5">
<img class="w-100"
src="images/3.png"/>
</div>
</div>
<div class="col-lg-12">
<div class="text-center pt-5 mt-5">
<img class="w-100"
src="images/4.png"/>
</div>
</div>
<div class="col-lg-12">
<div class="text-center pt-5 mt-5">
<img class="w-100"
src="images/5.png"/>
</div>
</div>
</div>
</div>
</div>
<div class=" pt-5 mt-5 float-left w-100">
<div class="container">
<div class="row">
<div class="col-lg-6">
<h3 class="text-uppercase float-left font-weight-bold"
style="color:#cc2300; line-height:32px; font-size:24px;">
Features Page</h3>
<div class="w-50 float-left text-center arrow-black"
style="margin-left:14px;"><img class="w-100"
src="images/arrow-black.png">
</div>
</div>
<div class="col-lg-6">
<ul class="pl-0">
<li style="list-style:none; font-size:24px;">Banner
</li>
<li style="list-style:none; font-size:24px;">
Delivery
</li>
<li style="list-style:none; font-size:24px;">Other
Features
</li>
</ul>
</div>
</div>
</div>
</div>
<div class=" w-100 float-left">
<div class="container">
<div class="row">
<div class="col-lg-12">
<div class="text-center mt-3 pt-5">
<img class="w-100"
src="images/template-white-them-35.png"/>
</div>
</div>
<div class="col-lg-12">
<div class="text-center mt-3 pt-5">
<img class="w-100"
src="images/1.png"/>
</div>
</div>
<div class="col-lg-12">
<div class="text-center mt-3 pt-5">
<img class="w-100"
src="images/2.png"/>
</div>
</div>
</div>
</div>
</div>
<div style="padding-bottom:100px;"
class="w-100 float-left section-bottom-services mt-5 bg-white">
<div class="container">
<div class="row">
<div class="col-lg-12">
<h3 class="text-uppercase float-left font-weight-bold"
style="color:#4a1760; padding-top:80px; font-size:26px;">
Our Services</h3> <br/>
<div style="font-size:22px;"
class="text-left float-left w-100 pb-5 mb-4">View
services offered by us
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4"
style="border-radius:16px; background-color:#ffeed8;">
<img src="images/odoo-customization.png"/>
<h3 style="color:#522065; font-size:24px;"
class="pt-1"> Odoo <br/> Customization </h3>
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4"
style="border-radius:16px; background-color:#ffeed8;">
<img src="images/odoo-implement.png"/>
<h3 style="color:#522065; font-size:24px;"
class="pt-1"> Odoo <br/> Implementation </h3>
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4"
style="border-radius:16px; background-color:#ffeed8;">
<img src="images/odoo-support.png"/>
<h3 style="color:#522065; font-size:24px;"
class="pt-1"> Odoo <br/> Support </h3>
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4"
style="border-radius:16px; background-color:#ffeed8;">
<img src="images/odoo-developer.png"/>
<h3 style="color:#522065; font-size:24px;"
class="pt-1"> Hire <br/> Odoo Developer </h3>
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4"
style="border-radius:16px; background-color:#ffeed8;">
<img src="images/odoo-integration.png"/>
<h3 style="color:#522065; font-size:24px;"
class="pt-1"> Odoo <br/> Integration </h3>
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4"
style="border-radius:16px; background-color:#ffeed8;">
<img src="images/odoo-migration.png"/>
<h3 style="color:#522065; font-size:24px;"
class="pt-1"> Odoo <br/> Migration </h3>
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4"
style="border-radius:16px; background-color:#ffeed8;">
<img src="images/odoo-consultancy.png"/>
<h3 style="color:#522065; font-size:24px;"
class="pt-1"> Odoo <br/> Consultancy </h3>
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4"
style="border-radius:16px; background-color:#ffeed8;">
<img src="images/odoo-implement.png"/>
<h3 style="color:#522065; font-size:24px;"
class="pt-1"> Odoo <br/> Implementation </h3>
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4"
style="border-radius:16px; background-color:#ffeed8;">
<img src="images/odoo-licencing.png"/>
<h3 style="color:#522065; font-size:24px;"
class="pt-1"> Odoo <br/> Licensing Consultancy</h3>
</div>
</div>
</div>
</div>
</div>
<div style="padding-bottom:100px;"
class="w-100 float-left section-bottom-services mt-5">
<div class="container">
<div class="row">
<div class="col-lg-12">
<h3 class="text-uppercase float-left font-weight-bold"
style="color:#4a1760; padding-top:80px; font-size:26px;">
Our Industries</h3> <br/>
<div style="font-size:22px;"
class="text-left float-left w-100 pb-5 mb-4">Get
Insight in our odoo knowledge and our marked footprint
in industries
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4 bg-white"
style="border-radius:16px; height:232px;">
<img class="w-25" src="images/trading.png"/>
<h3 style="color:#522065; font-size:22px;"
class="pt-2"> Trading </h3>
<p style="font-size:20px;">Easily procure and sell
your products</p>
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4 bg-white"
style="border-radius:16px;height:232px; ">
<img class="w-25" src="images/trading.png"/>
<h3 style="color:#522065; font-size:22px;"
class="pt-2"> E-commerce & Website </h3>
<p style="font-size:20px;">Mobile friendly, awe-inspiring
product pages</p>
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4 bg-white"
style="border-radius:16px; height:232px;">
<img class="w-25" src="images/POS.png"/>
<h3 style="color:#522065; font-size:22px;"
class="pt-2"> POS</h3>
<p style="font-size:20px;">Easy configuration and
convivial experience</p>
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4 bg-white"
style="border-radius:16px; height:232px;">
<img class="w-25" src="images/Edu.png"/>
<h3 style="color:#522065; font-size:22px;"
class="pt-2">Education</h3>
<p style="font-size:20px;">A platform for educational
management</p>
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4 bg-white"
style="border-radius:16px; height:232px;">
<img class="w-25" src="images/Production.png"/>
<h3 style="color:#522065; font-size:22px;"
class="pt-2">Manufacturing</h3>
<p style="font-size:20px;">Plan, track and schedule
your operations</p>
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4 bg-white"
style="border-radius:16px; height:232px;">
<img class="w-25" src="images/Production.png"/>
<h3 style="color:#522065; font-size:22px;"
class="pt-2">Manufacturing</h3>
<p style="font-size:20px;">Plan, track and schedule
your operations</p>
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4 bg-white"
style="border-radius:16px; height:232px;">
<img class="w-25" src="images/POS.png"/>
<h3 style="color:#522065; font-size:22px;"
class="pt-2">Service Management</h3>
<p style="font-size:20px;">Keep track of services
and invoice</p>
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4"
style="border-radius:16px;height:232px; background-color:#fff;">
<img class="w-25" src="images/Edu.png"/>
<h3 style="color:#522065; font-size:22px;"
class="pt-2">Restaurant</h3>
<p style="font-size:20px;">Run your bar or restaurant
methodically</p>
</div>
</div>
<div class="col-lg-4 mt-4">
<div class="w-100 float-left p-4"
style="border-radius:16px; height:232px; background-color:#fff;">
<img class="w-25" src="images/Production.png"/>
<h3 style="color:#522065; font-size:22px;"
class="pt-2">Hotel management</h3>
<p style="font-size:20px;">An all-inclusive hotel
management application</p>
</div>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.1/dist/jquery.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

BIN
theme_coffee_shop/static/description/screenshot/single product 2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-theam-46.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-theam-5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-theam-6.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 975 KiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-them-1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 990 KiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-them-12.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 930 KiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-them-13.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-them-14.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-them-15.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-them-16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 269 KiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-them-17.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-them-18.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 KiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-them-19.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 570 KiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-them-2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-them-20.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 KiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-them-21.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-them-22.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
theme_coffee_shop/static/description/screenshot/template-white-them-23.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

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

Loading…
Cancel
Save