Update Chennora theme with new offer cards and assets
This commit is contained in:
parent
b28e05b057
commit
2447db0726
68
HOW_TO_UPDATE_THEME.md
Normal file
68
HOW_TO_UPDATE_THEME.md
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
# How to Update the Chennora Theme
|
||||||
|
|
||||||
|
## The 3 cards are not showing because the theme module needs to be upgraded in Odoo.
|
||||||
|
|
||||||
|
### Quick Fix - Upgrade via Web Interface:
|
||||||
|
|
||||||
|
1. **Open your browser** and go to: `http://localhost:10002`
|
||||||
|
|
||||||
|
2. **Login to Odoo** with your credentials
|
||||||
|
|
||||||
|
3. **Go to Apps** (click the grid icon in top menu)
|
||||||
|
|
||||||
|
4. **Remove the "Apps" filter**:
|
||||||
|
- You'll see a search bar that says "Apps"
|
||||||
|
- Click the ❌ (X) next to "Apps" to remove the filter
|
||||||
|
|
||||||
|
5. **Search for "chennora"**:
|
||||||
|
- Type "chennora" in the search box
|
||||||
|
- You should see "Dine360 Theme Chennora"
|
||||||
|
|
||||||
|
6. **Click "Upgrade"**:
|
||||||
|
- Click the "Upgrade" button on the module card
|
||||||
|
- Wait for the upgrade to complete
|
||||||
|
|
||||||
|
7. **Go to Website**:
|
||||||
|
- Click "Website" in the top menu
|
||||||
|
- Or go to: `http://localhost:10002`
|
||||||
|
|
||||||
|
8. **Refresh the page** (Ctrl + F5 or Cmd + Shift + R)
|
||||||
|
|
||||||
|
### What Changed:
|
||||||
|
|
||||||
|
✅ **3 New Food Images Added:**
|
||||||
|
- `gobi-65.png` - Crispy Gobi 65
|
||||||
|
- `unlimited-thali.png` - Unlimited Thali
|
||||||
|
- `fish-curry.png` - Fiery Fish Curry
|
||||||
|
|
||||||
|
✅ **New Card Design:**
|
||||||
|
- Dark background (#04121D)
|
||||||
|
- Text on left, image on right
|
||||||
|
- Yellow "ORDER NOW" buttons
|
||||||
|
- Matches your reference design
|
||||||
|
|
||||||
|
### If Images Still Don't Show:
|
||||||
|
|
||||||
|
The images are located at:
|
||||||
|
```
|
||||||
|
/dine360_theme_chennora/static/src/img/gobi-65.png
|
||||||
|
/dine360_theme_chennora/static/src/img/unlimited-thali.png
|
||||||
|
/dine360_theme_chennora/static/src/img/fish-curry.png
|
||||||
|
```
|
||||||
|
|
||||||
|
You can verify they load by visiting:
|
||||||
|
- `http://localhost:10002/dine360_theme_chennora/static/src/img/gobi-65.png`
|
||||||
|
- `http://localhost:10002/dine360_theme_chennora/static/src/img/unlimited-thali.png`
|
||||||
|
- `http://localhost:10002/dine360_theme_chennora/static/src/img/fish-curry.png`
|
||||||
|
|
||||||
|
### Alternative: Restart Everything
|
||||||
|
|
||||||
|
If the upgrade doesn't work, try:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd d:\ODOO_Final
|
||||||
|
docker-compose down
|
||||||
|
docker-compose up
|
||||||
|
```
|
||||||
|
|
||||||
|
Then upgrade the module again through the web interface.
|
||||||
142
IMPLEMENTATION_SUMMARY.md
Normal file
142
IMPLEMENTATION_SUMMARY.md
Normal file
@ -0,0 +1,142 @@
|
|||||||
|
# Chennora Theme Implementation Summary
|
||||||
|
|
||||||
|
## Completed Steps
|
||||||
|
|
||||||
|
### 1. Asset Migration
|
||||||
|
✅ **Copied main.css** from Vite project to Odoo theme
|
||||||
|
- Source: `d:\chennora-final\chennora\src\assets\main.css`
|
||||||
|
- Destination: `d:\ODOO_Final\odoo-testing-addons\addons\dine360_theme_chennora\static\src\css\main.css`
|
||||||
|
|
||||||
|
✅ **Copied all assets** (images, icons, etc.)
|
||||||
|
- Source: `d:\chennora-final\chennora\public\assets`
|
||||||
|
- Destination: `d:\ODOO_Final\odoo-testing-addons\addons\dine360_theme_chennora\static\src\assets\`
|
||||||
|
- Total: 1039 files copied
|
||||||
|
|
||||||
|
✅ **Updated __manifest__.py**
|
||||||
|
- Added main.css to assets_frontend
|
||||||
|
- Added Bootstrap Icons CDN link to layout.xml
|
||||||
|
|
||||||
|
### 2. Homepage Structure Analysis
|
||||||
|
|
||||||
|
The Chennora Vite website homepage consists of these sections (in order):
|
||||||
|
|
||||||
|
1. **Banner** - Hero carousel with 3 slides
|
||||||
|
2. **Offer Cards** - 3 promotional cards (Gobi 65, Unlimited Thali, Fish Curry)
|
||||||
|
3. **About Section** - Image + text about the restaurant
|
||||||
|
4. **Today's Special** - CTA section with background image
|
||||||
|
5. **Categories** - Feature category slider (18+ food categories)
|
||||||
|
6. **Popular Menu** - Interactive menu with center image
|
||||||
|
7. **Client Testimonials** - Google reviews carousel
|
||||||
|
8. **FAQ** - Accordion with 3 questions
|
||||||
|
9. **Blog** - Latest 3 blog posts
|
||||||
|
10. **Gallery** - Image slider (8 images)
|
||||||
|
|
||||||
|
### 3. Current Odoo Implementation Status
|
||||||
|
|
||||||
|
✅ **Already Implemented in pages.xml:**
|
||||||
|
- Banner carousel (3 slides) ✓
|
||||||
|
- Offer cards section ✓
|
||||||
|
- About section ✓
|
||||||
|
- Today's Special/Why Choose section ✓
|
||||||
|
- Categories grid ✓
|
||||||
|
- Popular Deals section ✓
|
||||||
|
- Testimonials carousel ✓
|
||||||
|
- FAQ accordion ✓
|
||||||
|
- Blog section ✓
|
||||||
|
- Gallery masonry ✓
|
||||||
|
|
||||||
|
## What's Missing
|
||||||
|
|
||||||
|
### Critical Items:
|
||||||
|
|
||||||
|
1. **CSS Asset Loading**
|
||||||
|
- Main.css is added but needs verification that all styles load correctly
|
||||||
|
- Asset paths need to be updated from `/assets/` to `/dine360_theme_chennora/static/src/assets/`
|
||||||
|
|
||||||
|
2. **JavaScript Dependencies**
|
||||||
|
- React Slick carousel (used in Vite) → Need Odoo equivalent or vanilla JS
|
||||||
|
- Bootstrap Icons (added via CDN)
|
||||||
|
- Custom animations and interactions
|
||||||
|
|
||||||
|
3. **Dynamic Content**
|
||||||
|
- Blog posts (currently hardcoded, need to pull from Odoo blog module)
|
||||||
|
- Google Reviews API integration
|
||||||
|
- Menu items (need to connect to product catalog)
|
||||||
|
|
||||||
|
4. **Asset Path Updates in XML**
|
||||||
|
- Update all image references in pages.xml to use correct Odoo paths
|
||||||
|
- Currently using `/web/image/` for some, need consistency
|
||||||
|
|
||||||
|
## Next Steps
|
||||||
|
|
||||||
|
### Phase 1: Asset Path Correction
|
||||||
|
```bash
|
||||||
|
# Update all asset references in pages.xml from:
|
||||||
|
/assets/img/...
|
||||||
|
# to:
|
||||||
|
/dine360_theme_chennora/static/src/assets/img/...
|
||||||
|
```
|
||||||
|
|
||||||
|
### Phase 2: Test and Verify
|
||||||
|
1. Restart Odoo server
|
||||||
|
2. Update the theme module
|
||||||
|
3. Check homepage rendering
|
||||||
|
4. Verify all images load
|
||||||
|
5. Check CSS styling
|
||||||
|
|
||||||
|
### Phase 3: Dynamic Content Integration
|
||||||
|
1. Connect blog section to Odoo blog posts
|
||||||
|
2. Integrate product catalog for menu items
|
||||||
|
3. Set up Google Reviews API (if needed)
|
||||||
|
|
||||||
|
### Phase 4: JavaScript Enhancements
|
||||||
|
1. Add carousel functionality (if not using Odoo's built-in)
|
||||||
|
2. Add smooth scroll animations
|
||||||
|
3. Add interactive elements
|
||||||
|
|
||||||
|
## File Locations
|
||||||
|
|
||||||
|
### Odoo Theme Files:
|
||||||
|
- **Main Theme**: `d:\ODOO_Final\odoo-testing-addons\addons\dine360_theme_chennora\`
|
||||||
|
- **Layout**: `views/layout.xml`
|
||||||
|
- **Pages**: `views/pages.xml`
|
||||||
|
- **CSS**: `static/src/css/main.css`
|
||||||
|
- **Assets**: `static/src/assets/`
|
||||||
|
- **Images**: `static/src/img/` (banner images)
|
||||||
|
|
||||||
|
### Vite Reference Files:
|
||||||
|
- **Source**: `d:\chennora-final\chennora\`
|
||||||
|
- **Components**: `src/Components/Home/`
|
||||||
|
- **Assets**: `public/assets/`
|
||||||
|
- **Main CSS**: `src/assets/main.css`
|
||||||
|
|
||||||
|
## Commands to Resume
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Navigate to Odoo directory
|
||||||
|
cd d:\ODOO_Final
|
||||||
|
|
||||||
|
# Restart Odoo (if needed)
|
||||||
|
docker-compose restart
|
||||||
|
|
||||||
|
# Update module
|
||||||
|
# Go to Apps → dine360_theme_chennora → Upgrade
|
||||||
|
```
|
||||||
|
|
||||||
|
## Key Differences: Vite vs Odoo
|
||||||
|
|
||||||
|
| Feature | Vite (React) | Odoo (QWeb) |
|
||||||
|
|---------|--------------|-------------|
|
||||||
|
| Carousel | React Slick | Bootstrap Carousel |
|
||||||
|
| Routing | React Router | Odoo Controllers |
|
||||||
|
| State | useState/useEffect | Server-side rendering |
|
||||||
|
| Assets | `/assets/` | `/module_name/static/` |
|
||||||
|
| Styling | CSS Modules | Global CSS |
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- The homepage structure in pages.xml closely matches the Vite version
|
||||||
|
- Main.css contains all the styling (335KB, 16,263 lines)
|
||||||
|
- Bootstrap Icons added via CDN for icon support
|
||||||
|
- All promotional images and content are already in place
|
||||||
|
- Need to verify asset paths work correctly in Odoo context
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 525 KiB After Width: | Height: | Size: 11 MiB |
@ -1 +1,70 @@
|
|||||||
/* Put your custom CSS/SCSS rules here */
|
/* Chennora Theme Custom Styles */
|
||||||
|
|
||||||
|
// Hero Button Hover
|
||||||
|
.btn-lg.flat:hover,
|
||||||
|
.btn-custom:hover {
|
||||||
|
background-color: #2BB1A5 !important;
|
||||||
|
color: white !important;
|
||||||
|
transform: translateY(-3px);
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Category Card Hover
|
||||||
|
.category-item {
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
transform: translateY(-10px);
|
||||||
|
|
||||||
|
.category-img {
|
||||||
|
border-color: #FECD4F !important;
|
||||||
|
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Background Text Overlay
|
||||||
|
.bg-text-overlay {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
width: 100%;
|
||||||
|
text-align: center;
|
||||||
|
z-index: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 8rem;
|
||||||
|
font-weight: 900;
|
||||||
|
color: rgba(0, 0, 0, 0.03); // Very subtle
|
||||||
|
white-space: nowrap;
|
||||||
|
text-transform: uppercase;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Section Headers
|
||||||
|
.section-title-wrapper {
|
||||||
|
position: relative;
|
||||||
|
z-index: 1;
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 50px;
|
||||||
|
|
||||||
|
.title-icon {
|
||||||
|
width: 40px;
|
||||||
|
margin: 0 10px;
|
||||||
|
filter: brightness(0.8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Footer
|
||||||
|
footer#bottom {
|
||||||
|
background-color: #0d3b37 !important; // Dark Teal
|
||||||
|
color: white;
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: #FECD4F !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -7,65 +7,70 @@
|
|||||||
<!-- ====================================================== -->
|
<!-- ====================================================== -->
|
||||||
<template id="custom_homepage" inherit_id="website.homepage" name="Chennora Homepage" priority="1000">
|
<template id="custom_homepage" inherit_id="website.homepage" name="Chennora Homepage" priority="1000">
|
||||||
<xpath expr="//div[@id='wrap']" position="replace">
|
<xpath expr="//div[@id='wrap']" position="replace">
|
||||||
<div id="wrap" class="oe_structure"><section class="s_carousel_wrapper o_half_screen_height" data-vxml="001" data-snippet="s_carousel" data-name="Carousel">
|
<div id="wrap" class="oe_structure">
|
||||||
<div class="s_carousel carousel s_carousel_rounded slide" data-bs-interval="10000" id="myCarousel1769233718425" style="background-image: none;">
|
<section class="s_carousel_wrapper" data-vxml="001" data-snippet="s_carousel" data-name="Carousel">
|
||||||
|
<div class="s_carousel carousel s_carousel_rounded slide" data-bs-interval="10000" id="myCarouselChennora" data-bs-ride="carousel">
|
||||||
|
|
||||||
<ol class="carousel-indicators o_we_no_overlay">
|
<ol class="carousel-indicators o_we_no_overlay">
|
||||||
<li data-bs-target="#myCarousel1769233718425" class="active" data-bs-slide-to="0" aria-current="true"/>
|
<li data-bs-target="#myCarouselChennora" class="active" data-bs-slide-to="0" aria-current="true"/>
|
||||||
<li data-bs-target="#myCarousel1769233718425" data-bs-slide-to="1"/>
|
<li data-bs-target="#myCarouselChennora" data-bs-slide-to="1"/>
|
||||||
<li data-bs-target="#myCarousel1769233718425" data-bs-slide-to="2"/>
|
<li data-bs-target="#myCarouselChennora" data-bs-slide-to="2"/>
|
||||||
</ol>
|
</ol>
|
||||||
|
|
||||||
<div class="carousel-inner">
|
<div class="carousel-inner">
|
||||||
|
|
||||||
<div class="carousel-item o_colored_level pb256 pt256 active oe_img_bg o_bg_img_center o_bg_img_origin_border_box" style="background-image: url("/dine360_theme_chennora/static/src/img/chen-banner-1.webp");" data-name="Slide" data-mimetype="image/webp" data-original-id="1135" data-original-src="/web/image/1135-573357bb/chen-banner-1.webp" data-mimetype-before-conversion="image/webp" data-resize-width="1920">
|
<!-- Slide 1 -->
|
||||||
<div class="oe_unremovable container">
|
<div class="carousel-item o_colored_level pt256 pb256 active oe_img_bg o_bg_img_center" style="background-color: #04121D; background-image: url('/dine360_theme_chennora/static/src/img/chen-banner-1.webp'); min-height: 85vh; background-size: cover; background-position: center;" data-name="Slide">
|
||||||
<div class="row">
|
<div class="container">
|
||||||
<div class="carousel-content o_colored_level col-lg-6 o_animate o_anim_zoom_in o_animate_both_scroll o_visible" style="">
|
<div class="row align-items-center">
|
||||||
<h2 class="display-3-fs"><font class="text-o-color-3">Slide Title</font></h2>
|
<div class="col-lg-6 o_colored_level o_animate o_anim_fade_in_up">
|
||||||
<p class="lead"><font class="text-o-color-3">Use this snippet to presents your content in a slideshow-like format. Don't write about products or services here, write about solutions.</font></p>
|
<h6 style="color: #2BB1A5; font-weight: 700; letter-spacing: 2px;">WELCOME TO CHENNORA</h6>
|
||||||
<h6>
|
<h1 class="display-3-fs" style="color: white; font-weight: 800; font-size: 4rem; line-height: 1.1; margin-bottom: 25px;">Flavors Of India In Brampton</h1>
|
||||||
<a href="/contactus" class="btn btn-custom text-o-color-5 flat" data-bs-original-title="" title="" style="border-width: 1px; border-style: solid; background-color: rgb(254, 205, 79);"><strong>Contact us</strong></a>
|
<div class="mt-5">
|
||||||
</h6>
|
<a href="/shop" class="btn btn-lg flat" style="background-color: #FECD4F; color: black; font-weight: 700; padding: 12px 35px; border-radius: 0; text-transform: uppercase;">ORDER NOW <span class="fa fa-long-arrow-right ms-2"/></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div><div class="carousel-item o_colored_level pt256 pb256 oe_img_bg o_bg_img_center o_bg_img_origin_border_box" style="background-image: url("/dine360_theme_chennora/static/src/img/chen-banner-2.webp");" data-name="Slide" data-mimetype="image/webp" data-original-id="1110" data-original-src="/web/image/1110-55a80a07/banner-2%20%281%29.webp" data-mimetype-before-conversion="image/webp" data-resize-width="1920">
|
|
||||||
<div class="oe_unremovable container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="carousel-content o_colored_level col-lg-6 o_animate o_anim_zoom_in o_animate_both_scroll" style="background-color: rgba(255, 0, 0, 0);">
|
|
||||||
<h2 class="display-3-fs"><font class="text-o-color-4">Slide Title</font></h2>
|
|
||||||
<p class="lead"><font class="text-o-color-4">Use this snippet to presents your content in a slideshow-like format. Don't write about products or services</font><font class="bg-o-color-4 text-o-color-4"></font><font class="text-o-color-4"> here, write about solutions.</font></p>
|
|
||||||
<h6>
|
|
||||||
<a href="/contactus" class="btn btn-custom text-o-color-5 flat" data-bs-original-title="" title="" style="border-width: 1px; border-style: solid; background-color: rgb(254, 205, 79);"><font class="text-o-color-5"><strong>Contact us</strong></font></a>
|
|
||||||
</h6>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div><div class="carousel-item o_colored_level pt256 pb256 oe_img_bg o_bg_img_center o_bg_img_origin_border_box" style="background-image: url("/dine360_theme_chennora/static/src/img/chen-banner-3.webp");" data-name="Slide" data-mimetype="image/webp" data-original-id="1137" data-original-src="/web/image/1137-113d553b/chen-banner-3.webp" data-mimetype-before-conversion="image/webp" data-resize-width="1920">
|
|
||||||
<div class="oe_unremovable container">
|
|
||||||
<div class="row">
|
|
||||||
<div class="carousel-content o_colored_level col-lg-6 o_animate o_anim_zoom_in o_animate_both_scroll" style="background-color: rgba(255, 0, 0, 0);">
|
|
||||||
<h2 class="display-3-fs"><font class="text-o-color-4">Slide Title</font></h2>
|
|
||||||
<p class="lead"><font class="text-o-color-4">Use this snippet to presents your content in a slideshow-like format. Don't write about products or services</font><font class="bg-o-color-4 text-o-color-4"></font><font class="text-o-color-4"> here, write about solutions.</font></p>
|
|
||||||
<h6>
|
|
||||||
<a href="/contactus" class="btn btn-custom text-o-color-5 flat" data-bs-original-title="" title="" style="border-width: 1px; border-style: solid; background-color: rgb(254, 205, 79); border-color: rgb(254, 205, 79);"><strong>Contact us</strong></a>
|
|
||||||
</h6>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Slide 2 -->
|
||||||
|
<div class="carousel-item o_colored_level pt256 pb256 oe_img_bg o_bg_img_center" style="background-color: #04121D; background-image: url('/dine360_theme_chennora/static/src/img/chen-banner-3.webp'); min-height: 85vh; background-size: cover; background-position: center;" data-name="Slide">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row align-items-center">
|
||||||
|
<div class="col-lg-6 o_colored_level o_animate o_anim_fade_in_up">
|
||||||
|
<h6 style="color: #FECD4F; font-weight: 700; letter-spacing: 2px;">AUTHENTIC TASTE</h6>
|
||||||
|
<h1 class="display-3-fs" style="color: white; font-weight: 800; font-size: 4rem; line-height: 1.1; margin-bottom: 25px;">Traditional South Indian Cuisine</h1>
|
||||||
|
<div class="mt-5">
|
||||||
|
<a href="/shop" class="btn btn-lg flat" style="background-color: #2BB1A5; color: white; font-weight: 700; padding: 12px 35px; border-radius: 0; text-transform: uppercase;">ORDER NOW <span class="fa fa-long-arrow-right ms-2"/></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Slide 3 -->
|
||||||
|
<div class="carousel-item o_colored_level pt256 pb256 oe_img_bg o_bg_img_center" style="background-color: #04121D; background-image: url('/dine360_theme_chennora/static/src/img/chen-banner-2.webp'); min-height: 85vh; background-size: cover; background-position: center;" data-name="Slide">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row align-items-center">
|
||||||
|
<div class="col-lg-6 o_colored_level o_animate o_anim_fade_in_up">
|
||||||
|
<h6 style="color: #2BB1A5; font-weight: 700; letter-spacing: 2px;">EXPERIENCE QUALITY</h6>
|
||||||
|
<h1 class="display-3-fs" style="color: white; font-weight: 800; font-size: 4rem; line-height: 1.1; margin-bottom: 25px;">Best Indian Food Experience</h1>
|
||||||
|
<div class="mt-5">
|
||||||
|
<a href="/shop" class="btn btn-lg flat" style="background-color: #FECD4F; color: black; font-weight: 700; padding: 12px 35px; border-radius: 0; text-transform: uppercase;">ORDER NOW <span class="fa fa-long-arrow-right ms-2"/></a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a class="carousel-control-prev o_not_editable o_we_no_overlay" role="img" aria-label="Previous" title="Previous" href="#myCarousel1769233718425" data-bs-slide="prev">
|
<a class="carousel-control-prev o_not_editable o_we_no_overlay" role="img" aria-label="Previous" title="Previous" href="#myCarouselChennora" data-bs-slide="prev">
|
||||||
<span class="carousel-control-prev-icon"/>
|
<span class="carousel-control-prev-icon"/>
|
||||||
<span class="visually-hidden o_default_snippet_text">Previous</span>
|
<span class="visually-hidden o_default_snippet_text">Previous</span>
|
||||||
</a>
|
</a>
|
||||||
<a class="carousel-control-next o_not_editable o_we_no_overlay" role="img" aria-label="Next" title="Next" href="#myCarousel1769233718425" data-bs-slide="next">
|
<a class="carousel-control-next o_not_editable o_we_no_overlay" role="img" aria-label="Next" title="Next" href="#myCarouselChennora" data-bs-slide="next">
|
||||||
<span class="carousel-control-next-icon"/>
|
<span class="carousel-control-next-icon"/>
|
||||||
<span class="visually-hidden o_default_snippet_text">Next</span>
|
<span class="visually-hidden o_default_snippet_text">Next</span>
|
||||||
</a>
|
</a>
|
||||||
@ -130,29 +135,45 @@ At Chennora, we blend traditional Indian cooking techniques with the freshest lo
|
|||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</section><section class="s_masonry_block o_colored_level pb48" data-vcss="001" data-vxml="001" data-snippet="s_masonry_block" data-name="Masonry" style="background-color: rgb(244, 241, 234); background-image: none;" data-masonry-template="default">
|
</section> <section class="s_features_grid o_colored_level pt32 pb64" data-snippet="s_features_grid" data-name="Feature Columns" style="background-color: rgb(244, 241, 234);">
|
||||||
<div class="container-fluid">
|
<div class="container">
|
||||||
<div class="row o_grid_mode" data-row-count="12">
|
<div class="row justify-content-center">
|
||||||
<div class="o_grid_item col-lg-6 g-col-lg-6 g-height-10 o_grid_item_image text-center o_colored_level o_animate o_anim_slide_in o_anim_from_left o_animate_both_scroll" data-name="Block" style="grid-area: 1 / 1 / 11 / 7; z-index: 1; background-image: none;">
|
<div class="col-lg-2 col-md-4 col-6 text-center mb-4 category-item">
|
||||||
<img src="/web/image/website.s_masonry_block_default_image_1" class="img img-fluid mx-auto" alt="" loading="eager" data-mimetype="image/jpeg" data-original-id="842" data-original-src="/website/static/src/img/snippets_demo/s_masonry_block_1.jpg" data-mimetype-before-conversion="image/jpeg"/>
|
<div class="bg-white rounded p-1 shadow-sm mb-3 category-img" style="border: 2px solid transparent;">
|
||||||
</div>
|
<img src="/web/image/1141-88fd5340/2.webp" class="img img-fluid rounded" style="width: 100%; aspect-ratio: 1/1; object-fit: cover;" alt="SOUPS"/>
|
||||||
<div class="o_grid_item col-lg-3 g-col-lg-3 g-height-5 text-center o_cc o_cc2 o_colored_level o_animate o_anim_slide_in o_anim_from_right o_animate_both_scroll" data-name="Block" style="grid-area: 1 / 7 / 6 / 10; z-index: 2; background-image: none;">
|
</div>
|
||||||
<h3><img src="/web/image/1127-129df970/today-special.webp" alt="" class="img img-fluid o_we_custom_image" data-mimetype="image/webp" data-original-id="1125" data-original-src="/web/image/1125-217f82a3/today-special.webp" data-mimetype-before-conversion="image/webp" data-resize-width="541" loading="eager"/></h3>
|
<h6 style="font-weight: 700;">SOUPS</h6>
|
||||||
<p class="o_default_snippet_text">And a great subtitle</p>
|
<small class="text-muted">15 Items</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="o_grid_item col-lg-3 g-col-lg-3 g-height-5 text-center o_cc o_cc3 o_colored_level o_animate o_anim_slide_in o_anim_from_right o_animate_both_scroll" data-name="Block" style="grid-area: 1 / 10 / 6 / 13; z-index: 3; background-image: none; animation-delay: 1s;">
|
<div class="col-lg-2 col-md-4 col-6 text-center mb-4 category-item">
|
||||||
<h3 class="o_default_snippet_text">A great title</h3>
|
<div class="bg-white rounded p-1 shadow-sm mb-3 category-img" style="border: 2px solid transparent;">
|
||||||
<p class="o_default_snippet_text">And a great subtitle</p>
|
<img src="/web/image/1143-62197fdb/3.webp" class="img img-fluid rounded" style="width: 100%; aspect-ratio: 1/1; object-fit: cover;" alt="APPETIZERS"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="o_grid_item col-lg-3 g-col-lg-3 g-height-5 text-center o_cc o_cc4 o_colored_level o_animate o_anim_slide_in o_anim_from_right o_animate_both_scroll" data-name="Block" style="grid-area: 6 / 7 / 11 / 10; z-index: 4; background-image: none;">
|
<h6 style="font-weight: 700;">APPETIZERS</h6>
|
||||||
<h3 class="o_default_snippet_text">A great title</h3>
|
<small class="text-muted">20 Items</small>
|
||||||
<p class="o_default_snippet_text">And a great subtitle</p>
|
</div>
|
||||||
</div>
|
<div class="col-lg-2 col-md-4 col-6 text-center mb-4 category-item">
|
||||||
<div class="o_grid_item col-lg-3 g-col-lg-3 g-height-5 text-center o_cc o_cc2 o_colored_level o_anim_fade_in o_animate o_animate_both_scroll" data-name="Block" style="grid-area: 6 / 10 / 11 / 13; z-index: 5; background-image: none; animation-delay: 1s;">
|
<div class="bg-white rounded p-1 shadow-sm mb-3 category-img" style="border: 2px solid transparent;">
|
||||||
<h3 class="o_default_snippet_text">A great title</h3>
|
<img src="/web/image/1145-5c5e2c76/4.webp" class="img img-fluid rounded" style="width: 100%; aspect-ratio: 1/1; object-fit: cover;" alt="CURRY"/>
|
||||||
<p>And a great subtitle</p>
|
</div>
|
||||||
</div>
|
<h6 style="font-weight: 700;">CURRY</h6>
|
||||||
<div class="o_grid_item col-lg-4 g-col-lg-4 g-height-2 o_colored_level o_animate o_anim_slide_in o_anim_from_left o_animate_both_scroll" style="z-index: 6; background-image: none; grid-area: 5 / 2 / 7 / 6;"><h3 style="text-align: center;">Write something...</h3><p style="text-align: center;">sfdsdfsfsdfsdfsfssdfsfsdfsfd</p></div><div class="o_grid_item col-lg-2 g-col-lg-2 g-height-1 o_colored_level" style="z-index: 7; background-image: none; grid-area: 12 / 6 / 13 / 8;"><a href="#" class="btn btn-custom text-o-color-5 flat" data-bs-original-title="" title="" style="border-width: 1px; border-style: solid; background-color: rgb(254, 205, 79); border-color: rgb(254, 205, 79);"><h6><strong>View More<br/></strong></h6></a></div><div class="o_grid_item g-height-2 o_colored_level g-col-lg-3 col-lg-3" style="z-index: 8; background-image: none; grid-area: 2 / 7 / 4 / 10;"><p style="text-align: center;">Write something...</p></div></div>
|
<small class="text-muted">25 Items</small>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-2 col-md-4 col-6 text-center mb-4 category-item">
|
||||||
|
<div class="bg-white rounded p-1 shadow-sm mb-3 category-img" style="border: 2px solid transparent;">
|
||||||
|
<img src="/web/image/1147-469da4f8/5.webp" class="img img-fluid rounded" style="width: 100%; aspect-ratio: 1/1; object-fit: cover;" alt="DESSERTS"/>
|
||||||
|
</div>
|
||||||
|
<h6 style="font-weight: 700;">DESSERTS</h6>
|
||||||
|
<small class="text-muted">10 Items</small>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-2 col-md-4 col-6 text-center mb-4 category-item">
|
||||||
|
<div class="bg-white rounded p-1 shadow-sm mb-3 category-img" style="border: 2px solid transparent;">
|
||||||
|
<img src="/web/image/1149-1e98fb01/6.webp" class="img img-fluid rounded" style="width: 100%; aspect-ratio: 1/1; object-fit: cover;" alt="DOSA"/>
|
||||||
|
</div>
|
||||||
|
<h6 style="font-weight: 700;">DOSA/PAROTHA</h6>
|
||||||
|
<small class="text-muted">18 Items</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section><section class="s_title o_colored_level pt64 pb0" data-vcss="001" data-snippet="s_title" data-name="Title" style="background-color: rgb(255, 255, 255); background-image: none;">
|
</section><section class="s_title o_colored_level pt64 pb0" data-vcss="001" data-snippet="s_title" data-name="Title" style="background-color: rgb(255, 255, 255); background-image: none;">
|
||||||
<div class="s_allow_columns container">
|
<div class="s_allow_columns container">
|
||||||
@ -163,16 +184,82 @@ At Chennora, we blend traditional Indian cooking techniques with the freshest lo
|
|||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</section><section data-snippet="s_dynamic_snippet_products" class="s_dynamic_snippet_products s_dynamic pt32 o_colored_level s_product_product_add_to_cart pb80 o_dynamic_empty" data-name="Products" style="background-color: rgb(255, 255, 255); background-image: none;" data-product-category-id="all" data-number-of-records="16" data-filter-id="1" data-template-key="website_sale.dynamic_filter_template_product_product_add_to_cart" data-carousel-interval="5000">
|
</section> <section class="s_popular_deals o_colored_level pt32 pb80" style="background-color: white;">
|
||||||
<div class="container o_not_editable">
|
<div class="container">
|
||||||
<div class="css_non_editable_mode_hidden">
|
<div class="row align-items-center">
|
||||||
<div class="missing_option_warning alert alert-info rounded-0 fade show d-none d-print-none o_default_snippet_text">
|
<!-- Left Column -->
|
||||||
Your Dynamic Snippet will be displayed here... This message is displayed because you did not provided both a filter and a template to use.<br/>
|
<div class="col-lg-4 mb-4">
|
||||||
|
<div class="d-flex align-items-center mb-4">
|
||||||
|
<img src="/web/image/1119-8a8e7ce7/chennora-card-1.webp" style="width: 70px; height: 70px; border-radius: 50%; object-fit: cover;" class="me-3 shadow-sm"/>
|
||||||
|
<div class="flex-grow-1 border-bottom border-dotted pb-2">
|
||||||
|
<div class="d-flex justify-content-between">
|
||||||
|
<h6 class="mb-0 fw-bold">Egg Biryani</h6>
|
||||||
|
<h6 class="mb-0" style="color: rgb(254, 205, 79);">$12.00</h6>
|
||||||
|
</div>
|
||||||
|
<small class="text-muted">Delicious egg biryani with spices</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="d-flex align-items-center mb-4">
|
||||||
|
<img src="/web/image/1121-9b05e3f1/chennora-card-2.webp" style="width: 70px; height: 70px; border-radius: 50%; object-fit: cover;" class="me-3 shadow-sm"/>
|
||||||
|
<div class="flex-grow-1 border-bottom border-dotted pb-2">
|
||||||
|
<div class="d-flex justify-content-between">
|
||||||
|
<h6 class="mb-0 fw-bold">Masala Dosa</h6>
|
||||||
|
<h6 class="mb-0" style="color: rgb(254, 205, 79);">$10.00</h6>
|
||||||
|
</div>
|
||||||
|
<small class="text-muted">Crispy dosa with potato filling</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="d-flex align-items-center mb-4">
|
||||||
|
<img src="/web/image/1120-614abfd2/chennora-card-3.webp" style="width: 70px; height: 70px; border-radius: 50%; object-fit: cover;" class="me-3 shadow-sm"/>
|
||||||
|
<div class="flex-grow-1 border-bottom border-dotted pb-2">
|
||||||
|
<div class="d-flex justify-content-between">
|
||||||
|
<h6 class="mb-0 fw-bold">Chicken Puffs</h6>
|
||||||
|
<h6 class="mb-0" style="color: rgb(254, 205, 79);">$5.00</h6>
|
||||||
|
</div>
|
||||||
|
<small class="text-muted">Flaky pastry with chicken</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- Center Image -->
|
||||||
|
<div class="col-lg-4 text-center mb-4">
|
||||||
|
<img src="/dine360_theme_chennora/static/src/img/chen-banner-2.webp" class="img img-fluid rounded-circle shadow-lg o_animate o_anim_zoom_in" style="max-height: 380px; border: 5px solid #fff;" alt="Main Deal"/>
|
||||||
|
</div>
|
||||||
|
<!-- Right Column -->
|
||||||
|
<div class="col-lg-4 mb-4">
|
||||||
|
<div class="d-flex align-items-center mb-4">
|
||||||
|
<img src="/web/image/1141-88fd5340/2.webp" style="width: 70px; height: 70px; border-radius: 50%; object-fit: cover;" class="me-3 shadow-sm"/>
|
||||||
|
<div class="flex-grow-1 border-bottom border-dotted pb-2">
|
||||||
|
<div class="d-flex justify-content-between">
|
||||||
|
<h6 class="mb-0 fw-bold">Paneer Thali</h6>
|
||||||
|
<h6 class="mb-0" style="color: rgb(254, 205, 79);">$15.00</h6>
|
||||||
|
</div>
|
||||||
|
<small class="text-muted">Complete veg meal with paneer</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="d-flex align-items-center mb-4">
|
||||||
|
<img src="/web/image/1143-62197fdb/3.webp" style="width: 70px; height: 70px; border-radius: 50%; object-fit: cover;" class="me-3 shadow-sm"/>
|
||||||
|
<div class="flex-grow-1 border-bottom border-dotted pb-2">
|
||||||
|
<div class="d-flex justify-content-between">
|
||||||
|
<h6 class="mb-0 fw-bold">Mutton Curry</h6>
|
||||||
|
<h6 class="mb-0" style="color: rgb(254, 205, 79);">$18.00</h6>
|
||||||
|
</div>
|
||||||
|
<small class="text-muted">Rich mutton gravy with spices</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="d-flex align-items-center mb-4">
|
||||||
|
<img src="/web/image/1145-5c5e2c76/4.webp" style="width: 70px; height: 70px; border-radius: 50%; object-fit: cover;" class="me-3 shadow-sm"/>
|
||||||
|
<div class="flex-grow-1 border-bottom border-dotted pb-2">
|
||||||
|
<div class="d-flex justify-content-between">
|
||||||
|
<h6 class="mb-0 fw-bold">Sweet Corn Soup</h6>
|
||||||
|
<h6 class="mb-0" style="color: rgb(254, 205, 79);">$6.00</h6>
|
||||||
|
</div>
|
||||||
|
<small class="text-muted">Creamy soup with sweet corn</small>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="dynamic_snippet_template"/>
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section class="s_quotes_carousel_wrapper o_colored_level oe_img_bg o_bg_img_center o_bg_img_origin_border_box" data-vxml="001" data-vcss="001" data-snippet="s_quotes_carousel" data-name="Quotes" style="background-image: url("/web/image/1162-ff0e896d/1-card.webp");" data-mimetype="image/webp" data-original-id="1155" data-original-src="/web/image/1155-9fc4b127/1-card.webp" data-mimetype-before-conversion="image/webp" data-resize-width="412">
|
<section class="s_quotes_carousel_wrapper o_colored_level oe_img_bg o_bg_img_center o_bg_img_origin_border_box" data-vxml="001" data-vcss="001" data-snippet="s_quotes_carousel" data-name="Quotes" style="background-image: url("/web/image/1162-ff0e896d/1-card.webp");" data-mimetype="image/webp" data-original-id="1155" data-original-src="/web/image/1155-9fc4b127/1-card.webp" data-mimetype-before-conversion="image/webp" data-resize-width="412">
|
||||||
<div class="s_quotes_carousel s_carousel_default carousel slide o_cc o_cc2" data-bs-interval="10000" id="myCarousel1769251166498" style="background-image: none; position: relative;">
|
<div class="s_quotes_carousel s_carousel_default carousel slide o_cc o_cc2" data-bs-interval="10000" id="myCarousel1769251166498" style="background-image: none; position: relative;">
|
||||||
|
|||||||
@ -2,39 +2,39 @@ version: "3.8"
|
|||||||
services:
|
services:
|
||||||
db:
|
db:
|
||||||
image: postgres:15
|
image: postgres:15
|
||||||
container_name: odoo_client1_db
|
container_name: odoo_client2_db
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_DB: postgres
|
POSTGRES_DB: postgres
|
||||||
POSTGRES_USER: odoo
|
POSTGRES_USER: odoo
|
||||||
POSTGRES_PASSWORD: odoo
|
POSTGRES_PASSWORD: odoo
|
||||||
volumes:
|
volumes:
|
||||||
- client1_pgdata:/var/lib/postgresql/data
|
- client2_pgdata:/var/lib/postgresql/data
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
odoo:
|
odoo:
|
||||||
image: odoo:17.0
|
image: odoo:17.0
|
||||||
container_name: odoo_client1
|
container_name: odoo_client2
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
ports:
|
ports:
|
||||||
- "10001:8069"
|
- "10002:8069"
|
||||||
environment:
|
environment:
|
||||||
HOST: db
|
HOST: db
|
||||||
USER: odoo
|
USER: odoo
|
||||||
PASSWORD: odoo
|
PASSWORD: odoo
|
||||||
LIST_DB: "True"
|
LIST_DB: "True"
|
||||||
volumes:
|
volumes:
|
||||||
- client1_odoo_data:/var/lib/odoo
|
- client2_odoo_data:/var/lib/odoo
|
||||||
- ./addons:/mnt/extra-addons
|
- ./addons:/mnt/extra-addons
|
||||||
restart: always
|
restart: always
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
client1_pgdata:
|
client2_pgdata:
|
||||||
client1_odoo_data:
|
client2_odoo_data:
|
||||||
|
|
||||||
|
|
||||||
# backups:
|
# backups:
|
||||||
# .\backup_db.ps1
|
# .\backup_db.ps1
|
||||||
|
|
||||||
# Team Members – Restore
|
# Team Members – Restore
|
||||||
# cat d:\Odoo\backups\YOUR_BACKUP_FILE.sql | docker exec -i odoo_client1_db psql -U odoo -d postgres
|
# cat d:\Odoo\backups\YOUR_BACKUP_FILE.sql | docker exec -i odoo_client2_db psql -U odoo -d postgres
|
||||||
|
|||||||
1
odoo-testing-addons
Submodule
1
odoo-testing-addons
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit b28e05b057fcebf0ef50e496ddc588e709325dd6
|
||||||
Loading…
x
Reference in New Issue
Block a user