From 5d4614a83373875a4fc160b80e9c765e8dee1628 Mon Sep 17 00:00:00 2001 From: Alaguraj0361 Date: Sat, 14 Feb 2026 11:44:32 +0530 Subject: [PATCH] Introduce Dine360 Restaurant Suite meta-module to group core modules and provide synchronized uninstallation. --- addons/Dine360_Chennora/__init__.py | 1 + addons/Dine360_Chennora/__manifest__.py | 3 ++ .../__pycache__/__init__.cpython-310.pyc | Bin 139 -> 183 bytes addons/Dine360_Chennora/hooks.py | 26 ++++++++++++++++++ 4 files changed, 30 insertions(+) create mode 100644 addons/Dine360_Chennora/hooks.py diff --git a/addons/Dine360_Chennora/__init__.py b/addons/Dine360_Chennora/__init__.py index 5a3e648..0bc76d3 100644 --- a/addons/Dine360_Chennora/__init__.py +++ b/addons/Dine360_Chennora/__init__.py @@ -1 +1,2 @@ # Meta module for Dine360 Chennora +from .hooks import uninstall_hook diff --git a/addons/Dine360_Chennora/__manifest__.py b/addons/Dine360_Chennora/__manifest__.py index 4cb1f94..e3a6659 100644 --- a/addons/Dine360_Chennora/__manifest__.py +++ b/addons/Dine360_Chennora/__manifest__.py @@ -9,7 +9,10 @@ 'dine360_dashboard', 'dine360_restaurant', 'dine360_theme_chennora', + 'dine360_kds', + 'dine360_reservation', ], + 'uninstall_hook': 'uninstall_hook', 'data': [ 'views/apps_kanban_menu.xml', ], diff --git a/addons/Dine360_Chennora/__pycache__/__init__.cpython-310.pyc b/addons/Dine360_Chennora/__pycache__/__init__.cpython-310.pyc index 2ed51077dfd59a68d34f616fec9b6f5321eaf7d1..c741d76416df7f3359cbd90819d8e2630f81bccb 100644 GIT binary patch delta 138 zcmeBX+|F2^&&$ij00h%__hq^R>Bk@rGGGF79Dul307#@Tq%h_%bkN2OutH0TL+;!3>&=ek&P@K*CUBV!j&_ G3j+X=I0?=G diff --git a/addons/Dine360_Chennora/hooks.py b/addons/Dine360_Chennora/hooks.py new file mode 100644 index 0000000..28311b4 --- /dev/null +++ b/addons/Dine360_Chennora/hooks.py @@ -0,0 +1,26 @@ +from odoo import api, SUPERUSER_ID + +def uninstall_hook(cr, registry): + """ + Synchronized uninstallation: When Dine360 Restaurant Suite is uninstalled, + automatically trigger uninstallation for all its core sub-modules. + """ + env = api.Environment(cr, SUPERUSER_ID, {}) + modules_to_uninstall = [ + 'dine360_dashboard', + 'dine360_restaurant', + 'dine360_theme_chennora', + 'dine360_kds', + 'dine360_reservation' + ] + + # Search for these modules if they are installed + modules = env['ir.module.module'].search([ + ('name', 'in', modules_to_uninstall), + ('state', '=', 'installed') + ]) + + if modules: + # Mark modules for uninstallation + # button_immediate_uninstall will trigger the full process including registry reload + modules.button_immediate_uninstall()