- Introduced `saas.plan` model to define subscription plans with limits and pricing. - Created `saas.restaurant` model to manage restaurant tenants, including database provisioning and subscription management. - Implemented views for managing SaaS plans and restaurant tenants, including tree and form views. - Added security access rights for the new models. - Developed a backup management view for database backups. - Updated menu structure to include new SaaS management options. - Added Docker and deployment configurations for PostgreSQL, Redis, and Odoo services. - Included scaling guide and backup scripts for production environments. - Enhanced theme with new images and layout adjustments.
204 lines
14 KiB
XML
204 lines
14 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<odoo>
|
||
<data>
|
||
<template id="Shivasakthi_main_layout_new" inherit_id="website.layout" name="Shivasakthi Main Layout New" priority="50">
|
||
<!-- SEO and Favicon -->
|
||
<xpath expr="//head/*[1]" position="before">
|
||
<t t-if="not title">
|
||
<t t-if="not additional_title and main_object and 'name' in main_object">
|
||
<t t-set="additional_title" t-value="main_object.name"/>
|
||
</t>
|
||
<t t-set="default_title" t-translation="off" t-value="(additional_title + ' | ' if additional_title else '') + (website or res_company).name"/>
|
||
<t t-set="seo_object" t-value="seo_object or main_object"/>
|
||
<t t-if="seo_object and 'website_meta_title' in seo_object and seo_object.website_meta_title">
|
||
<t t-set="title" t-value="seo_object.website_meta_title"/>
|
||
</t>
|
||
<t t-else="">
|
||
<t t-set="title" t-value="default_title"/>
|
||
</t>
|
||
</t>
|
||
<t t-set="x_icon" t-value="'/dine360_theme_shivasakthi/static/description/icon.png'"/>
|
||
</xpath>
|
||
|
||
<xpath expr="//head/meta[last()]" position="after">
|
||
<meta name="generator" content="Odoo"/>
|
||
<t t-set="website_meta" t-value="seo_object and seo_object.get_website_meta() or {}"/>
|
||
<meta name="default_title" t-att-content="default_title" groups="website.group_website_designer"/>
|
||
<meta t-if="(main_object and 'website_indexed' in main_object and not main_object.website_indexed) or (website.domain and not website._is_indexable_url(request.httprequest.url_root))" name="robots" content="noindex"/>
|
||
<t t-set="seo_object" t-value="seo_object or main_object"/>
|
||
<t t-set="meta_description" t-value="seo_object and 'website_meta_description' in seo_object and seo_object.website_meta_description or website_meta_description or website_meta.get('meta_description', '')"/>
|
||
<t t-set="meta_keywords" t-value="seo_object and 'website_meta_keywords' in seo_object and seo_object.website_meta_keywords or website_meta_keywords"/>
|
||
<meta t-if="meta_description or editable" name="description" t-att-content="meta_description"/>
|
||
<meta t-if="meta_keywords or editable" name="keywords" t-att-content="meta_keywords"/>
|
||
<t t-if="seo_object">
|
||
<meta name="default_description" t-att-content="website_meta_description or website_meta.get('meta_description')" groups="website.group_website_designer"/>
|
||
<t t-set="opengraph_meta" t-value="website_meta.get('opengraph_meta')"/>
|
||
<t t-if="opengraph_meta">
|
||
<t t-foreach="opengraph_meta" t-as="property">
|
||
<t t-if="isinstance(opengraph_meta[property], list)">
|
||
<t t-foreach="opengraph_meta[property]" t-as="meta_content">
|
||
<meta t-att-property="property" t-att-content="meta_content"/>
|
||
</t>
|
||
</t>
|
||
<t t-else="">
|
||
<meta t-att-property="property" t-att-content="opengraph_meta[property]"/>
|
||
</t>
|
||
</t>
|
||
</t>
|
||
<t t-set="twitter_meta" t-value="website_meta.get('twitter_meta')"/>
|
||
<t t-if="opengraph_meta">
|
||
<t t-foreach="twitter_meta" t-as="t_meta">
|
||
<meta t-att-name="t_meta" t-att-content="twitter_meta[t_meta]"/>
|
||
</t>
|
||
</t>
|
||
</t>
|
||
<t t-if="request and request.is_frontend_multilang and website and website.is_public_user()">
|
||
<t t-set="alternate_languages" t-value="website._get_alternate_languages(canonical_params=canonical_params)"/>
|
||
<t t-foreach="alternate_languages" t-as="lg">
|
||
<link rel="alternate" t-att-hreflang="lg['hreflang']" t-att-href="lg['href']"/>
|
||
</t>
|
||
</t>
|
||
<link t-if="request and website and website.is_public_user()" rel="canonical" t-att-href="website._get_canonical_url(canonical_params=canonical_params)"/>
|
||
<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=Bebas+Neue&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet"/>
|
||
</xpath>
|
||
|
||
<!-- Custom Header Implementation -->
|
||
<xpath expr="//header" position="replace">
|
||
<header id="top" data-anchor="true" data-name="Header" class="o_header_fixed header_transparent_overlay">
|
||
<!-- Main Nav (Transparent, Logo Left, Menu Center, CTA Right) -->
|
||
<nav class="o_header_main_nav navbar navbar-expand-lg navbar-dark py-3 px-lg-5 px-3">
|
||
<div class="container-fluid">
|
||
<!-- Brand Logo on the left -->
|
||
<a class="navbar-brand py-0 d-flex align-items-center" href="/">
|
||
<img src="/dine360_theme_shivasakthi/static/src/img/shivasakthi_logo_new.png" class="img-fluid" style="max-height: 70px;" alt="Shiva Sakthi Restaurant"/>
|
||
</a>
|
||
|
||
<!-- Mobile Toggle -->
|
||
<button class="navbar-toggler border-0 ms-auto" type="button" data-bs-toggle="collapse" data-bs-target="#top_menu_collapse">
|
||
<span class="navbar-toggler-icon"></span>
|
||
</button>
|
||
|
||
<div class="collapse navbar-collapse" id="top_menu_collapse">
|
||
<!-- Center Menu Links -->
|
||
<ul class="navbar-nav mx-auto gap-lg-4 text-center mt-3 mt-lg-0">
|
||
<li class="nav-item"><a class="nav-link text-uppercase" href="/">Home</a></li>
|
||
<li class="nav-item"><a class="nav-link text-uppercase" href="/about">About Us</a></li>
|
||
<li class="nav-item"><a class="nav-link text-uppercase" href="/shop">Food Menu</a></li>
|
||
<li class="nav-item"><a class="nav-link text-uppercase" href="/blog">Blog</a></li>
|
||
<li class="nav-item"><a class="nav-link text-uppercase" href="/contactus">Contact</a></li>
|
||
</ul>
|
||
|
||
<!-- Right CTA Order Button and Cart -->
|
||
<div class="d-flex align-items-center justify-content-center gap-3 mt-3 mt-lg-0">
|
||
<t t-set="website_sale_order" t-value="website.sale_get_order()"/>
|
||
<a href="/shop/cart" class="nav-link o_wsale_shopping_cart position-relative d-inline-flex align-items-center me-2" title="My Cart">
|
||
<i class="fa fa-shopping-cart fs-3 text-white"></i>
|
||
<span class="badge rounded-pill bg-danger position-absolute top-0 start-100 translate-middle cart-badge"
|
||
t-if="website_sale_order and website_sale_order.cart_quantity > 0"
|
||
t-esc="website_sale_order.cart_quantity"
|
||
style="font-size: 0.75rem; padding: 0.35em 0.6em; border: 2px solid #111;"/>
|
||
</a>
|
||
<a href="/shop" class="btn btn-order-now px-4 py-2 d-inline-flex align-items-center">
|
||
ORDER NOW <i class="fa fa-long-arrow-right ms-2"></i>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
</header>
|
||
</xpath>
|
||
</template>
|
||
|
||
<!-- Hidden Phone Snippet for Odoo internal use -->
|
||
<template id="Shivasakthi_header_phone_new" inherit_id="website.header_text_element" name="Shivasakthi Header Phone New" priority="60">
|
||
<xpath expr="/*" position="replace">
|
||
<div class="o_header_text_element d-none">
|
||
<span class="o_force_ltr">905-677-3555</span>
|
||
</div>
|
||
</xpath>
|
||
</template>
|
||
|
||
<template id="Shivasakthi_footer_new" inherit_id="website.layout" name="Shivasakthi Footer New" priority="50">
|
||
<xpath expr="//footer[@id='bottom']" position="replace">
|
||
<footer id="bottom" data-anchor="true" data-name="Footer" class="o_footer o_colored_level o_cc">
|
||
<div id="footer" class="oe_structure oe_structure_solo">
|
||
|
||
<section class="s_footer_image_match" style="background-color: #111418; color: #ffffff; padding: 80px 0 0 0; position: relative;">
|
||
<!-- Main Footer Middle Section -->
|
||
<div class="container main-footer-content pb-5">
|
||
<div class="row gx-lg-5">
|
||
<!-- Col 1: Brand -->
|
||
<div class="col-lg-4 col-md-6 mb-4">
|
||
<div class="footer-logo mb-4 d-flex align-items-center">
|
||
<img src="/dine360_theme_shivasakthi/static/src/img/shivasakthi_logo_new.png" alt="Shiva Sakthi Restaurant" style="height: 80px;"/>
|
||
</div>
|
||
<p class="footer-desc mb-4" style="font-size: 14px; line-height: 1.8; color: #dcdcdc;">
|
||
At Shiva Sakthi Restaurant, we bring you the best of South and North Indian cuisine, crafted with passion and authenticity. From our kitchen to your plate, every dish is a celebration of India's rich culinary heritage.
|
||
</p>
|
||
<div class="footer-social-boxes d-flex gap-3">
|
||
<a href="#" target="_blank" class="social-box-dark"><i class="fa fa-facebook"></i></a>
|
||
<a href="#" target="_blank" class="social-box-dark"><i class="fa fa-instagram"></i></a>
|
||
<a href="#" target="_blank" class="social-box-dark"><i class="fa fa-youtube-play"></i></a>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Col 2: Quick Links -->
|
||
<div class="col-lg-2 col-md-6 mb-4">
|
||
<h5 class="footer-column-title fw-bold text-uppercase mb-4" style="font-family: 'Bebas Neue', Impact, sans-serif; letter-spacing: 1px; font-size: 20px;">QUICK LINKS</h5>
|
||
<ul class="footer-links-list list-unstyled ps-0" style="font-size: 14px;">
|
||
<li class="mb-3"><a href="/" class="text-decoration-none text-white">Home</a></li>
|
||
<li class="mb-3"><a href="/about" class="text-decoration-none text-white">About</a></li>
|
||
<li class="mb-3"><a href="/menu" class="text-decoration-none text-white">Menu</a></li>
|
||
<li class="mb-3"><a href="/contactus" class="text-decoration-none text-white">Contact</a></li>
|
||
</ul>
|
||
</div>
|
||
|
||
<!-- Col 3: Contact Us -->
|
||
<div class="col-lg-3 col-md-6 mb-4">
|
||
<h5 class="footer-column-title fw-bold text-uppercase mb-4" style="font-family: 'Bebas Neue', Impact, sans-serif; letter-spacing: 1px; font-size: 20px;">CONTACT US</h5>
|
||
<div class="contact-info-list" style="font-size: 14px; line-height: 1.8; color: #dcdcdc;">
|
||
<p class="mb-3">7166 Airport Road, Mississauga<br/>Ontario.L4T 2H2, Canada</p>
|
||
<p class="mb-3">info@shivasakthi.ca</p>
|
||
<p class="mb-3">905-677-3555</p>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Col 4: Opening Hour -->
|
||
<div class="col-lg-3 col-md-6 mb-4">
|
||
<h5 class="footer-column-title fw-bold text-uppercase mb-4" style="font-family: 'Bebas Neue', Impact, sans-serif; letter-spacing: 1px; font-size: 20px;">OPENING HOUR</h5>
|
||
<div class="hours-list" style="font-size: 14px; line-height: 1.8;">
|
||
<p class="mb-2 text-white">Monday – Friday: <span style="color: #ffb800;">11.30 am - 10.00 pm</span></p>
|
||
<p class="mb-0 text-white">Saturday, Sunday: <span style="color: #ffb800;">12.00 pm - 10.00 pm</span></p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Copyright Bar -->
|
||
<div class="footer-copyright-bar" style="border-top: 1px solid rgba(255,255,255,0.05); padding: 20px 0;">
|
||
<div class="container text-center">
|
||
<p class="mb-0" style="font-size: 13px; color: #dcdcdc;">
|
||
Copyright 2026 © Shiva Sakthi Restaurant. Powered by <span style="color: #ffb800;">MetatronCube</span>. All Right Reserved.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Scroll to Top Button -->
|
||
<!-- <a href="#" class="scroll-to-top" style="position: absolute; right: 30px; bottom: 30px; background-color: #ffb800; color: #ffffff; width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 20px; text-decoration: none; box-shadow: 0 4px 6px rgba(0,0,0,0.3);">
|
||
<i class="fa fa-arrow-up"></i>
|
||
</a> -->
|
||
</section>
|
||
</div>
|
||
</footer>
|
||
</xpath>
|
||
</template>
|
||
</data>
|
||
</odoo>
|
||
|
||
|
||
|
||
|
||
|