Add Dine360 Chennora theme, implement self-order menu with delivery options, and update Docker compose configurations.

This commit is contained in:
Alaguraj0361 2026-03-26 16:26:08 +05:30
parent 471b09861c
commit a93ef83f92
7 changed files with 52 additions and 9 deletions

View File

@ -88,11 +88,11 @@
<div t-if="not table" class="p-4 bg-light border-top">
<h6 class="fw-bold mb-3">Service Type</h6>
<div class="d-flex gap-2">
<label class="flex-fill border p-3 rounded-3 text-center cursor-pointer service-select active" data-mode="pickup">
<label t-attf-class="flex-fill border p-3 rounded-3 text-center cursor-pointer service-select active {{'w-100' if not website.enable_delivery_option else ''}}" data-mode="pickup">
<input type="radio" name="fulfilment" value="pickup" checked="checked" class="d-none"/>
<i class="fa fa-shopping-basket mb-2 d-block"/> Pickup
</label>
<label class="flex-fill border p-3 rounded-3 text-center cursor-pointer service-select" data-mode="delivery">
<label class="flex-fill border p-3 rounded-3 text-center cursor-pointer service-select" data-mode="delivery" t-if="website.enable_delivery_option">
<input type="radio" name="fulfilment" value="delivery" class="d-none"/>
<i class="fa fa-truck mb-2 d-block"/> Delivery
</label>

View File

@ -19,6 +19,7 @@
'views/product_views.xml', # Product Form custom fields
'views/snippets.xml', # Custom Building Blocks
'views/options.xml', # Options for snippets (if any)
'views/res_config_settings_views.xml', # Backend Settings
'data/website_data.xml', # Data for creating pages
],
'assets': {

View File

@ -1,3 +1,5 @@
# -*- coding: utf-8 -*-
from . import product_template
from . import blog_post
from . import website
from . import res_config_settings

View File

@ -0,0 +1,11 @@
# -*- coding: utf-8 -*-
from odoo import models, fields
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
enable_delivery_option = fields.Boolean(
related='website_id.enable_delivery_option',
readonly=False,
string='Enable Delivery Option'
)

View File

@ -0,0 +1,11 @@
# -*- coding: utf-8 -*-
from odoo import models, fields
class Website(models.Model):
_inherit = 'website'
enable_delivery_option = fields.Boolean(
string='Enable Delivery Option',
default=True,
help='If disabled, customers will not see the Delivery option on the checkout page.'
)

View File

@ -95,8 +95,8 @@
}
</style>
<div class="row align-items-center justify-content-center">
<div class="col-md-6 mb-3 mb-md-0">
<input type="radio" name="delivery_method_switch" id="method_delivery" class="d-none order-type-input" value="delivery" checked="checked"/>
<div class="col-md-6 mb-3 mb-md-0" t-if="website.enable_delivery_option">
<input type="radio" name="delivery_method_switch" id="method_delivery" class="d-none order-type-input" value="delivery" t-att-checked="'checked' if website.enable_delivery_option else False"/>
<label for="method_delivery" class="order-type-card w-100 m-0">
<div class="order-type-icon">
<i class="fa fa-truck"></i>
@ -107,8 +107,8 @@
</div>
</label>
</div>
<div class="col-md-6">
<input type="radio" name="delivery_method_switch" id="method_pickup" class="d-none order-type-input" value="pickup"/>
<div t-attf-class="{{'col-md-6' if website.enable_delivery_option else 'col-md-12'}}">
<input type="radio" name="delivery_method_switch" id="method_pickup" class="d-none order-type-input" value="pickup" t-att-checked="'checked' if not website.enable_delivery_option else False"/>
<label for="method_pickup" class="order-type-card w-100 m-0">
<div class="order-type-icon">
<i class="fa fa-shopping-bag"></i>
@ -192,21 +192,24 @@
}
}
if (typeDelivery &amp;&amp; typePickup) {
typeDelivery.addEventListener('change', applyMethod);
if (typePickup) {
if (typeDelivery) typeDelivery.addEventListener('change', applyMethod);
typePickup.addEventListener('change', applyMethod);
// Remember state if validation fails
const savedMethod = sessionStorage.getItem('chennora_checkout_method');
if (savedMethod === 'pickup') {
typePickup.checked = true;
} else if (!typeDelivery) {
// Force pickup if delivery is disabled by admin
typePickup.checked = true;
}
// Initial run
applyMethod();
typePickup.addEventListener('change', () => sessionStorage.setItem('chennora_checkout_method', 'pickup'));
typeDelivery.addEventListener('change', () => sessionStorage.setItem('chennora_checkout_method', 'delivery'));
if (typeDelivery) typeDelivery.addEventListener('change', () => sessionStorage.setItem('chennora_checkout_method', 'delivery'));
}
});
</script>

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="res_config_settings_view_form_inherit_chennora" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.chennora</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="website.res_config_settings_view_form"/>
<field name="arch" type="xml">
<xpath expr="//block[@id='website_info_settings']" position="inside">
<setting string="Delivery Option" help="Enable/Disable Delivery option during checkout">
<field name="enable_delivery_option"/>
</setting>
</xpath>
</field>
</record>
</odoo>