@ -0,0 +1,50 @@ | 
				
			|||||
 | 
					.. image:: https://img.shields.io/badge/license-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:  (V18) Mufeeda Shirin, | 
				
			||||
 | 
					            (V17) Sayanth M K, Sruthi M, | 
				
			||||
 | 
					            (V16) Ayisha Sumayya K, Abbas P, | 
				
			||||
 | 
					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>`__ | 
				
			||||
@ -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 | 
				
			||||
@ -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': '18.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.png', | 
				
			||||
 | 
					               'static/description/theme_screenshot.jpg'], | 
				
			||||
 | 
					    'license': 'LGPL-3', | 
				
			||||
 | 
					    'installable': True, | 
				
			||||
 | 
					    'auto_install': False, | 
				
			||||
 | 
					    'application': False | 
				
			||||
 | 
					} | 
				
			||||
@ -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 | 
				
			||||
@ -0,0 +1,389 @@ | 
				
			|||||
 | 
					# -*- 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.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 , 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' % env['ir.http']._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" % request.env['ir.http']._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 | 
				
			||||
 | 
					        products_prices = lazy( | 
				
			||||
 | 
					            lambda: products._get_sales_prices(website)) | 
				
			||||
 | 
					        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) | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    @http.route(['/menu/<model("product.template"):product>'], type='http', | 
				
			||||
 | 
					                auth="public", website=True, sitemap=True) | 
				
			||||
 | 
					    def product(self, product, category='', search='', **kwargs): | 
				
			||||
 | 
					        """Function for rendering product page""" | 
				
			||||
 | 
					        if not request.website.has_ecommerce_access(): | 
				
			||||
 | 
					            return request.redirect('/web/login') | 
				
			||||
 | 
					        return request.render("website_sale.product", | 
				
			||||
 | 
					                              self._prepare_product_values(product, category, | 
				
			||||
 | 
					                                                           search, **kwargs)) | 
				
			||||
@ -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> | 
				
			||||
@ -0,0 +1,6 @@ | 
				
			|||||
 | 
					## Module <theme_coffee_shop> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					#### 01.11.2024 | 
				
			||||
 | 
					#### Version 18.0.1.0.0 | 
				
			||||
 | 
					#### ADD | 
				
			||||
 | 
					- Initial commit for Theme Coffee Shop | 
				
			||||
@ -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 | 
				
			||||
@ -0,0 +1,40 @@ | 
				
			|||||
 | 
					# -*- 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 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") | 
				
			||||
| 
		 After Width: | Height: | Size: 353 KiB  | 
| 
		 After Width: | Height: | Size: 8.4 KiB  | 
| 
		 After Width: | Height: | Size: 314 KiB  | 
| 
		 After Width: | Height: | Size: 109 KiB  | 
| 
		 After Width: | Height: | Size: 415 KiB  | 
| 
		 After Width: | Height: | Size: 145 KiB  | 
| 
		 After Width: | Height: | Size: 370 KiB  | 
| 
		 After Width: | Height: | Size: 194 KiB  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
| 
		 After Width: | Height: | Size: 16 KiB  | 
| 
		 After Width: | Height: | Size: 353 KiB  | 
| 
		 After Width: | Height: | Size: 1.2 MiB  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 558 KiB  | 
| 
		 After Width: | Height: | Size: 163 KiB  | 
| 
		 After Width: | Height: | Size: 4.1 MiB  | 
| 
		 After Width: | Height: | Size: 3.5 MiB  | 
| 
		 After Width: | Height: | Size: 1.7 MiB  | 
| 
		 After Width: | Height: | Size: 3.3 MiB  | 
| 
		 After Width: | Height: | Size: 1.3 KiB  | 
| 
		 After Width: | Height: | Size: 192 KiB  | 
| 
		 After Width: | Height: | Size: 1.7 KiB  | 
| 
		 After Width: | Height: | Size: 2.2 KiB  | 
| 
		 After Width: | Height: | Size: 1.3 KiB  | 
| 
		 After Width: | Height: | Size: 2.1 KiB  | 
| 
		 After Width: | Height: | Size: 929 B  | 
| 
		 After Width: | Height: | Size: 23 KiB  | 
| 
		 After Width: | Height: | Size: 137 KiB  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 151 KiB  | 
| 
		 After Width: | Height: | Size: 103 KiB  | 
| 
		 After Width: | Height: | Size: 198 KiB  | 
| 
		 After Width: | Height: | Size: 331 KiB  | 
| 
		 After Width: | Height: | Size: 258 KiB  | 
| 
		 After Width: | Height: | Size: 368 KiB  | 
| 
		 After Width: | Height: | Size: 189 KiB  | 
| 
		 After Width: | Height: | Size: 320 KiB  | 
| 
		 After Width: | Height: | Size: 8.4 KiB  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
| 
		 After Width: | Height: | Size: 885 B  | 
@ -0,0 +1,849 @@ | 
				
			|||||
 | 
					<!DOCTYPE html> | 
				
			||||
 | 
					<html lang="en"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<head> | 
				
			||||
 | 
					    <meta charset="UTF-8"/> | 
				
			||||
 | 
					    <meta name="viewport" content="width=device-width, initial-scale=1.0"/> | 
				
			||||
 | 
					    <title>app index</title> | 
				
			||||
 | 
					    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" | 
				
			||||
 | 
					          rel="stylesheet"/> | 
				
			||||
 | 
					    <link rel="preconnect" href="https://fonts.googleapis.com"> | 
				
			||||
 | 
					    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> | 
				
			||||
 | 
					    <link href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap" | 
				
			||||
 | 
					          rel="stylesheet"> | 
				
			||||
 | 
					    <link rel="stylesheet" | 
				
			||||
 | 
					          href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/all.min.css"/> | 
				
			||||
 | 
					    <style> | 
				
			||||
 | 
					        :root { | 
				
			||||
 | 
					          --primary-color: #F5C000; | 
				
			||||
 | 
					          --bg-white: #fff; | 
				
			||||
 | 
					          --text-color: #121212; | 
				
			||||
 | 
					          --text-color-light: #64728f; | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        body { | 
				
			||||
 | 
					          font-family: "Montserrat", sans-serif; | 
				
			||||
 | 
					        } | 
				
			||||
 | 
					    </style> | 
				
			||||
 | 
					</head> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					<body> | 
				
			||||
 | 
					<!-- overview --> | 
				
			||||
 | 
					<div class="container"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!-- support-header --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <div class="supports my-5 py-3" style="border-bottom: 1px solid #e7e7e7;"> | 
				
			||||
 | 
					        <div class="row justify-content-between"> | 
				
			||||
 | 
					            <div class="col-4"> | 
				
			||||
 | 
					                <div class="my-3"> | 
				
			||||
 | 
					                    <img src="//apps.odoocdn.com/apps/assets/17.0/theme_boec/images/Cybrosys.png?fcdde35" | 
				
			||||
 | 
					                         style="width:auto !important; height:40px !important"> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					            <div class="col-6"> | 
				
			||||
 | 
					                <div class="row" style="margin-top:10px"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                    <div class="my-3 d-flex align-items-center justify-content-end"> | 
				
			||||
 | 
					                        <span class="me-3"><b>Supports: </b></span> | 
				
			||||
 | 
					                        <div class="text-center" | 
				
			||||
 | 
					                             style="background-color:#017E84 !important; font-size:0.8rem !important; color:#fff !important; font-weight:500 !important; padding:4px !important; margin:0 3px !important; border-radius:50px !important; min-width:120px !important"> | 
				
			||||
 | 
					                            Community | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="text-center" | 
				
			||||
 | 
					                             style="background-color:#875A7B !important; color:#fff !important; font-size:0.8rem !important; font-weight:500 !important; padding:4px !important; margin:0 3px !important; border-radius:50px !important; min-width:120px !important"> | 
				
			||||
 | 
					                            Enterprise | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="row" style="margin-top:10px"> | 
				
			||||
 | 
					                    <div class="d-flex align-items-center justify-content-end"> | 
				
			||||
 | 
					                        <span class="me-3"><b>Availability: </b></span> | 
				
			||||
 | 
					                        <div class="text-center col" | 
				
			||||
 | 
					                             style="border:1px solid #017E84; font-size:0.8rem !important; color:#017E84 !important; font-weight:500 !important; padding:4px !important; margin:0 3px !important; border-radius:20px !important; min-width:120px !important"> | 
				
			||||
 | 
					                            <i class="fa fa-times" style="color:red"></i> Odoo | 
				
			||||
 | 
					                            Online | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="text-center col" | 
				
			||||
 | 
					                             style="font-size:0.8rem !important; border:1px solid #714b67; color:#714b67 !important; font-weight:500 !important; padding:4px !important; margin:0 3px !important; border-radius:20px !important; min-width:120px !important"> | 
				
			||||
 | 
					                            <i class="fa fa-check" style="color:green"></i> | 
				
			||||
 | 
					                            Odoo.sh | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="text-center col" | 
				
			||||
 | 
					                             style="font-size:0.8rem !important; color:#5B899E !important; border:1px solid #5B899E; font-weight:500 !important; padding:4px !important; margin:0 3px !important; border-radius:20px !important; min-width:120px !important"> | 
				
			||||
 | 
					                            <i class="fa fa-check" style="color:green"></i> On | 
				
			||||
 | 
					                            Premise | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!--  --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!-- banner-section --> | 
				
			||||
 | 
					    <div class="my-5"> | 
				
			||||
 | 
					        <div class=""> | 
				
			||||
 | 
					            <img src="./img/banner.png" class="img-fluid" | 
				
			||||
 | 
					                 style="border-radius: 16px; width:1300px"> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!--  --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!--feature section  --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <div class="my-5" | 
				
			||||
 | 
					         style="padding: 100px; background-color: #f1f5fd; border-radius: 16px;"> | 
				
			||||
 | 
					        <div class="container"> | 
				
			||||
 | 
					            <div class="row mb-60"> | 
				
			||||
 | 
					                <div class="col-lg-12 d-flex justify-content-center align-items-center flex-wrap gap-3"> | 
				
			||||
 | 
					                    <div class="position-relative" ; style=" | 
				
			||||
 | 
					    text-align: center; | 
				
			||||
 | 
					    font-size: 46.875px; | 
				
			||||
 | 
					    font-style: normal; | 
				
			||||
 | 
					     padding-bottom: 40px; "> | 
				
			||||
 | 
					                        <h2 style="font-weight: 600;">Our Features</h2> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                        <p style="color: #262424; | 
				
			||||
 | 
					        text-align: justify; | 
				
			||||
 | 
					        font-size: 15.625px; | 
				
			||||
 | 
					        font-style: normal; | 
				
			||||
 | 
					        font-weight: 400; | 
				
			||||
 | 
					        line-height: 25.6px;">The Theme Coffee Shop 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 style="color: #262424;text-align: justify; | 
				
			||||
 | 
					        font-size: 15.625px; | 
				
			||||
 | 
					        font-style: normal; | 
				
			||||
 | 
					        font-weight: 400; | 
				
			||||
 | 
					        line-height: 25.6px;">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 style="color: #262424; | 
				
			||||
 | 
					        text-align: justify; | 
				
			||||
 | 
					        font-size: 15.625px; | 
				
			||||
 | 
					        font-style: normal; | 
				
			||||
 | 
					        font-weight: 400; | 
				
			||||
 | 
					        line-height: 25.6px;">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> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					            <div class="row g-4"> | 
				
			||||
 | 
					                <div class="col-lg-4 col-md-6" style="visibility: visible;"> | 
				
			||||
 | 
					                    <div style="background-color: #fff;height: 100%; | 
				
			||||
 | 
					  border-radius: 12px; | 
				
			||||
 | 
					  padding: 35px 30px;"> | 
				
			||||
 | 
					                        <div class="content"> | 
				
			||||
 | 
					                            <img src="./img/feature-star.svg" | 
				
			||||
 | 
					                                 class="img-responsive" height="46px" | 
				
			||||
 | 
					                                 width="46px"> | 
				
			||||
 | 
					                            <h4 class="mt-3"><a href="#" style=" color: #121212; | 
				
			||||
 | 
					    font-size: 18px; | 
				
			||||
 | 
					    text-decoration: none; | 
				
			||||
 | 
					    font-weight: 700; | 
				
			||||
 | 
					    line-height: 1.2;">Shop Page</a></h4> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                            <p style="    font-size: 16px; | 
				
			||||
 | 
					                font-weight: 400; | 
				
			||||
 | 
					                line-height: 1.5; | 
				
			||||
 | 
					                color: #212529;"> The shop display you products in a stylish | 
				
			||||
 | 
					                                way. It's displaying 4 products in a row, and it | 
				
			||||
 | 
					                                will attract your customers. Also, the Category | 
				
			||||
 | 
					                                side are customized in collapsible style. | 
				
			||||
 | 
					                                Display | 
				
			||||
 | 
					                                high quality images for your products | 
				
			||||
 | 
					                            </p> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-lg-4 col-md-6"> | 
				
			||||
 | 
					                    <div style="background-color: #fff; height: 100%; | 
				
			||||
 | 
					  border-radius: 12px; | 
				
			||||
 | 
					  padding: 35px 30px;"> | 
				
			||||
 | 
					                        <div class="content"> | 
				
			||||
 | 
					                            <img src="./img/feature-star.svg" | 
				
			||||
 | 
					                                 class="img-responsive" height="46px" | 
				
			||||
 | 
					                                 width="46px"> | 
				
			||||
 | 
					                            <h4 class="mt-3"><a href="#" style=" color: #121212; | 
				
			||||
 | 
					    font-size: 18px; | 
				
			||||
 | 
					    text-decoration: none; | 
				
			||||
 | 
					    font-weight: 700; | 
				
			||||
 | 
					    line-height: 1.2;">About Us</a></h4> | 
				
			||||
 | 
					                            <p style="font-size: 16px; | 
				
			||||
 | 
					                font-weight: 400; | 
				
			||||
 | 
					                line-height: 1.5; | 
				
			||||
 | 
					                color: #212529;">Theme coffee shop have a fully customized about | 
				
			||||
 | 
					                                us page with details of employees.</p> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-lg-4 col-md-6"> | 
				
			||||
 | 
					                    <div style="background-color: #fff; height: 100%; | 
				
			||||
 | 
					  border-radius: 12px; | 
				
			||||
 | 
					  padding: 35px 30px;"> | 
				
			||||
 | 
					                        <div class="content"> | 
				
			||||
 | 
					                            <img src="./img/feature-star.svg" | 
				
			||||
 | 
					                                 class="img-responsive" height="46px" | 
				
			||||
 | 
					                                 width="46px"> | 
				
			||||
 | 
					                            <h4 class="mt-3"><a href="#" style=" color: #121212; | 
				
			||||
 | 
					    font-size: 18px; | 
				
			||||
 | 
					    text-decoration: none; | 
				
			||||
 | 
					    font-weight: 700; | 
				
			||||
 | 
					    line-height: 1.2;">Contact page</a></h4> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                            <p style="font-size: 16px; | 
				
			||||
 | 
					                font-weight: 400; | 
				
			||||
 | 
					                line-height: 1.5; | 
				
			||||
 | 
					                color: #212529;">In the customized Contact us page the company | 
				
			||||
 | 
					                                details will show, and it will help to your | 
				
			||||
 | 
					                                customer to reach you in simple way.</p> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                        </a> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-lg-4 col-md-6"> | 
				
			||||
 | 
					                    <div style="background-color: #fff;height: 100%; | 
				
			||||
 | 
					  border-radius: 12px; | 
				
			||||
 | 
					  padding: 35px 30px;"> | 
				
			||||
 | 
					                        <div class="content"> | 
				
			||||
 | 
					                            <img src="./img/feature-star.svg" | 
				
			||||
 | 
					                                 class="img-responsive" height="46px" | 
				
			||||
 | 
					                                 width="46px"> | 
				
			||||
 | 
					                            <h4 class="mt-3"><a href="#" style=" color: #121212; | 
				
			||||
 | 
					    font-size: 18px; | 
				
			||||
 | 
					    text-decoration: none; | 
				
			||||
 | 
					    font-weight: 700; | 
				
			||||
 | 
					    line-height: 1.2;">Customized eCommerce websites</a></h4> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                            <p style="font-size: 16px; | 
				
			||||
 | 
					                font-weight: 400; | 
				
			||||
 | 
					                line-height: 1.5; | 
				
			||||
 | 
					                color: #212529;">Fully customizes eCommerce websites, including | 
				
			||||
 | 
					                                shop and product views.</p> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-lg-4 col-md-6"> | 
				
			||||
 | 
					                    <div style="background-color: #fff;height: 100%; | 
				
			||||
 | 
					  border-radius: 12px; | 
				
			||||
 | 
					  padding: 35px 30px;"> | 
				
			||||
 | 
					                        <div class="content"> | 
				
			||||
 | 
					                            <img src="./img/feature-star.svg" | 
				
			||||
 | 
					                                 class="img-responsive" height="46px" | 
				
			||||
 | 
					                                 width="46px"> | 
				
			||||
 | 
					                            <h4 class="mt-3"><a href="#" style=" color: #121212; | 
				
			||||
 | 
					    font-size: 18px; | 
				
			||||
 | 
					    text-decoration: none; | 
				
			||||
 | 
					    font-weight: 700; | 
				
			||||
 | 
					    line-height: 1.2;">Design</a></h4> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                            <p style="font-size: 16px; | 
				
			||||
 | 
					                font-weight: 400; | 
				
			||||
 | 
					                line-height: 1.5; | 
				
			||||
 | 
					                color: #212529;"> The most recent website creation for a coffee | 
				
			||||
 | 
					                                shop.Flexible and easy to use</p> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-lg-4 col-md-6"> | 
				
			||||
 | 
					                    <div style="background-color: #fff;height: 100%; | 
				
			||||
 | 
					  border-radius: 12px; | 
				
			||||
 | 
					  padding: 35px 30px;"> | 
				
			||||
 | 
					                        <div class="content"> | 
				
			||||
 | 
					                            <img src="./img/feature-star.svg" | 
				
			||||
 | 
					                                 class="img-responsive" height="46px" | 
				
			||||
 | 
					                                 width="46px"> | 
				
			||||
 | 
					                            <h4 class="mt-3"><a href="#" style=" color: #121212; | 
				
			||||
 | 
					    font-size: 18px; | 
				
			||||
 | 
					    text-decoration: none; | 
				
			||||
 | 
					    font-weight: 700; | 
				
			||||
 | 
					    line-height: 1.2;">User-friendly interface</a></h4> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                            <p style="font-size: 16px; | 
				
			||||
 | 
					                font-weight: 400; | 
				
			||||
 | 
					                line-height: 1.5; | 
				
			||||
 | 
					                color: #212529;">User-friendly interface for both desktop and | 
				
			||||
 | 
					                                mobile devices.</p> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!--  --> | 
				
			||||
 | 
					    <section class="container my-5"> | 
				
			||||
 | 
					        <div class="row"> | 
				
			||||
 | 
					            <div class="col-md-12"> | 
				
			||||
 | 
					                <ul role="tablist" | 
				
			||||
 | 
					                    class="nav nav-tabs justify-content-center d-flex justify-content-center" | 
				
			||||
 | 
					                    data-tabs="tabs" | 
				
			||||
 | 
					                    style="border:none; background-color:unset; margin:0 auto"> | 
				
			||||
 | 
					                </ul> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					            <div class="col-md-12  tab-content ui-front" | 
				
			||||
 | 
					                 style="border-radius:20px;border: 1px solid #D6E0FF; height:auto;padding: 20px;"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                <div class="tab-pane active show fade" id="Features" | 
				
			||||
 | 
					                     role="tabpanel" aria-labelledby="features-1"> | 
				
			||||
 | 
					                    <section class=""> | 
				
			||||
 | 
					                        <section class="mt-5"> | 
				
			||||
 | 
					                            <h2 class="pb-5" | 
				
			||||
 | 
					                                style="font-weight: 700; text-align: center;"> | 
				
			||||
 | 
					                                Theme Features</h2> | 
				
			||||
 | 
					                            <div class="row" style="margin-bottom: 24px;"> | 
				
			||||
 | 
					                                <div class="col-md-8"> | 
				
			||||
 | 
					                                    <div style="border-radius: 10px; padding: 32px;background-color: #303030;-webkit-backdrop-filter: blur(5px);backdrop-filter: blur(5px); height: 100%;"> | 
				
			||||
 | 
					                                        <div class="info"> | 
				
			||||
 | 
					                        <span class="label" style="font-size: 12px;font-style: normal; | 
				
			||||
 | 
					                          font-weight: 700; | 
				
			||||
 | 
					                          line-height: 32px; | 
				
			||||
 | 
					                          color: #f14848; | 
				
			||||
 | 
					                          margin-bottom: 13px; | 
				
			||||
 | 
					                          text-transform: uppercase;">HIGHLIGHT</span> | 
				
			||||
 | 
					                                            <h3 class="text-white" style="color: #fff;font-size: 24px;font-weight: 500;line-height: 32px;margin-bottom: 9px;">Desktop View</h3> | 
				
			||||
 | 
					                                            <p class="des" style="color: #c7c7c7; | 
				
			||||
 | 
					                          font-size: 16px; | 
				
			||||
 | 
					                          font-style: normal; | 
				
			||||
 | 
					                          font-weight: 400; | 
				
			||||
 | 
					                          line-height: 24px; | 
				
			||||
 | 
					                          margin-bottom: 0;">Customizing and using our theme is | 
				
			||||
 | 
					                                                effortless. With a simple | 
				
			||||
 | 
					                                                drag-and-drop interface, you can | 
				
			||||
 | 
					                                                create visually stunning | 
				
			||||
 | 
					                                                webpages. | 
				
			||||
 | 
					                                                Whether you're a novice or an | 
				
			||||
 | 
					                                                experienced user, our intuitive | 
				
			||||
 | 
					                                                design tools make the process | 
				
			||||
 | 
					                                                seamless. Say goodbye to | 
				
			||||
 | 
					                                                complicated | 
				
			||||
 | 
					                                                setups and hello to hassle-free | 
				
			||||
 | 
					                                                website customization. Elevate | 
				
			||||
 | 
					                                                your | 
				
			||||
 | 
					                                                online presence with ease using | 
				
			||||
 | 
					                                                our | 
				
			||||
 | 
					                                                user-friendly theme.</p> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <div class="mt-5"> | 
				
			||||
 | 
					                                            <img src="./img/template-white-them-1.png" | 
				
			||||
 | 
					                                                 alt="Grid item" | 
				
			||||
 | 
					                                                 class="img-fluid" | 
				
			||||
 | 
					                                                 style="height:500px;"> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <a href="#" target="_blank" | 
				
			||||
 | 
					                                           class="url_link" name="grid_popup" | 
				
			||||
 | 
					                                           aria-label="Url link label"><span></span></a> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                                <!--  --> | 
				
			||||
 | 
					                                <div class="col-md-4"> | 
				
			||||
 | 
					                                    <div style="border-radius: 10px; padding: 32px; | 
				
			||||
 | 
					                      background-color: #303030; | 
				
			||||
 | 
					                      -webkit-backdrop-filter: blur(5px); | 
				
			||||
 | 
					                      backdrop-filter: blur(5px); height: 100%;"> | 
				
			||||
 | 
					                                        <div class="info"> | 
				
			||||
 | 
					                        <span class="label" style="font-size: 12px; | 
				
			||||
 | 
					                          font-style: normal; | 
				
			||||
 | 
					                          font-weight: 700; | 
				
			||||
 | 
					                          line-height: 32px; | 
				
			||||
 | 
					                          color: #f14848; | 
				
			||||
 | 
					                          margin-bottom: 13px; | 
				
			||||
 | 
					                          text-transform: uppercase;">HIGHLIGHT</span> | 
				
			||||
 | 
					                                            <h3 class="text-white" style="color: #fff;font-size: 24px;font-weight: 500;line-height: 32px;margin-bottom: 9px;">Our awesome Premium Features.</h3> | 
				
			||||
 | 
					                                            <p class="des" style="color: #c7c7c7; | 
				
			||||
 | 
					                          font-size: 16px; | 
				
			||||
 | 
					                          font-style: normal; | 
				
			||||
 | 
					                          font-weight: 400; | 
				
			||||
 | 
					                          line-height: 24px; | 
				
			||||
 | 
					                          margin-bottom: 0;">Our expert baristas don’t just make coffee, they create works of art. From silky lattes to bold espressos, each cup is crafted with passion and precision..</p> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <div class="mt-5"> | 
				
			||||
 | 
					                                            <img src="./img/featuress.png" | 
				
			||||
 | 
					                                                 alt="Grid item" | 
				
			||||
 | 
					                                                 class="img-fluid" style="height:500px;"> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <a href="#" target="_blank" | 
				
			||||
 | 
					                                           class="url_link" name="grid_popup" | 
				
			||||
 | 
					                                           aria-label="Url link label"><span></span></a> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                            <!--  --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                            <!--row-3 --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                            <div class="row" style="margin-bottom: 20px;"> | 
				
			||||
 | 
					                                <div class="col-md-4"> | 
				
			||||
 | 
					                                    <div style="border-radius: 10px; padding: 32px; | 
				
			||||
 | 
					                    background-color: rgba(48, 48, 48, 1); | 
				
			||||
 | 
					                    -webkit-backdrop-filter: blur(5px); | 
				
			||||
 | 
					                    backdrop-filter: blur(5px); height: 100%;"> | 
				
			||||
 | 
					                                        <div class="info"> | 
				
			||||
 | 
					                        <span class="label" style="font-size: 12px; | 
				
			||||
 | 
					                        font-style: normal; | 
				
			||||
 | 
					                        font-weight: 700; | 
				
			||||
 | 
					                        line-height: 32px; | 
				
			||||
 | 
					                        color: #f14848; | 
				
			||||
 | 
					                        margin-bottom: 13px; | 
				
			||||
 | 
					                        text-transform: uppercase;">HIGHLIGHT</span> | 
				
			||||
 | 
					                                              <h3 class="text-white" style="    color: #fff; | 
				
			||||
 | 
					                        font-size: 24px; | 
				
			||||
 | 
					                        font-weight: 500; | 
				
			||||
 | 
					                        line-height: 32px; | 
				
			||||
 | 
					                        margin-bottom: 9px;">Let’s Talk Coffee</h3> | 
				
			||||
 | 
					                                            <p class="des" style="color: #c7c7c7; | 
				
			||||
 | 
					                        font-size: 16px; | 
				
			||||
 | 
					                        font-style: normal; | 
				
			||||
 | 
					                        font-weight: 400; | 
				
			||||
 | 
					                        line-height: 24px; | 
				
			||||
 | 
					                        margin-bottom: 0;">The Contact Us page should capture the warm, inviting, and cozy atmosphere of the café itself. The page should feel approachable, with a touch of personality that reflects the charm of your coffee shop</p> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <div class="mt-5"> | 
				
			||||
 | 
					                                            <img src="./img/countactus.png" | 
				
			||||
 | 
					                                                 alt="Grid item" | 
				
			||||
 | 
					                                                 class="img-fluid" | 
				
			||||
 | 
					                                            style="height:600px;"> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <a href="#" target="_blank" | 
				
			||||
 | 
					                                           class="url_link" name="grid_popup" | 
				
			||||
 | 
					                                           aria-label="Url link label"><span></span></a> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                                <!--  --> | 
				
			||||
 | 
					                                <div class="col-md-8"> | 
				
			||||
 | 
					                                    <div style="border-radius: 10px; padding: 32px; | 
				
			||||
 | 
					                    background-color: rgba(48, 48, 48, 1); | 
				
			||||
 | 
					                    -webkit-backdrop-filter: blur(5px); | 
				
			||||
 | 
					                    backdrop-filter: blur(5px); height: 100%;"> | 
				
			||||
 | 
					                                        <div class="info"> | 
				
			||||
 | 
					                        <span class="label" style="font-size: 12px; | 
				
			||||
 | 
					                        font-style: normal; | 
				
			||||
 | 
					                        font-weight: 700; | 
				
			||||
 | 
					                        line-height: 32px; | 
				
			||||
 | 
					                        color: #f14848; | 
				
			||||
 | 
					                        margin-bottom: 13px; | 
				
			||||
 | 
					                        text-transform: uppercase;">HIGHLIGHT</span> | 
				
			||||
 | 
					                                            <h3 class="text-white" style="    color: #fff; | 
				
			||||
 | 
					                        font-size: 24px; | 
				
			||||
 | 
					                        font-weight: 500; | 
				
			||||
 | 
					                        line-height: 32px; | 
				
			||||
 | 
					                        margin-bottom: 9px;">HomePage</h3> | 
				
			||||
 | 
					                                            <p class="des" style="color: #c7c7c7; | 
				
			||||
 | 
					                        font-size: 16px; | 
				
			||||
 | 
					                        font-style: normal; | 
				
			||||
 | 
					                        font-weight: 400; | 
				
			||||
 | 
					                        line-height: 24px; | 
				
			||||
 | 
					                        margin-bottom: 0;">Our homepage offers a clean, modern design with an inviting, cozy atmosphere that reflects the essence of our coffee shop. With an easy-to-navigate layout, stunning visuals, and a seamless user experience.</p> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <div class=" mt-5" | 
				
			||||
 | 
					                                             style="--aspect-ratioapt: 872/443;"> | 
				
			||||
 | 
					                                            <img src="./img/coffee_01.png" | 
				
			||||
 | 
					                                                 alt="Grid item" | 
				
			||||
 | 
					                                                 class="img-fluid" | 
				
			||||
 | 
					                                                 style="height:400px;"> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <a href="#" target="_blank" | 
				
			||||
 | 
					                                           class="url_link" name="grid_popup" | 
				
			||||
 | 
					                                           aria-label="Url link label"><span></span></a> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                            <!--  --> | 
				
			||||
 | 
					                        </section> | 
				
			||||
 | 
					                    </section> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    </section> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!--sections  --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!-- section content --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <section class="mb-5" | 
				
			||||
 | 
					             style="background-color: #f1f5fd; border: 1px solid #D6E0FF; border-radius: 20px; padding: 40px;"> | 
				
			||||
 | 
					        <div class="row d-flex align-items-center"> | 
				
			||||
 | 
					            <div class="col col-12 col-md-12 col-lg-6"> | 
				
			||||
 | 
					                <div style="padding: 20px;"> | 
				
			||||
 | 
					                    <h4 class="" style="font-size: 46px;"> | 
				
			||||
 | 
					              <span style="color: #212121; | 
				
			||||
 | 
					                font-weight: 700; | 
				
			||||
 | 
					                display: inline-block; | 
				
			||||
 | 
					                width: 100%;">Infuse Your Website with the Warmth of a </span><br> | 
				
			||||
 | 
					                        <span style="color: #212121; | 
				
			||||
 | 
					              font-weight: 700; | 
				
			||||
 | 
					              display: inline-block; | 
				
			||||
 | 
					              width: 100%;">Coffee Shop</span> | 
				
			||||
 | 
					                    </h4> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                    <div class="mt-4"> | 
				
			||||
 | 
					                        <p style="color: #444; font-size: 16px; | 
				
			||||
 | 
					              font-weight: 400; | 
				
			||||
 | 
					              line-height: 1.5;">Give your coffee shop a digital makeover with a | 
				
			||||
 | 
					                            website that’s as smooth as your best brew. | 
				
			||||
 | 
					                            Optimized for desktop, tablet, or mobile, your site | 
				
			||||
 | 
					                            will combine stunning design with seamless | 
				
			||||
 | 
					                            functionality, offering visitors a visually pleasing | 
				
			||||
 | 
					                            and easy-to-navigate experience they’ll want to | 
				
			||||
 | 
					                            return to</p> | 
				
			||||
 | 
					                        <ul class="d-flex flex-column gap-3 ms-0 ps-0 mt-4"> | 
				
			||||
 | 
					                            <li style="list-style: none;" | 
				
			||||
 | 
					                                class="d-flex align-items-center gap-2"><img | 
				
			||||
 | 
					                                    src="./img/check.svg" | 
				
			||||
 | 
					                                    style="width: 24px;"><span style="  color: #444; | 
				
			||||
 | 
					                    font-size: 16px; | 
				
			||||
 | 
					                    font-style: normal; | 
				
			||||
 | 
					                    font-weight: 400; | 
				
			||||
 | 
					                    line-height: 32px;">High-Quality Visuals</span></li> | 
				
			||||
 | 
					                            <li style="list-style: none;" | 
				
			||||
 | 
					                                class="d-flex align-items-center gap-2"><img | 
				
			||||
 | 
					                                    src="./img/check.svg" | 
				
			||||
 | 
					                                    style="width: 24px;"><span style="  color: #444; | 
				
			||||
 | 
					                    font-size: 16px; | 
				
			||||
 | 
					                    font-style: normal; | 
				
			||||
 | 
					                    font-weight: 400; | 
				
			||||
 | 
					                    line-height: 32px;">Fast Load Times</span></li> | 
				
			||||
 | 
					                            <li style="list-style: none;" | 
				
			||||
 | 
					                                class="d-flex align-items-center gap-2"><img | 
				
			||||
 | 
					                                    src="./img/check.svg" | 
				
			||||
 | 
					                                    style="width: 24px;"><span style=" color: #444; | 
				
			||||
 | 
					                    font-size: 16px; | 
				
			||||
 | 
					                    font-style: normal; | 
				
			||||
 | 
					                    font-weight: 400; | 
				
			||||
 | 
					                    line-height: 32px;">Intuitive Navigation and User Experience</span> | 
				
			||||
 | 
					                            </li> | 
				
			||||
 | 
					                            <li style="list-style: none;" | 
				
			||||
 | 
					                                class="d-flex align-items-center gap-2"><img | 
				
			||||
 | 
					                                    src="./img/check.svg" | 
				
			||||
 | 
					                                    style="width: 24px;"><span style=" color: #444; | 
				
			||||
 | 
					                    font-size: 16px; | 
				
			||||
 | 
					                    font-style: normal; | 
				
			||||
 | 
					                    font-weight: 400; | 
				
			||||
 | 
					                    line-height: 32px;">Responsive and Adaptive Design</span> | 
				
			||||
 | 
					                            </li> | 
				
			||||
 | 
					                        </ul> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					            <div class="col col-12 col-md-12 col-lg-6"> | 
				
			||||
 | 
					                <div> | 
				
			||||
 | 
					                    <div> | 
				
			||||
 | 
					                        <img class="img-fluid" src="./img/01.jpg" style=" | 
				
			||||
 | 
					                border-radius: 20px; | 
				
			||||
 | 
					            "> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </section> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!-- 2 --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <section class="" | 
				
			||||
 | 
					             style="background-color: #f1f5fd; border: 1px solid #D6E0FF; border-radius: 20px; padding: 40px;"> | 
				
			||||
 | 
					        <div class="row d-flex align-items-center"> | 
				
			||||
 | 
					            <div class="col col-12 col-md-12 col-lg-6"> | 
				
			||||
 | 
					                <div> | 
				
			||||
 | 
					                    <div> | 
				
			||||
 | 
					                        <img class="img-fluid" src="./img/2.jpg" | 
				
			||||
 | 
					                             style=" | 
				
			||||
 | 
					                border-radius: 20px; | 
				
			||||
 | 
					            "> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					            <div class="col col-12 col-md-12 col-lg-6"> | 
				
			||||
 | 
					                <div style="padding: 20px;"> | 
				
			||||
 | 
					                    <h4 class="" style="font-size: 46px;"> | 
				
			||||
 | 
					              <span style="color: #212121; | 
				
			||||
 | 
					              font-weight: 700; | 
				
			||||
 | 
					              display: inline-block; | 
				
			||||
 | 
					              width: 100%;">Designed for Mobile, </span><br> | 
				
			||||
 | 
					                        <span style="color: #212121; | 
				
			||||
 | 
					              font-weight: 700; | 
				
			||||
 | 
					              display: inline-block; | 
				
			||||
 | 
					              width: 100%;"> Infused with Coffee Shop Vibes</span> | 
				
			||||
 | 
					                    </h4> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                    <div class="mt-4"> | 
				
			||||
 | 
					                        <p style="color: #444; font-size: 16px; | 
				
			||||
 | 
					              font-weight: 400; | 
				
			||||
 | 
					              line-height: 1.5;">Every detail of your website is brewed for | 
				
			||||
 | 
					                            perfection, delivering a seamless and user-friendly | 
				
			||||
 | 
					                            experience on any mobile device. Your customers will | 
				
			||||
 | 
					                            savor smooth navigation and rich visuals, just like | 
				
			||||
 | 
					                            their favorite coffee blend.</p> | 
				
			||||
 | 
					                        <ul class="d-flex flex-column gap-3 ms-0 ps-0 mt-4"> | 
				
			||||
 | 
					                            <li style="list-style: none;" | 
				
			||||
 | 
					                                class="d-flex align-items-center gap-2"><img | 
				
			||||
 | 
					                                    src="./img/check.svg" | 
				
			||||
 | 
					                                    style="width: 24px;"><span style="  color: #444; | 
				
			||||
 | 
					                    font-size: 16px; | 
				
			||||
 | 
					                    font-style: normal; | 
				
			||||
 | 
					                    font-weight: 400; | 
				
			||||
 | 
					                    line-height: 32px;">Fast Loading Times</span></li> | 
				
			||||
 | 
					                            <li style="list-style: none;" | 
				
			||||
 | 
					                                class="d-flex align-items-center gap-2"><img | 
				
			||||
 | 
					                                    src="./img/check.svg" | 
				
			||||
 | 
					                                    style="width: 24px;"><span style=" color: #444; | 
				
			||||
 | 
					                    font-size: 16px; | 
				
			||||
 | 
					                    font-style: normal; | 
				
			||||
 | 
					                    font-weight: 400; | 
				
			||||
 | 
					                    line-height: 32px;">User-Friendly Navigation</span></li> | 
				
			||||
 | 
					                            <li style="list-style: none;" | 
				
			||||
 | 
					                                class="d-flex align-items-center gap-2"><img | 
				
			||||
 | 
					                                    src="./img/check.svg" | 
				
			||||
 | 
					                                    style="width: 24px;"><span style=" color: #444; | 
				
			||||
 | 
					                    font-size: 16px; | 
				
			||||
 | 
					                    font-style: normal; | 
				
			||||
 | 
					                    font-weight: 400; | 
				
			||||
 | 
					                    line-height: 32px;">Responsive Design for Any Device</span> | 
				
			||||
 | 
					                            </li> | 
				
			||||
 | 
					                        </ul> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </section> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!--  --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <!--  --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <div class="my-5"> | 
				
			||||
 | 
					        <!-- banner card --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <!-- service-section --> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					        <section id="services" class="mt-5" style="border-radius: 16px; | 
				
			||||
 | 
					    border: 1px solid #EBEEF2; | 
				
			||||
 | 
					    background-color: #FFF; | 
				
			||||
 | 
					    padding: 60px 40px; | 
				
			||||
 | 
					    box-shadow: 0px 5px 20px -11px rgba(0, 0, 0, 0.25);"> | 
				
			||||
 | 
					            <div class="text-center mt-4"> | 
				
			||||
 | 
					                <h3 class="mb-0" style="color: #000; | 
				
			||||
 | 
					          text-align: center; | 
				
			||||
 | 
					          font-family: Montserrat; | 
				
			||||
 | 
					          font-size: 40px; | 
				
			||||
 | 
					          font-style: normal; | 
				
			||||
 | 
					          font-weight: 700; | 
				
			||||
 | 
					          line-height: normal; | 
				
			||||
 | 
					          text-transform: uppercase; | 
				
			||||
 | 
					          padding-bottom: 50px;">Our Services</h3> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					            <div class="row mt-3"> | 
				
			||||
 | 
					                <div class="col-lg-3 col-sm-12 mb-3"> | 
				
			||||
 | 
					                    <a href="#" style="text-decoration:none"> | 
				
			||||
 | 
					                        <div class="btn-lg btn-block p-4 mb-2 d-flex flex-column justify-content-center align-items-center" | 
				
			||||
 | 
					                             style="font-size:25px; font-weight:bold;background-color:#FFE2E5; margin:auto; border-radius: 8px;"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                            <div class="d-flex justify-content-center align-items-center" | 
				
			||||
 | 
					                                 style="background-color:#FA5A7D; border-radius:50%; height:56px; width:56px"> | 
				
			||||
 | 
					                                <img src="./img/gear.svg" class="img-responsive" | 
				
			||||
 | 
					                                     height="28px" width="28px"> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                            <span class="mt-3" style="font-size: 18px; | 
				
			||||
 | 
					                      color: #121212; | 
				
			||||
 | 
					                      font-weight: 600;"> Odoo Customization</span> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </a> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-lg-3 col-sm-12 mb-3"> | 
				
			||||
 | 
					                    <a href="#" style="text-decoration:none"> | 
				
			||||
 | 
					                        <div class="btn-lg btn-block p-4 mb-2 d-flex flex-column justify-content-center align-items-center" | 
				
			||||
 | 
					                             style="font-size:25px; font-weight:bold;background-color:#FFF4DE; margin:auto; border-radius: 8px;"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                            <div class="d-flex justify-content-center align-items-center" | 
				
			||||
 | 
					                                 style="background-color:#FF947A; border-radius:50%; height:56px; width:56px"> | 
				
			||||
 | 
					                                <img src="./img/wrench-icon.svg" | 
				
			||||
 | 
					                                     class="img-responsive" height="28px" | 
				
			||||
 | 
					                                     width="28px"> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                            <span class="mt-3" style="font-size: 18px; | 
				
			||||
 | 
					                    color: #121212; | 
				
			||||
 | 
					                    font-weight: 600;"> Odoo Implementation</span> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </a> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-lg-3 col-sm-12 mb-3"> | 
				
			||||
 | 
					                    <a href="#" style="text-decoration:none"> | 
				
			||||
 | 
					                        <div class="btn-lg btn-block p-4 mb-2 d-flex flex-column justify-content-center align-items-center" | 
				
			||||
 | 
					                             style="font-size:25px; font-weight:bold;background-color:#DCFCE7; margin:auto; border-radius: 8px;"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                            <div class="d-flex justify-content-center align-items-center" | 
				
			||||
 | 
					                                 style="background-color:#3CD856; border-radius:50%; height:56px; width:56px"> | 
				
			||||
 | 
					                                <img src="./img/life-ring-icon.svg" | 
				
			||||
 | 
					                                     class="img-responsive" height="28px" | 
				
			||||
 | 
					                                     width="28px"> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                            <span class="mt-3" style="font-size: 18px; | 
				
			||||
 | 
					                  color: #121212; | 
				
			||||
 | 
					                  font-weight: 600;">Odoo Support</span> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </a> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-lg-3 col-sm-12 mb-3"> | 
				
			||||
 | 
					                    <a href="#" style="text-decoration:none"> | 
				
			||||
 | 
					                        <div class="btn-lg btn-block p-4 mb-2 d-flex flex-column justify-content-center align-items-center" | 
				
			||||
 | 
					                             style="font-size:25px; font-weight:bold;background-color:#F3E8FF; margin:auto; border-radius: 8px;"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                            <div class="d-flex justify-content-center align-items-center" | 
				
			||||
 | 
					                                 style="background-color:#BF83FF; border-radius:50%; height:56px; width:56px"> | 
				
			||||
 | 
					                                <img src="./img/arrows-repeat.svg" | 
				
			||||
 | 
					                                     class="img-responsive" height="28px" | 
				
			||||
 | 
					                                     width="28px"> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                            <span class="mt-3" style="font-size: 18px; | 
				
			||||
 | 
					                color: #121212; | 
				
			||||
 | 
					                font-weight: 600;">Odoo Migration</span> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </a> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-lg-3 col-sm-12 mb-3"> | 
				
			||||
 | 
					                    <a href="#" style="text-decoration:none"> | 
				
			||||
 | 
					                        <div class="btn-lg btn-block p-4 mb-2 d-flex flex-column justify-content-center align-items-center" | 
				
			||||
 | 
					                             style="font-size:25px; font-weight:bold;background-color:#F1F9FF; margin:auto; border-radius: 8px;"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                            <div class="d-flex justify-content-center align-items-center" | 
				
			||||
 | 
					                                 style="background-color:#01649C; border-radius:50%; height:56px; width:56px"> | 
				
			||||
 | 
					                                <img src="./img/puzzle-piece-icon.svg" | 
				
			||||
 | 
					                                     class="img-responsive" height="28px" | 
				
			||||
 | 
					                                     width="28px"> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                            <span class="mt-3" style="font-size: 18px; | 
				
			||||
 | 
					              color: #121212; | 
				
			||||
 | 
					              font-weight: 600;">Odoo integration</span> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </a> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-lg-3 col-sm-12 mb-3"> | 
				
			||||
 | 
					                    <a href="#" style="text-decoration:none"> | 
				
			||||
 | 
					                        <div class="btn-lg btn-block p-4 mb-2 d-flex flex-column justify-content-center align-items-center" | 
				
			||||
 | 
					                             style="font-size:25px; font-weight:bold;background-color:#EDF8ED; margin:auto; border-radius: 8px;"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                            <div class="d-flex justify-content-center align-items-center" | 
				
			||||
 | 
					                                 style="background-color:#69CC70; border-radius:50%; height:56px; width:56px"> | 
				
			||||
 | 
					                                <img src="./img/odoo-consultancy.svg" | 
				
			||||
 | 
					                                     class="img-responsive" height="28px" | 
				
			||||
 | 
					                                     width="28px"> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                            <span class="mt-3" style="font-size: 18px; | 
				
			||||
 | 
					            color: #121212; | 
				
			||||
 | 
					            font-weight: 600;">Odoo Consultancy</span> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </a> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-lg-3 col-sm-12 mb-3"> | 
				
			||||
 | 
					                    <a href="#" style="text-decoration:none"> | 
				
			||||
 | 
					                        <div class="btn-lg btn-block p-4 mb-2 d-flex flex-column justify-content-center align-items-center" | 
				
			||||
 | 
					                             style="font-size:25px; font-weight:bold;background-color:#F1F6FF; margin:auto; border-radius: 8px;"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                            <div class="d-flex justify-content-center align-items-center" | 
				
			||||
 | 
					                                 style="background-color:#2E4556; border-radius:50%; height:56px; width:56px"> | 
				
			||||
 | 
					                                <img src="./img/odoo-licencing.svg" | 
				
			||||
 | 
					                                     class="img-responsive" height="28px" | 
				
			||||
 | 
					                                     width="28px"> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                            <span class="mt-3" style="font-size: 18px; | 
				
			||||
 | 
					          color: #121212; | 
				
			||||
 | 
					          font-weight: 600;">Odoo Licensing</span> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </a> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="col-lg-3 col-sm-12 mb-3"> | 
				
			||||
 | 
					                    <a href="#" style="text-decoration:none"> | 
				
			||||
 | 
					                        <div class="btn-lg btn-block p-4 mb-2 d-flex flex-column justify-content-center align-items-center" | 
				
			||||
 | 
					                             style="font-size:25px; font-weight:bold;background-color:#FAF6EA; margin:auto; border-radius: 8px;"> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                            <div class="d-flex justify-content-center align-items-center" | 
				
			||||
 | 
					                                 style="background-color:#FCD12C; border-radius:50%; height:56px; width:56px"> | 
				
			||||
 | 
					                                <img src="./img/hire-odoo.svg" | 
				
			||||
 | 
					                                     class="img-responsive" height="28px" | 
				
			||||
 | 
					                                     width="28px"> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                            <span class="mt-3" style="font-size: 18px; | 
				
			||||
 | 
					          color: #121212; | 
				
			||||
 | 
					          font-weight: 600;">Hire Odoo Developer</span> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </a> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					            <!--  --> | 
				
			||||
 | 
					    </div> | 
				
			||||
 | 
					</div> | 
				
			||||
 | 
					</section> | 
				
			||||
 | 
					<!--  --> | 
				
			||||
 | 
					</div> | 
				
			||||
 | 
					</div> | 
				
			||||
 | 
					</body> | 
				
			||||
 | 
					<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"></script> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					</html> | 
				
			||||
| 
		 After Width: | Height: | Size: 370 KiB  | 
| 
		 After Width: | Height: | Size: 1.9 KiB  | 
| 
		 After Width: | Height: | Size: 3.0 KiB  | 
| 
		 After Width: | Height: | Size: 3.6 KiB  | 
| 
		 After Width: | Height: | Size: 5.6 KiB  | 
| 
		 After Width: | Height: | Size: 6.6 KiB  | 
| 
		 After Width: | Height: | Size: 524 B  | 
| 
		 After Width: | Height: | Size: 795 B  | 
| 
		 After Width: | Height: | Size: 61 KiB  | 
| 
		 After Width: | Height: | Size: 343 KiB  | 
| 
		 After Width: | Height: | Size: 5.6 MiB  | 
| 
		 After Width: | Height: | Size: 39 KiB  | 
| 
		 After Width: | Height: | Size: 1.7 MiB  | 
| 
		 After Width: | Height: | Size: 4.3 KiB  | 
| 
		 After Width: | Height: | Size: 24 KiB  | 
| 
		 After Width: | Height: | Size: 1.5 KiB  | 
| 
		 After Width: | Height: | Size: 497 KiB  | 
| 
		 After Width: | Height: | Size: 3.5 MiB  | 
| 
		 After Width: | Height: | Size: 312 B  | 
@ -0,0 +1,36 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="UTF-8" ?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <!-- This XML defines a new page named "About" for the coffee shop theme --> | 
				
			||||
 | 
					    <record id="coffee_about_us" model="website.page"> | 
				
			||||
 | 
					        <field name="name">About</field> | 
				
			||||
 | 
					        <field name="type">qweb</field> | 
				
			||||
 | 
					        <field name="key">theme_coffee_shop.coffee_about_us</field> | 
				
			||||
 | 
					        <field name="url">/about</field> | 
				
			||||
 | 
					        <field name="is_published">True</field> | 
				
			||||
 | 
					        <field name="arch" type="xml"> | 
				
			||||
 | 
					            <t name="About" t-name="theme_coffee_shop.coffee_about_us"> | 
				
			||||
 | 
					                <t t-call="website.layout"> | 
				
			||||
 | 
					                    <div id="wrap"> | 
				
			||||
 | 
					                        <section id="banner" class="banner-imgAbout"> | 
				
			||||
 | 
					                            <div class="container wrapper"> | 
				
			||||
 | 
					                                <div class="banner-content"> | 
				
			||||
 | 
					                                    <div class="banner-text"> | 
				
			||||
 | 
					                                        <p class="banner-head">More than</p> | 
				
			||||
 | 
					                                        <p class="banner-head">Just Coffee</p> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                        </section> | 
				
			||||
 | 
					                        <div class="oe_structure"/> | 
				
			||||
 | 
					                        <t t-snippet="website.s_company_team" | 
				
			||||
 | 
					                           t-thumbnail="/website/static/src/img/snippets_thumbs/s_company_team.svg"/> | 
				
			||||
 | 
					                        <div class="oe_structure"/> | 
				
			||||
 | 
					                        <t t-snippet="website.s_references" | 
				
			||||
 | 
					                           t-thumbnail="/website/static/src/img/snippets_thumbs/s_references.svg"/> | 
				
			||||
 | 
					                        <div class="oe_structure"/> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </t> | 
				
			||||
 | 
					            </t> | 
				
			||||
 | 
					        </field> | 
				
			||||
 | 
					    </record> | 
				
			||||
 | 
					</odoo> | 
				
			||||
@ -0,0 +1,116 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="UTF-8" ?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <!--   Template for Cart Lines--> | 
				
			||||
 | 
					    <template id="coffee_cart_lines" inherit_id="website_sale.cart_lines" | 
				
			||||
 | 
					              name="Coffee Cart Lines"> | 
				
			||||
 | 
					        <xpath expr="//div[@id='cart_products']" position="replace"> | 
				
			||||
 | 
					            <div class="table-responsive"> | 
				
			||||
 | 
					                <table t-if="website_sale_order and website_sale_order.website_order_line" | 
				
			||||
 | 
					                       class="mb16 table-striped table-sm js_cart_lines" | 
				
			||||
 | 
					                       id="cart_products"> | 
				
			||||
 | 
					                    <t t-set="show_qty" | 
				
			||||
 | 
					                       t-value="is_view_active('website_sale.product_quantity')"/> | 
				
			||||
 | 
					                    <thead> | 
				
			||||
 | 
					                        <tr> | 
				
			||||
 | 
					                            <th class="td-img">Product</th> | 
				
			||||
 | 
					                            <th/> | 
				
			||||
 | 
					                            <th class="text-center td-qty"> | 
				
			||||
 | 
					                                <t t-if="show_qty"> | 
				
			||||
 | 
					                                    Quantity | 
				
			||||
 | 
					                                </t> | 
				
			||||
 | 
					                            </th> | 
				
			||||
 | 
					                            <th class="text-center td-price">Total</th> | 
				
			||||
 | 
					                            <th class="text-center td-action"/> | 
				
			||||
 | 
					                        </tr> | 
				
			||||
 | 
					                        <tr class="height_30"/> | 
				
			||||
 | 
					                    </thead> | 
				
			||||
 | 
					                    <tbody> | 
				
			||||
 | 
					                        <t t-foreach="website_sale_order.website_order_line" | 
				
			||||
 | 
					                           t-as="line"> | 
				
			||||
 | 
					                            <tr t-att-class="'optional_product info' if line.linked_line_id else None" | 
				
			||||
 | 
					                                class="cstm_tbl"> | 
				
			||||
 | 
					                                <td t-if="not line.product_id" colspan="2" | 
				
			||||
 | 
					                                    class='td-img cstm_tbl'/> | 
				
			||||
 | 
					                                <t t-else=""> | 
				
			||||
 | 
					                                    <td align="center" | 
				
			||||
 | 
					                                        class='td-img cstm_tbl image_td'> | 
				
			||||
 | 
					                                        <span t-if="line._is_not_sellable_line() and line.product_id.image_128"> | 
				
			||||
 | 
					                                            <img t-att-src="image_data_uri(line.product_id.image_128)" | 
				
			||||
 | 
					                                                 class="sample" | 
				
			||||
 | 
					                                                 t-att-alt="line.name_short"/> | 
				
			||||
 | 
					                                        </span> | 
				
			||||
 | 
					                                        <span t-else="" | 
				
			||||
 | 
					                                              t-field="line.product_id.image_128" | 
				
			||||
 | 
					                                              t-options="{'widget': 'image', 'qweb_img_responsive': False, 'class': 'sample'}"/> | 
				
			||||
 | 
					                                    </td> | 
				
			||||
 | 
					                                    <td class='td-product_name cstm_tbl'> | 
				
			||||
 | 
					                                        <div> | 
				
			||||
 | 
					                                            <t t-call="website_sale.cart_line_product_link"> | 
				
			||||
 | 
					                                                <p class="item-name"> | 
				
			||||
 | 
					                                                    <strong t-field="line.name_short"/> | 
				
			||||
 | 
					                                                </p> | 
				
			||||
 | 
					                                            </t> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <p class="item-about"> | 
				
			||||
 | 
					                                            <t t-esc="line.product_id.categ_id.name"/> | 
				
			||||
 | 
					                                        </p> | 
				
			||||
 | 
					                                    </td> | 
				
			||||
 | 
					                                </t> | 
				
			||||
 | 
					                                <td class="text-center td-qty cstm_tbl"> | 
				
			||||
 | 
					                                    <div class="css_quantity input-group mx-auto justify-content-center" | 
				
			||||
 | 
					                                         name="website_sale_cart_line_quantity"> | 
				
			||||
 | 
					                                        <t t-if="not line._is_not_sellable_line()"> | 
				
			||||
 | 
					                                            <t t-if="show_qty"> | 
				
			||||
 | 
					                                                <div class="counter"> | 
				
			||||
 | 
					                                                    <div class="box-container"> | 
				
			||||
 | 
					                                                        <a t-attf-href="#" | 
				
			||||
 | 
					                                                           class="btn btn-link js_add_cart_json d-none d-md-inline-block border_link" | 
				
			||||
 | 
					                                                           aria-label="Remove one" | 
				
			||||
 | 
					                                                           title="Remove one"> | 
				
			||||
 | 
					                                                            <i class="fa fa-minus"/> | 
				
			||||
 | 
					                                                        </a> | 
				
			||||
 | 
					                                                        <input type="text" | 
				
			||||
 | 
					                                                               class="js_quantity form-control quantity" | 
				
			||||
 | 
					                                                               t-att-data-line-id="line.id" | 
				
			||||
 | 
					                                                               t-att-data-product-id="line.product_id.id" | 
				
			||||
 | 
					                                                               t-att-value="int(line.product_uom_qty) == line.product_uom_qty and int(line.product_uom_qty) or line.product_uom_qty"/> | 
				
			||||
 | 
					                                                        <a t-attf-href="#" | 
				
			||||
 | 
					                                                           class="btn btn-link float_left js_add_cart_json d-none d-md-inline-block border_link" | 
				
			||||
 | 
					                                                           aria-label="Add one" | 
				
			||||
 | 
					                                                           title="Add one"> | 
				
			||||
 | 
					                                                            <i class="fa fa-plus"/> | 
				
			||||
 | 
					                                                        </a> | 
				
			||||
 | 
					                                                    </div> | 
				
			||||
 | 
					                                                </div> | 
				
			||||
 | 
					                                            </t> | 
				
			||||
 | 
					                                            <t t-else=""> | 
				
			||||
 | 
					                                                <input type="hidden" | 
				
			||||
 | 
					                                                       class="js_quantity form-control quantity" | 
				
			||||
 | 
					                                                       t-att-data-line-id="line.id" | 
				
			||||
 | 
					                                                       t-att-data-product-id="line.product_id.id" | 
				
			||||
 | 
					                                                       t-att-value="int(line.product_uom_qty) == line.product_uom_qty and int(line.product_uom_qty) or line.product_uom_qty"/> | 
				
			||||
 | 
					                                            </t> | 
				
			||||
 | 
					                                        </t> | 
				
			||||
 | 
					                                        <t t-else=""> | 
				
			||||
 | 
					                                            <span class="text-muted w-100" | 
				
			||||
 | 
					                                                  t-esc="int(line.product_uom_qty)"/> | 
				
			||||
 | 
					                                            <input type="hidden" | 
				
			||||
 | 
					                                                   class="js_quantity form-control quantity" | 
				
			||||
 | 
					                                                   t-att-data-line-id="line.id" | 
				
			||||
 | 
					                                                   t-att-data-product-id="line.product_id.id" | 
				
			||||
 | 
					                                                   t-att-value="line.product_uom_qty"/> | 
				
			||||
 | 
					                                        </t> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                </td> | 
				
			||||
 | 
					                                <td class="cstm_tbl" align="center"> | 
				
			||||
 | 
					                                    <t t-esc="website_sale_order.currency_id.symbol"/> | 
				
			||||
 | 
					                                    <t t-esc="line.price_subtotal"/> | 
				
			||||
 | 
					                                </td> | 
				
			||||
 | 
					                            </tr> | 
				
			||||
 | 
					                        </t> | 
				
			||||
 | 
					                    </tbody> | 
				
			||||
 | 
					                </table> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </xpath> | 
				
			||||
 | 
					    </template> | 
				
			||||
 | 
					</odoo> | 
				
			||||
@ -0,0 +1,220 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="UTF-8" ?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <!-- This XML template customizes the appearance of the Contact Us page in the website --> | 
				
			||||
 | 
					    <template id="coffee_shop_contact_us" name="Coffee Shop Contact Us" | 
				
			||||
 | 
					              inherit_id="website.contactus"> | 
				
			||||
 | 
					        <xpath expr="//div[@id='wrap']" position="replace"> | 
				
			||||
 | 
					            <section id="banner" class="banner-imgContact"> | 
				
			||||
 | 
					                <div class="container wrapper "> | 
				
			||||
 | 
					                    <div class="banner-content"> | 
				
			||||
 | 
					                        <div class="banner-text"> | 
				
			||||
 | 
					                            <p class="banner-head">Hello!</p> | 
				
			||||
 | 
					                            <p class="banner-head">Lets talk</p> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </section> | 
				
			||||
 | 
					            <section id="contact" class="container wrapper"> | 
				
			||||
 | 
					                <span class="contact-heading">Contact</span> | 
				
			||||
 | 
					                <div class="contact-container"> | 
				
			||||
 | 
					                    <div class="get-intouch-left"> | 
				
			||||
 | 
					                        <p class="getin-text">Get in Touch with Expresso</p> | 
				
			||||
 | 
					                        <div class="getin-img"> | 
				
			||||
 | 
					                            <img src="/theme_coffee_shop/static/src/images/coffee-contact.png" | 
				
			||||
 | 
					                                 alt=""/> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <div class="get-intouch-right"> | 
				
			||||
 | 
					                        <section class="s_website_form" | 
				
			||||
 | 
					                                 data-vcss="001" | 
				
			||||
 | 
					                                 data-snippet="s_website_form"> | 
				
			||||
 | 
					                            <div class="container"> | 
				
			||||
 | 
					                                <form id="contactus_form" | 
				
			||||
 | 
					                                      action="/website/form/" | 
				
			||||
 | 
					                                      method="post" | 
				
			||||
 | 
					                                      enctype="multipart/form-data" | 
				
			||||
 | 
					                                      class="o_mark_required" | 
				
			||||
 | 
					                                      data-mark="*" | 
				
			||||
 | 
					                                      data-model_name="mail.mail" | 
				
			||||
 | 
					                                      data-success-mode="redirect" | 
				
			||||
 | 
					                                      data-success-page="/contactus-thank-you" | 
				
			||||
 | 
					                                      data-pre-fill="true"> | 
				
			||||
 | 
					                                    <div class="s_website_form_rows row s_col_no_bgcolor"> | 
				
			||||
 | 
					                                        <div class="mb-0 py-2 col-12 s_website_form_field s_website_form_custom s_website_form_required" | 
				
			||||
 | 
					                                             data-type="char" | 
				
			||||
 | 
					                                             data-name="Field"> | 
				
			||||
 | 
					                                            <div class="row s_col_no_resize s_col_no_bgcolor"> | 
				
			||||
 | 
					                                                <label class="col-form-label width_200 col-sm-auto s_website_form_label" | 
				
			||||
 | 
					                                                       for="contact1"> | 
				
			||||
 | 
					                                                    <span class="s_website_form_label_content"> | 
				
			||||
 | 
					                                                        Name | 
				
			||||
 | 
					                                                    </span> | 
				
			||||
 | 
					                                                    <span class="s_website_form_mark"> | 
				
			||||
 | 
					                                                        * | 
				
			||||
 | 
					                                                    </span> | 
				
			||||
 | 
					                                                </label> | 
				
			||||
 | 
					                                                <div class="col-sm"> | 
				
			||||
 | 
					                                                    <input id="contact1" | 
				
			||||
 | 
					                                                           type="text" | 
				
			||||
 | 
					                                                           class="form-control s_website_form_input forms-input" | 
				
			||||
 | 
					                                                           name="name" | 
				
			||||
 | 
					                                                           required="" | 
				
			||||
 | 
					                                                           data-fill-with="name"/> | 
				
			||||
 | 
					                                                </div> | 
				
			||||
 | 
					                                            </div> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <div class="mb-0 py-2 col-12 s_website_form_field s_website_form_custom" | 
				
			||||
 | 
					                                             data-type="char" | 
				
			||||
 | 
					                                             data-name="Field"> | 
				
			||||
 | 
					                                            <div class="row s_col_no_resize s_col_no_bgcolor"> | 
				
			||||
 | 
					                                                <label class="col-form-label width_200 col-sm-auto s_website_form_label" | 
				
			||||
 | 
					                                                       for="contact2"> | 
				
			||||
 | 
					                                                    <span class="s_website_form_label_content"> | 
				
			||||
 | 
					                                                        Phone | 
				
			||||
 | 
					                                                        Number | 
				
			||||
 | 
					                                                    </span> | 
				
			||||
 | 
					                                                </label> | 
				
			||||
 | 
					                                                <div class="col-sm"> | 
				
			||||
 | 
					                                                    <input id="contact2" | 
				
			||||
 | 
					                                                           type="tel" | 
				
			||||
 | 
					                                                           class="form-control s_website_form_input forms-input" | 
				
			||||
 | 
					                                                           name="phone" | 
				
			||||
 | 
					                                                           data-fill-with="phone"/> | 
				
			||||
 | 
					                                                </div> | 
				
			||||
 | 
					                                            </div> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <div class="mb-0 py-2 col-12 s_website_form_field s_website_form_required" | 
				
			||||
 | 
					                                             data-type="email" | 
				
			||||
 | 
					                                             data-name="Field"> | 
				
			||||
 | 
					                                            <div class="row s_col_no_resize s_col_no_bgcolor"> | 
				
			||||
 | 
					                                                <label class="col-form-label width_200 col-sm-auto s_website_form_label" | 
				
			||||
 | 
					                                                       for="contact3"> | 
				
			||||
 | 
					                                                    <span class="s_website_form_label_content"> | 
				
			||||
 | 
					                                                        Email | 
				
			||||
 | 
					                                                    </span> | 
				
			||||
 | 
					                                                    <span class="s_website_form_mark"> | 
				
			||||
 | 
					                                                        * | 
				
			||||
 | 
					                                                    </span> | 
				
			||||
 | 
					                                                </label> | 
				
			||||
 | 
					                                                <div class="col-sm"> | 
				
			||||
 | 
					                                                    <input id="contact3" | 
				
			||||
 | 
					                                                           type="email" | 
				
			||||
 | 
					                                                           class="form-control s_website_form_input forms-input" | 
				
			||||
 | 
					                                                           name="email_from" | 
				
			||||
 | 
					                                                           required="" | 
				
			||||
 | 
					                                                           data-fill-with="email"/> | 
				
			||||
 | 
					                                                </div> | 
				
			||||
 | 
					                                            </div> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <div class="mb-0 py-2 col-12 s_website_form_field s_website_form_custom" | 
				
			||||
 | 
					                                             data-type="char" | 
				
			||||
 | 
					                                             data-name="Field"> | 
				
			||||
 | 
					                                            <div class="row s_col_no_resize s_col_no_bgcolor"> | 
				
			||||
 | 
					                                                <label class="col-form-label width_200 col-sm-auto s_website_form_label" | 
				
			||||
 | 
					                                                       for="contact4"> | 
				
			||||
 | 
					                                                    <span class="s_website_form_label_content"> | 
				
			||||
 | 
					                                                        Company | 
				
			||||
 | 
					                                                    </span> | 
				
			||||
 | 
					                                                </label> | 
				
			||||
 | 
					                                                <div class="col-sm"> | 
				
			||||
 | 
					                                                    <input id="contact4" | 
				
			||||
 | 
					                                                           type="text" | 
				
			||||
 | 
					                                                           class="form-control s_website_form_input forms-input" | 
				
			||||
 | 
					                                                           name="company" | 
				
			||||
 | 
					                                                           data-fill-with="commercial_company_name"/> | 
				
			||||
 | 
					                                                </div> | 
				
			||||
 | 
					                                            </div> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <div class="mb-0 py-2 col-12 s_website_form_field s_website_form_required" | 
				
			||||
 | 
					                                             data-type="char" | 
				
			||||
 | 
					                                             data-name="Field"> | 
				
			||||
 | 
					                                            <div class="row s_col_no_resize s_col_no_bgcolor"> | 
				
			||||
 | 
					                                                <label class="col-form-label width_200 col-sm-auto s_website_form_label" | 
				
			||||
 | 
					                                                       for="contact5"> | 
				
			||||
 | 
					                                                    <span class="s_website_form_label_content"> | 
				
			||||
 | 
					                                                        Subject | 
				
			||||
 | 
					                                                    </span> | 
				
			||||
 | 
					                                                    <span class="s_website_form_mark"> | 
				
			||||
 | 
					                                                        * | 
				
			||||
 | 
					                                                    </span> | 
				
			||||
 | 
					                                                </label> | 
				
			||||
 | 
					                                                <div class="col-sm"> | 
				
			||||
 | 
					                                                    <input id="contact5" | 
				
			||||
 | 
					                                                           type="text" | 
				
			||||
 | 
					                                                           class="form-control s_website_form_input forms-input" | 
				
			||||
 | 
					                                                           name="subject" | 
				
			||||
 | 
					                                                           required=""/> | 
				
			||||
 | 
					                                                </div> | 
				
			||||
 | 
					                                            </div> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <div class="mb-0 py-2 col-12 s_website_form_field s_website_form_custom s_website_form_required" | 
				
			||||
 | 
					                                             data-type="text" | 
				
			||||
 | 
					                                             data-name="Field"> | 
				
			||||
 | 
					                                            <div class="row s_col_no_resize s_col_no_bgcolor"> | 
				
			||||
 | 
					                                                <label class="col-form-label width_200 col-sm-auto s_website_form_label" | 
				
			||||
 | 
					                                                       for="contact6"> | 
				
			||||
 | 
					                                                    <span class="s_website_form_label_content"> | 
				
			||||
 | 
					                                                        Question | 
				
			||||
 | 
					                                                    </span> | 
				
			||||
 | 
					                                                    <span class="s_website_form_mark"> | 
				
			||||
 | 
					                                                        * | 
				
			||||
 | 
					                                                    </span> | 
				
			||||
 | 
					                                                </label> | 
				
			||||
 | 
					                                                <div class="col-sm"> | 
				
			||||
 | 
					                                                    <textarea | 
				
			||||
 | 
					                                                            id="contact6" | 
				
			||||
 | 
					                                                            class="form-control s_website_form_input forms-input" | 
				
			||||
 | 
					                                                            name="description" | 
				
			||||
 | 
					                                                            required=""/> | 
				
			||||
 | 
					                                                </div> | 
				
			||||
 | 
					                                            </div> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <div class="mb-0 py-2 col-12 s_website_form_field s_website_form_dnone"> | 
				
			||||
 | 
					                                            <div class="row s_col_no_resize s_col_no_bgcolor"> | 
				
			||||
 | 
					                                                <label class="col-form-label width_200 col-sm-auto s_website_form_label" | 
				
			||||
 | 
					                                                       for="contact7"> | 
				
			||||
 | 
					                                                    <span class="s_website_form_label_content"> | 
				
			||||
 | 
					                                                        Email | 
				
			||||
 | 
					                                                        To | 
				
			||||
 | 
					                                                    </span> | 
				
			||||
 | 
					                                                </label> | 
				
			||||
 | 
					                                                <div class="col-sm"> | 
				
			||||
 | 
					                                                    <input id="contact7" | 
				
			||||
 | 
					                                                           type="hidden" | 
				
			||||
 | 
					                                                           class="form-control s_website_form_input" | 
				
			||||
 | 
					                                                           name="email_to"/> | 
				
			||||
 | 
					                                                </div> | 
				
			||||
 | 
					                                            </div> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <div class="getin-footer mb-0 py-2 col-12 s_website_form_submit" | 
				
			||||
 | 
					                                             data-name="Submit Button"> | 
				
			||||
 | 
					                                            <p class="getin-promise">*We | 
				
			||||
 | 
					                                                promise not to disclose your | 
				
			||||
 | 
					                                                personal | 
				
			||||
 | 
					                                                information to third parties. | 
				
			||||
 | 
					                                            </p> | 
				
			||||
 | 
					                                            <a class="send-btn btn btn-primary btn-lg s_website_form_send" | 
				
			||||
 | 
					                                               href="#" | 
				
			||||
 | 
					                                               role="button">Send | 
				
			||||
 | 
					                                            </a> | 
				
			||||
 | 
					                                            <span id="s_website_form_result"/> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                </form> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                        </section> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </section> | 
				
			||||
 | 
					            <section id="map" class="container wrapper"> | 
				
			||||
 | 
					                <div class="map-container"> | 
				
			||||
 | 
					                    <iframe title="Calicut" loading="lazy" width="100%" | 
				
			||||
 | 
					                            height="350" id="gmap_canvas" | 
				
			||||
 | 
					                            src="https://maps.google.com/maps?q=Cybrosys%20Technologies%20Pvt.%20Ltd.%20Neospace%2C%20Kinfra%20Techno%20Park%2C%20Kakkancherry&t=&z=7&ie=UTF8&iwloc=&output=embed" | 
				
			||||
 | 
					                            frameborder="0" scrolling="no" marginheight="0" | 
				
			||||
 | 
					                            marginwidth="0"/> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </section> | 
				
			||||
 | 
					        </xpath> | 
				
			||||
 | 
					    </template> | 
				
			||||
 | 
					</odoo> | 
				
			||||
@ -0,0 +1,45 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="UTF-8" ?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <!-- This XML record defines a custom QWeb view for the "Feature" section of the website --> | 
				
			||||
 | 
					    <record id="coffee_feature" model="ir.ui.view"> | 
				
			||||
 | 
					        <field name="name">Feature</field> | 
				
			||||
 | 
					        <field name="type">qweb</field> | 
				
			||||
 | 
					        <field name="key">theme_coffee_shop.coffee_feature</field> | 
				
			||||
 | 
					        <field name="arch" type="xml"> | 
				
			||||
 | 
					            <t name="Feature" t-name="theme_coffee_shop.feature"> | 
				
			||||
 | 
					                <t t-call="website.layout"> | 
				
			||||
 | 
					                    <div id="wrap"> | 
				
			||||
 | 
					                        <section id="banner" class="banner-imgFeature"> | 
				
			||||
 | 
					                            <div class="container wrapper "> | 
				
			||||
 | 
					                                <div class="banner-content"> | 
				
			||||
 | 
					                                    <div class="banner-text"> | 
				
			||||
 | 
					                                        <p class="banner-head">Our awesome</p> | 
				
			||||
 | 
					                                        <p class="banner-head">Premium | 
				
			||||
 | 
					                                            Features | 
				
			||||
 | 
					                                        </p> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                        </section> | 
				
			||||
 | 
					                        <div class="oe_structure"/> | 
				
			||||
 | 
					                        <t t-snippet="website.s_process_steps" | 
				
			||||
 | 
					                           t-thumbnail="/theme_coffee_shop/static/src/images/thumbnail/s_process_steps.svg"/> | 
				
			||||
 | 
					                        <div class="oe_structure"/> | 
				
			||||
 | 
					                        <t t-snippet="website.s_image_text" | 
				
			||||
 | 
					                           t-thumbnail="/website/static/src/img/snippets_thumbs/s_image_text.svg"/> | 
				
			||||
 | 
					                        <div class="oe_structure"/> | 
				
			||||
 | 
					                        <t t-snippet="website.s_features" string="Features" | 
				
			||||
 | 
					                           t-thumbnail="/website/static/src/img/snippets_thumbs/s_features.svg"/> | 
				
			||||
 | 
					                        <div class="oe_structure"/> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </t> | 
				
			||||
 | 
					            </t> | 
				
			||||
 | 
					        </field> | 
				
			||||
 | 
					    </record> | 
				
			||||
 | 
					    <record id="feature" model="website.page"> | 
				
			||||
 | 
					        <field name="is_published">True</field> | 
				
			||||
 | 
					        <field name="url">/feature</field> | 
				
			||||
 | 
					        <field name="view_id" ref="coffee_feature"/> | 
				
			||||
 | 
					        <field name="track">True</field> | 
				
			||||
 | 
					    </record> | 
				
			||||
 | 
					</odoo> | 
				
			||||
@ -0,0 +1,108 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="UTF-8" ?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <!--    Footer--> | 
				
			||||
 | 
					    <template id="theme_coffee_shop_footer" inherit_id="website.layout" | 
				
			||||
 | 
					              name="Coffee Shop Footer"> | 
				
			||||
 | 
					        <xpath expr="//div[@id='footer']" position="replace"> | 
				
			||||
 | 
					            <footer id="footer"> | 
				
			||||
 | 
					                <div class="container wrapper"> | 
				
			||||
 | 
					                    <div class="row footer-content"> | 
				
			||||
 | 
					                        <div class="col foot lg-foot"> | 
				
			||||
 | 
					                            <div class="footer-log"> | 
				
			||||
 | 
					                                <img src="/theme_coffee_shop/static/src/images/1.png" | 
				
			||||
 | 
					                                     alt=""/> | 
				
			||||
 | 
					                                <p class="footer-head">Made by | 
				
			||||
 | 
					                                    <br/> | 
				
			||||
 | 
					                                    <span class="company-name">Cybrosys | 
				
			||||
 | 
					                                        Technologies | 
				
			||||
 | 
					                                    </span> | 
				
			||||
 | 
					                                </p> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                            <p class="footer-para">Lorem ipsum dolor sit amet, | 
				
			||||
 | 
					                                consectetur | 
				
			||||
 | 
					                                adipiscing elit, sed do eiusmod tempor fiter | 
				
			||||
 | 
					                                incididunt ut labore et dolore magna aliqua. | 
				
			||||
 | 
					                                Ut enim ad minim veniam, quis nostrud | 
				
			||||
 | 
					                                exercitation ullamco laboris nisi ut aliquip | 
				
			||||
 | 
					                                ea commodo consequat. | 
				
			||||
 | 
					                            </p> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="col foot "> | 
				
			||||
 | 
					                            <p class="footer-heading">Location</p> | 
				
			||||
 | 
					                            <div class="address"> | 
				
			||||
 | 
					                                <p class="footer-subhead">New York</p> | 
				
			||||
 | 
					                                <p class="foot-address">1 444 123 4559 | 
				
			||||
 | 
					                                    <br/> | 
				
			||||
 | 
					                                    Raymond Boulevard 224, New York | 
				
			||||
 | 
					                                    <br/> | 
				
			||||
 | 
					                                    Info@Expresso.com | 
				
			||||
 | 
					                                    <br/> | 
				
			||||
 | 
					                                    213 548 698 | 
				
			||||
 | 
					                                </p> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                            <div class="address"> | 
				
			||||
 | 
					                                <p class="footer-subhead">Florida</p> | 
				
			||||
 | 
					                                <p class="foot-address"> | 
				
			||||
 | 
					                                    2606 Saints AlleyTampa, | 
				
			||||
 | 
					                                    <br/> | 
				
			||||
 | 
					                                    FL 33602 | 
				
			||||
 | 
					                                    <br/> | 
				
			||||
 | 
					                                    Info@Expresso.com | 
				
			||||
 | 
					                                    <br/> | 
				
			||||
 | 
					                                    213 548 698 | 
				
			||||
 | 
					                                </p> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="col foot"> | 
				
			||||
 | 
					                            <p class="footer-heading">Home</p> | 
				
			||||
 | 
					                            <div class="link"> | 
				
			||||
 | 
					                                <a class="foot-links" href="/menu">Menu</a> | 
				
			||||
 | 
					                                <a class="foot-links" href="/shop">Shop</a> | 
				
			||||
 | 
					                                <a class="foot-links" href="/about">About</a> | 
				
			||||
 | 
					                                <a class="foot-links" href="/contactus"> | 
				
			||||
 | 
					                                    Contact | 
				
			||||
 | 
					                                </a> | 
				
			||||
 | 
					                                <a class="foot-links" href="/web/login">Login | 
				
			||||
 | 
					                                </a> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="col foot"> | 
				
			||||
 | 
					                            <p class="footer-heading">Get in touch</p> | 
				
			||||
 | 
					                            <div class="social-links"> | 
				
			||||
 | 
					                                <div class="media-link"> | 
				
			||||
 | 
					                                    <a href="#"> | 
				
			||||
 | 
					                                        <img src="/theme_coffee_shop/static/src/images/1.svg" | 
				
			||||
 | 
					                                             alt=""/> | 
				
			||||
 | 
					                                    </a> | 
				
			||||
 | 
					                                    <p class="foot-address">Instagram</p> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                                <div class="media-link"> | 
				
			||||
 | 
					                                    <a href="#"> | 
				
			||||
 | 
					                                        <img src="/theme_coffee_shop/static/src/images/3.svg" | 
				
			||||
 | 
					                                             alt=""/> | 
				
			||||
 | 
					                                    </a> | 
				
			||||
 | 
					                                    <p class="foot-address">Whatsapp</p> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                                <div class="media-link"> | 
				
			||||
 | 
					                                    <a href="#"> | 
				
			||||
 | 
					                                        <img src="/theme_coffee_shop/static/src/images/2.svg" | 
				
			||||
 | 
					                                             alt=""/> | 
				
			||||
 | 
					                                    </a> | 
				
			||||
 | 
					                                    <p class="foot-address">facebook</p> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                                <div class="media-link"> | 
				
			||||
 | 
					                                    <a href="#"> | 
				
			||||
 | 
					                                        <img src="/theme_coffee_shop/static/src/images/4.svg" | 
				
			||||
 | 
					                                             alt=""/> | 
				
			||||
 | 
					                                    </a> | 
				
			||||
 | 
					                                    <p class="foot-address">Twitter</p> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                    <p class="foot-end">© Cybrosys technologies 2024</p> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </footer> | 
				
			||||
 | 
					        </xpath> | 
				
			||||
 | 
					    </template> | 
				
			||||
 | 
					</odoo> | 
				
			||||
@ -0,0 +1,21 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="UTF-8"?> | 
				
			||||
 | 
					   <odoo> | 
				
			||||
 | 
					       <!-- Navbar --> | 
				
			||||
 | 
					       <template id="coffee_shop_header" inherit_id="website.template_header_default"> | 
				
			||||
 | 
					           <xpath expr="//t[@t-call='website.placeholder_header_text_element']" position="replace"/> | 
				
			||||
 | 
					           <xpath expr="//t[@t-call='website.placeholder_header_brand']" position="replace"> | 
				
			||||
 | 
					               <div class="logo"> | 
				
			||||
 | 
					                   <img src="/theme_coffee_shop/static/src/images/logo.png" alt=""/> | 
				
			||||
 | 
					               </div> | 
				
			||||
 | 
					           </xpath> | 
				
			||||
 | 
					           <xpath expr="//t[@t-call='website.placeholder_header_call_to_action']" position="replace"/> | 
				
			||||
 | 
					       </template> | 
				
			||||
 | 
					    <template id="coffee_shop_mobile_header" inherit_id="website.template_header_mobile"> | 
				
			||||
 | 
					           <xpath expr="//t[@t-call='website.placeholder_header_brand']" position="replace"> | 
				
			||||
 | 
					               <div class="logo"> | 
				
			||||
 | 
					                   <img src="/theme_coffee_shop/static/src/images/logo.png" alt=""/> | 
				
			||||
 | 
					               </div> | 
				
			||||
 | 
					           </xpath> | 
				
			||||
 | 
					       </template> | 
				
			||||
 | 
					   </odoo> | 
				
			||||
 | 
					    | 
				
			||||
@ -0,0 +1,289 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="UTF-8" ?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <!-- This XML record defines a custom website page for the "Menu" section --> | 
				
			||||
 | 
					    <record id="coffee_menu" model="website.page"> | 
				
			||||
 | 
					        <field name="name">Menu</field> | 
				
			||||
 | 
					        <field name="type">qweb</field> | 
				
			||||
 | 
					        <field name="key">theme_coffee_shop.coffee_menu</field> | 
				
			||||
 | 
					        <field name="url">/menu</field> | 
				
			||||
 | 
					        <field name="is_published">True</field> | 
				
			||||
 | 
					        <field name="arch" type="xml"> | 
				
			||||
 | 
					            <t name="Menu" t-name="theme_coffee_shop.coffee_menu"> | 
				
			||||
 | 
					                <t t-call="website.layout"> | 
				
			||||
 | 
					                    <t t-set="opt_wsale_categories_top" | 
				
			||||
 | 
					                       t-value="is_view_active('website_sale.products_categories_top')"/> | 
				
			||||
 | 
					                    <div id="wrap"> | 
				
			||||
 | 
					                        <section id="banner" class="banner-img"> | 
				
			||||
 | 
					                            <div class="container wrapper "> | 
				
			||||
 | 
					                                <div class="banner-content"> | 
				
			||||
 | 
					                                    <div class="banner-text"> | 
				
			||||
 | 
					                                        <p class="banner-head">Better Beans</p> | 
				
			||||
 | 
					                                        <p class="banner-head">Better Coffee | 
				
			||||
 | 
					                                        </p> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                        </section> | 
				
			||||
 | 
					                        <div class="oe_structure oe_empty oe_structure_not_nearest"/> | 
				
			||||
 | 
					                        <div class="container oe_website_sale pt-2"> | 
				
			||||
 | 
					                            <div class="row o_wsale_products_main_row align-items-start flex-nowrap"> | 
				
			||||
 | 
					                                <div id="products_grid"> | 
				
			||||
 | 
					                                    <t t-call="theme_coffee_shop.coffee_products_breadcrumb"> | 
				
			||||
 | 
					                                        <t t-set="_classes" | 
				
			||||
 | 
					                                           t-valuef="d-none d-lg-flex w-100 p-0 small"/> | 
				
			||||
 | 
					                                    </t> | 
				
			||||
 | 
					                                    <div class="products_header btn-toolbar flex-nowrap align-items-center justify-content-between mb-3"> | 
				
			||||
 | 
					                                        <t t-call="theme_coffee_shop.coffee_menu_category"/> | 
				
			||||
 | 
					                                        <div t-if="category" | 
				
			||||
 | 
					                                             class="d-flex align-items-center d-lg-none me-auto"> | 
				
			||||
 | 
					                                            <t t-if="not category.parent_id" | 
				
			||||
 | 
					                                               t-set="backUrl" | 
				
			||||
 | 
					                                               t-valuef="/menu"/> | 
				
			||||
 | 
					                                            <t t-else="" t-set="backUrl" | 
				
			||||
 | 
					                                               t-value="keep('/menu/category/' + slug(category.parent_id), category=0)"/> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                                            <a t-attf-class="btn btn-{{navClass}} me-2" | 
				
			||||
 | 
					                                               t-att-href="category.parent_id and keep('/menu/category/' + slug(category.parent_id), category=0) or '/menu'"> | 
				
			||||
 | 
					                                                <i class="fa fa-angle-left"/> | 
				
			||||
 | 
					                                            </a> | 
				
			||||
 | 
					                                            <h4 t-out="category.name" | 
				
			||||
 | 
					                                                class="mb-0 me-auto"/> | 
				
			||||
 | 
					                                        </div> | 
				
			||||
 | 
					                                        <button t-if="opt_wsale_categories" | 
				
			||||
 | 
					                                                t-attf-class="btn btn-{{navClass}} position-relative ms-3 {{not opt_wsale_attributes_top and 'd-lg-none'}}" | 
				
			||||
 | 
					                                                data-bs-toggle="offcanvas" | 
				
			||||
 | 
					                                                data-bs-target="#o_wsale_offcanvas"> | 
				
			||||
 | 
					                                            <i class="fa fa-sliders"/> | 
				
			||||
 | 
					                                            <span t-if="isFilteringByPrice or attrib_set" | 
				
			||||
 | 
					                                                  t-attf-class="position-absolute top-0 start-100 translate-middle badge border border-{{navClass}} rounded-circle bg-danger p-1"> | 
				
			||||
 | 
					                                                <span class="visually-hidden"> | 
				
			||||
 | 
					                                                    filters active | 
				
			||||
 | 
					                                                </span> | 
				
			||||
 | 
					                                            </span> | 
				
			||||
 | 
					                                        </button> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                    <div t-if="original_search and products" | 
				
			||||
 | 
					                                         class="alert alert-warning mt8"> | 
				
			||||
 | 
					                                        No results found for '<span | 
				
			||||
 | 
					                                            t-esc="original_search"/>'. Showing | 
				
			||||
 | 
					                                        results for '<span t-esc="search"/>'. | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                    <t t-if="category"> | 
				
			||||
 | 
					                                        <t t-set='editor_msg'>Drag building | 
				
			||||
 | 
					                                            blocks here to customize the header | 
				
			||||
 | 
					                                            for "<t t-esc='category.name'/>" | 
				
			||||
 | 
					                                            category. | 
				
			||||
 | 
					                                        </t> | 
				
			||||
 | 
					                                        <div class="mb16" id="category_header" | 
				
			||||
 | 
					                                             t-att-data-editor-message="editor_msg" | 
				
			||||
 | 
					                                             t-field="category.website_description"/> | 
				
			||||
 | 
					                                    </t> | 
				
			||||
 | 
					                                    <div t-cache="pricelist,products" | 
				
			||||
 | 
					                                         t-if="products" | 
				
			||||
 | 
					                                         class="o_wsale_products_grid_table_wrapper pt-3 pt-lg-0"> | 
				
			||||
 | 
					                                        <table class="table table-borderless h-100 m-0" | 
				
			||||
 | 
					                                               t-att-data-ppg="ppg" | 
				
			||||
 | 
					                                               t-att-data-ppr="ppr" | 
				
			||||
 | 
					                                               t-att-data-default-sort="website.shop_default_sort" | 
				
			||||
 | 
					                                               t-att-data-name="grid_block_name"> | 
				
			||||
 | 
					                                            <colgroup t-ignore="true"> | 
				
			||||
 | 
					                                                <col t-foreach="ppr" t-as="p"/> | 
				
			||||
 | 
					                                            </colgroup> | 
				
			||||
 | 
					                                            <tbody> | 
				
			||||
 | 
					                                                <tr t-foreach="bins" | 
				
			||||
 | 
					                                                    t-as="tr_product"> | 
				
			||||
 | 
					                                                    <t t-foreach="tr_product" | 
				
			||||
 | 
					                                                       t-as="td_product"> | 
				
			||||
 | 
					                                                        <t t-if="td_product"> | 
				
			||||
 | 
					                                                            <td t-att-colspan="td_product['x'] != 1 and td_product['x']" | 
				
			||||
 | 
					                                                                t-att-rowspan="td_product['y'] != 1 and td_product['y']" | 
				
			||||
 | 
					                                                                t-attf-class="oe_product" | 
				
			||||
 | 
					                                                                t-att-data-ribbon-id="td_product['ribbon'].id" | 
				
			||||
 | 
					                                                                t-att-data-name="product_block_name"> | 
				
			||||
 | 
					                                                                <div t-attf-class="o_wsale_product_grid_wrapper position-relative h-100 o_wsale_product_grid_wrapper_#{td_product['x']}_#{td_product['y']}"> | 
				
			||||
 | 
					                                                                    <t t-call="theme_coffee_shop.menu_products_item"> | 
				
			||||
 | 
					                                                                        <t t-set="product" | 
				
			||||
 | 
					                                                                           t-value="td_product['product']"/> | 
				
			||||
 | 
					                                                                    </t> | 
				
			||||
 | 
					                                                                </div> | 
				
			||||
 | 
					                                                            </td> | 
				
			||||
 | 
					                                                        </t> | 
				
			||||
 | 
					                                                        <td t-else=""/> | 
				
			||||
 | 
					                                                    </t> | 
				
			||||
 | 
					                                                </tr> | 
				
			||||
 | 
					                                            </tbody> | 
				
			||||
 | 
					                                        </table> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                    <div t-else="" | 
				
			||||
 | 
					                                         class="text-center text-muted mt128 mb256"> | 
				
			||||
 | 
					                                        <t t-if="not search"> | 
				
			||||
 | 
					                                            <h3 class="mt8">No product defined | 
				
			||||
 | 
					                                            </h3> | 
				
			||||
 | 
					                                            <p t-if="category">No product | 
				
			||||
 | 
					                                                defined in category " | 
				
			||||
 | 
					                                                <strong | 
				
			||||
 | 
					                                                        t-esc="category.display_name"/> | 
				
			||||
 | 
					                                                ". | 
				
			||||
 | 
					                                            </p> | 
				
			||||
 | 
					                                        </t> | 
				
			||||
 | 
					                                        <t t-else=""> | 
				
			||||
 | 
					                                            <h3 class="mt8">No results</h3> | 
				
			||||
 | 
					                                            <p>No results for "<strong | 
				
			||||
 | 
					                                                    t-esc='search'/>" | 
				
			||||
 | 
					                                                <t t-if="category">in category | 
				
			||||
 | 
					                                                    " | 
				
			||||
 | 
					                                                    <strong t-esc="category.display_name"/> | 
				
			||||
 | 
					                                                    " | 
				
			||||
 | 
					                                                </t> | 
				
			||||
 | 
					                                                . | 
				
			||||
 | 
					                                            </p> | 
				
			||||
 | 
					                                        </t> | 
				
			||||
 | 
					                                        <p t-ignore="true" | 
				
			||||
 | 
					                                           groups="sales_team.group_sale_manager"> | 
				
			||||
 | 
					                                            Click <i>'New'</i> in the top-right | 
				
			||||
 | 
					                                            corner to create your first | 
				
			||||
 | 
					                                            product. | 
				
			||||
 | 
					                                        </p> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                    <div class="products_pager d-flex justify-content-center pt-5 pb-3"> | 
				
			||||
 | 
					                                        <t t-call="website.pager"/> | 
				
			||||
 | 
					                                    </div> | 
				
			||||
 | 
					                                </div> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                            <t t-call="website_sale.o_wsale_offcanvas"/> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                        <div class="oe_structure oe_empty oe_structure_not_nearest"/> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </t> | 
				
			||||
 | 
					            </t> | 
				
			||||
 | 
					        </field> | 
				
			||||
 | 
					    </record> | 
				
			||||
 | 
					    <!-- This XML template defines the breadcrumb for product categories in the "Menu" section --> | 
				
			||||
 | 
					    <template id="theme_coffee_shop.coffee_products_breadcrumb" | 
				
			||||
 | 
					              name=" Coffee Products Breadcrumb"> | 
				
			||||
 | 
					        <ol t-if="category" t-attf-class="breadcrumb #{_classes}"> | 
				
			||||
 | 
					            <li class="breadcrumb-item"> | 
				
			||||
 | 
					                <a t-attf-href="/menu">Products</a> | 
				
			||||
 | 
					            </li> | 
				
			||||
 | 
					            <t t-foreach="category.parents_and_self" t-as="cat"> | 
				
			||||
 | 
					                <li t-if="cat == category" class="breadcrumb-item"> | 
				
			||||
 | 
					                    <span class="d-inline-block" t-field="cat.name"/> | 
				
			||||
 | 
					                </li> | 
				
			||||
 | 
					                <li t-else="" class="breadcrumb-item"> | 
				
			||||
 | 
					                    <a t-att-href="keep('/menu/category/%s' % slug(cat), category=0)" | 
				
			||||
 | 
					                       t-field="cat.name"/> | 
				
			||||
 | 
					                </li> | 
				
			||||
 | 
					            </t> | 
				
			||||
 | 
					        </ol> | 
				
			||||
 | 
					    </template> | 
				
			||||
 | 
					    <!-- This XML template defines the display of menu categories in the "Menu" section --> | 
				
			||||
 | 
					    <template id="theme_coffee_shop.coffee_menu_category" | 
				
			||||
 | 
					              name="Coffee Menu Categories"> | 
				
			||||
 | 
					        <t t-if="category.id"> | 
				
			||||
 | 
					            <t t-set="entries" | 
				
			||||
 | 
					               t-value="not search and category.child_id or category.child_id.filtered(lambda c: category.id in search_categories_ids)"/> | 
				
			||||
 | 
					        </t> | 
				
			||||
 | 
					        <t t-else=""> | 
				
			||||
 | 
					            <t t-set="entries" t-value="categories"/> | 
				
			||||
 | 
					        </t> | 
				
			||||
 | 
					        <div t-if="entries" | 
				
			||||
 | 
					             class="o_wsale_filmstip_container d-flex align-items-stretch mb-2 overflow-hidden"> | 
				
			||||
 | 
					            <div class="o_wsale_filmstip_wrapper pb-1 mb-2 overflow-auto"> | 
				
			||||
 | 
					                <ul class="o_wsale_filmstip d-flex align-items-stretch mb-0 list-unstyled overflow-visible"> | 
				
			||||
 | 
					                    <t t-foreach="entries" t-as="c" t-if="c.image_128" | 
				
			||||
 | 
					                       t-set="atLeastOneImage" t-value="True"/> | 
				
			||||
 | 
					                    <t t-foreach="entries" t-as="c"> | 
				
			||||
 | 
					                        <a t-attf-class="d-flex {{'pe-3' if not c_last else ''}} btn filter-box" | 
				
			||||
 | 
					                           t-att-href="keep('/menu/category/%s' % slug(c), category=0)"> | 
				
			||||
 | 
					                            <div t-attf-class="btn btn-{{navClass}} d-flex align-items-center {{'ps-2 pe-3' if c.image_128 else 'px-4'}} fs-6 fw-normal filter-text"> | 
				
			||||
 | 
					                                <span t-field="c.name"/> | 
				
			||||
 | 
					                            </div> | 
				
			||||
 | 
					                        </a> | 
				
			||||
 | 
					                    </t> | 
				
			||||
 | 
					                </ul> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </div> | 
				
			||||
 | 
					    </template> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					    <template id="theme_coffee_shop.menu_products_item" | 
				
			||||
 | 
					              name="Menu Products item"> | 
				
			||||
 | 
					        <form action="/shop/cart/update" method="post" | 
				
			||||
 | 
					              class="oe_product_cart h-100 d-flex" | 
				
			||||
 | 
					              t-att-data-publish="product.website_published and 'on' or 'off'" | 
				
			||||
 | 
					              itemscope="itemscope" itemtype="http://schema.org/Product"> | 
				
			||||
 | 
					            <t t-set="product_href" | 
				
			||||
 | 
					               t-value="(keep(product.website_url or '', page=(pager['page']['num'] if pager['page']['num']>1 else None)) or '') + (selected_attributes_hash or '')"/> | 
				
			||||
 | 
					            <t t-set="image_type" | 
				
			||||
 | 
					               t-value="product._get_suitable_image_size(ppr, td_product['x'], td_product['y'])"/> | 
				
			||||
 | 
					            <div class="oe_product_image position-relative h-100 flex-grow-0 overflow-hidden"> | 
				
			||||
 | 
					                <input type="hidden" name="csrf_token" | 
				
			||||
 | 
					                       t-att-value="request.csrf_token()" | 
				
			||||
 | 
					                       t-nocache="The csrf token must always be up to date."/> | 
				
			||||
 | 
					                <a t-att-href="product_href" | 
				
			||||
 | 
					                   class="oe_product_image_link d-block h-100 position-relative" | 
				
			||||
 | 
					                   itemprop="url" contenteditable="false"> | 
				
			||||
 | 
					                    <t t-set="image_holder" | 
				
			||||
 | 
					                       t-value="product._get_image_holder()"/> | 
				
			||||
 | 
					                    <span t-field="image_holder.image_1920" | 
				
			||||
 | 
					                          t-options="{'widget': 'image', 'preview_image': image_type, 'itemprop': 'image', 'class': 'h-100 w-100 position-absolute'}" | 
				
			||||
 | 
					                          class="oe_product_image_img_wrapper d-flex h-100 justify-content-center align-items-center position-absolute"/> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                    <!-- Safely check if ribbon exists before accessing attributes --> | 
				
			||||
 | 
					                    <t t-set="bg_color" | 
				
			||||
 | 
					                       t-value="td_product['ribbon'] and getattr(td_product['ribbon'], 'bg_color', '') or ''"/> | 
				
			||||
 | 
					                    <t t-set="text_color" | 
				
			||||
 | 
					                       t-value="td_product['ribbon'] and getattr(td_product['ribbon'], 'text_color', '') or ''"/> | 
				
			||||
 | 
					                    <t t-set="bg_class" | 
				
			||||
 | 
					                       t-value="td_product['ribbon'] and getattr(td_product['ribbon'], 'html_class', '') or ''"/> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					                    <span t-attf-class="o_ribbon o_not_editable #{bg_class}" | 
				
			||||
 | 
					                          t-attf-style="#{text_color and ('color: %s; ' % text_color)}#{bg_color and 'background-color:' + bg_color}" | 
				
			||||
 | 
					                          t-out="td_product['ribbon'] and getattr(td_product['ribbon'], 'html', '') or ''"/> | 
				
			||||
 | 
					                </a> | 
				
			||||
 | 
					
 | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					            <div class="o_wsale_product_information position-relative d-flex flex-column flex-grow-1 flex-shrink-1"> | 
				
			||||
 | 
					                <div class="o_wsale_product_information_text flex-grow-1"> | 
				
			||||
 | 
					                    <h6 class="o_wsale_products_item_title mb-2"> | 
				
			||||
 | 
					                        <a class="text-primary text-decoration-none" | 
				
			||||
 | 
					                           itemprop="name" t-att-href="product_href" | 
				
			||||
 | 
					                           t-att-content="product.name" t-field="product.name"/> | 
				
			||||
 | 
					                        <a t-if="not product.website_published" role="button" | 
				
			||||
 | 
					                           t-att-href="product_href" | 
				
			||||
 | 
					                           class="btn btn-sm btn-danger" | 
				
			||||
 | 
					                           title="This product is unpublished."> | 
				
			||||
 | 
					                            Unpublished | 
				
			||||
 | 
					                        </a> | 
				
			||||
 | 
					                    </h6> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					                <div class="o_wsale_product_sub d-flex justify-content-between align-items-end pb-1"> | 
				
			||||
 | 
					                    <t t-set="template_price_vals" | 
				
			||||
 | 
					                       t-value="get_product_prices(product)"/> | 
				
			||||
 | 
					                    <div class="o_wsale_product_btn"/> | 
				
			||||
 | 
					                    <div class="product_price" itemprop="offers" | 
				
			||||
 | 
					                         itemscope="itemscope" | 
				
			||||
 | 
					                         itemtype="http://schema.org/Offer"> | 
				
			||||
 | 
					                        <t t-if="'base_price' in template_price_vals and (template_price_vals['base_price'] > template_price_vals['price_reduce']) and (template_price_vals['price_reduce'] or not website.prevent_zero_price_sale)"> | 
				
			||||
 | 
					                            <del t-attf-class="text-muted me-1 h6 mb-0" | 
				
			||||
 | 
					                                 style="white-space: nowrap;"> | 
				
			||||
 | 
					                                <em class="small" | 
				
			||||
 | 
					                                    t-esc="template_price_vals['base_price']" | 
				
			||||
 | 
					                                    t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/> | 
				
			||||
 | 
					                            </del> | 
				
			||||
 | 
					                        </t> | 
				
			||||
 | 
					                        <span class="h6 mb-0" | 
				
			||||
 | 
					                              t-if="template_price_vals['price_reduce'] or not website.prevent_zero_price_sale" | 
				
			||||
 | 
					                              t-esc="template_price_vals['price_reduce']" | 
				
			||||
 | 
					                              t-options="{'widget': 'monetary', 'display_currency': website.currency_id}"/> | 
				
			||||
 | 
					                        <span class="h6 mb-0" t-else="" | 
				
			||||
 | 
					                              t-field="website.prevent_zero_price_sale_text"/> | 
				
			||||
 | 
					                        <span itemprop="price" style="display:none;" | 
				
			||||
 | 
					                              t-esc="template_price_vals['price_reduce']"/> | 
				
			||||
 | 
					                        <span itemprop="priceCurrency" style="display:none;" | 
				
			||||
 | 
					                              t-esc="website.currency_id.name"/> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </form> | 
				
			||||
 | 
					    </template> | 
				
			||||
 | 
					</odoo> | 
				
			||||
@ -0,0 +1,58 @@ | 
				
			|||||
 | 
					<?xml version="1.0" encoding="UTF-8" ?> | 
				
			||||
 | 
					<odoo> | 
				
			||||
 | 
					    <!-- Template for customizing the appearance of product listings --> | 
				
			||||
 | 
					    <template id="coffee_shop_products" inherit_id="website_sale.products" | 
				
			||||
 | 
					              name="Coffee Shop Products" active="True"> | 
				
			||||
 | 
					        <xpath expr="//div[@id='wrap']" position="before"> | 
				
			||||
 | 
					            <section id="banner" class="banner-imgShop"> | 
				
			||||
 | 
					                <div class="container wrapper "> | 
				
			||||
 | 
					                    <div class="banner-content"> | 
				
			||||
 | 
					                        <div class="banner-text"> | 
				
			||||
 | 
					                            <p class="banner-head">A few clicks</p> | 
				
			||||
 | 
					                            <p class="banner-head">is all it takes</p> | 
				
			||||
 | 
					                        </div> | 
				
			||||
 | 
					                    </div> | 
				
			||||
 | 
					                </div> | 
				
			||||
 | 
					            </section> | 
				
			||||
 | 
					        </xpath> | 
				
			||||
 | 
					    </template> | 
				
			||||
 | 
					    <!-- Template for customizing individual product items --> | 
				
			||||
 | 
					    <template id="products_item_coffee" name="Products item Coffee" | 
				
			||||
 | 
					              inherit_id="website_sale.products_item"> | 
				
			||||
 | 
					        <xpath expr="//div[hasclass('o_wsale_product_information_text')]" | 
				
			||||
 | 
					               position="after"> | 
				
			||||
 | 
					            <div id="rating_coffee"> | 
				
			||||
 | 
					                <t t-if="is_view_active('website_sale.product_comment')"> | 
				
			||||
 | 
					                    <t t-if="product.rating_avg > 1"> | 
				
			||||
 | 
					                        <i class="fa fa-star star" role="img"/> | 
				
			||||
 | 
					                    </t> | 
				
			||||
 | 
					                    <t t-else=""> | 
				
			||||
 | 
					                        <i class="fa fa-star-o star" role="img"/> | 
				
			||||
 | 
					                    </t> | 
				
			||||
 | 
					                    <small class="text-muted ms-1"> | 
				
			||||
 | 
					                        <t t-esc="product.rating_avg"/> | 
				
			||||
 | 
					                        ( | 
				
			||||
 | 
					                        <t t-esc="product.rating_count"/> | 
				
			||||
 | 
					                        Review) | 
				
			||||
 | 
					                    </small> | 
				
			||||
 | 
					                </t> | 
				
			||||
 | 
					            </div> | 
				
			||||
 | 
					        </xpath> | 
				
			||||
 | 
					    </template> | 
				
			||||
 | 
					    <!-- Template for customizing the "Add to Cart" button --> | 
				
			||||
 | 
					    <template id="coffee_buy" inherit_id="website_sale.products_add_to_cart" | 
				
			||||
 | 
					              name="Coffee Buy"> | 
				
			||||
 | 
					        <xpath expr="//a" position="attributes"> | 
				
			||||
 | 
					            <attribute name="class" add="add_buy" separator=" "/> | 
				
			||||
 | 
					        </xpath> | 
				
			||||
 | 
					    </template> | 
				
			||||
 | 
					    <!--         Template for customizing the wishlist button--> | 
				
			||||
 | 
					    <template id="coffee_wishlist" | 
				
			||||
 | 
					              inherit_id="website_sale_wishlist.add_to_wishlist"> | 
				
			||||
 | 
					        <xpath expr="//button[hasclass('o_add_wishlist')]" | 
				
			||||
 | 
					               position="attributes"> | 
				
			||||
 | 
					            <attribute name="class" add="btn-primary" | 
				
			||||
 | 
					                       remove="btn-outline-primary" separator=" "/> | 
				
			||||
 | 
					        </xpath> | 
				
			||||
 | 
					    </template> | 
				
			||||
 | 
					</odoo> | 
				
			||||