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 2ed5107..c741d76 100644 Binary files a/addons/Dine360_Chennora/__pycache__/__init__.cpython-310.pyc and b/addons/Dine360_Chennora/__pycache__/__init__.cpython-310.pyc differ 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()