forked from alaguraj/odoo-testing-addons
Add Dine360 Chennora theme, implement self-order menu with delivery options, and update Docker compose configurations.
This commit is contained in:
parent
471b09861c
commit
a93ef83f92
@ -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>
|
||||
|
||||
@ -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': {
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from . import product_template
|
||||
from . import blog_post
|
||||
from . import website
|
||||
from . import res_config_settings
|
||||
|
||||
11
addons/dine360_theme_chennora/models/res_config_settings.py
Normal file
11
addons/dine360_theme_chennora/models/res_config_settings.py
Normal 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'
|
||||
)
|
||||
11
addons/dine360_theme_chennora/models/website.py
Normal file
11
addons/dine360_theme_chennora/models/website.py
Normal 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.'
|
||||
)
|
||||
@ -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 && 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>
|
||||
|
||||
@ -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>
|
||||
Loading…
x
Reference in New Issue
Block a user