diff --git a/app_odoo_customize/__manifest__.py b/app_odoo_customize/__manifest__.py
index 142ae8ff..b6110bef 100644
--- a/app_odoo_customize/__manifest__.py
+++ b/app_odoo_customize/__manifest__.py
@@ -73,6 +73,7 @@
'app_odoo_customize/static/src/js/user_menu.js',
'app_odoo_customize/static/src/js/ribbon.js',
'app_odoo_customize/static/src/js/dialog.js',
+ 'app_odoo_customize/static/src/js/base_import_list_renderer.js',
'app_odoo_customize/static/src/webclient/*.js',
'app_odoo_customize/static/src/webclient/user_menu.xml',
'app_odoo_customize/static/src/xml/res_config_edition.xml',
diff --git a/app_odoo_customize/models/ir_module_module.py b/app_odoo_customize/models/ir_module_module.py
index 947ec4df..a41ba3e0 100644
--- a/app_odoo_customize/models/ir_module_module.py
+++ b/app_odoo_customize/models/ir_module_module.py
@@ -96,3 +96,10 @@ class IrModuleModule(models.Model):
if author in ['odooai.cn', 'sunpop.cn', 'odooapp.cn']:
self.module_type = 'odooapp.cn'
return res
+
+ def web_read(self, specification):
+ fields = list(specification.keys())
+ module_type = self.env.context.get('module_type', 'official')
+ if module_type == 'odooapp.cn':
+ self.env.context = {**self.env.context, "module_type": 'official'}
+ return super().web_read(specification)
diff --git a/app_odoo_customize/static/src/js/base_import_list_renderer.js b/app_odoo_customize/static/src/js/base_import_list_renderer.js
new file mode 100644
index 00000000..741999bd
--- /dev/null
+++ b/app_odoo_customize/static/src/js/base_import_list_renderer.js
@@ -0,0 +1,26 @@
+/** @odoo-module */
+
+import { patch } from "@web/core/utils/patch";
+import { ImportModuleListRenderer } from "@base_import_module/base_import_list_renderer";
+
+patch(ImportModuleListRenderer.prototype, {
+ async onCellClicked(record, column, ev) {
+ if (record._values.module_type && record._values.module_type === 'odooapp.cn') {
+ const re_action = {
+ name: "more_info",
+ res_model: "ir.module.module",
+ res_id: record.resId,
+ type: "ir.actions.act_window",
+ views: [[false, "form"]],
+ context: {
+ 'module_name': record._values.name,
+ 'module_type': record._values.module_type,
+ }
+ }
+ this.env.services.action.doAction(re_action);
+ }
+ else{
+ super.onCellClicked(record, column, ev);
+ }
+ }
+})
diff --git a/app_odoo_customize/views/ir_module_module_views.xml b/app_odoo_customize/views/ir_module_module_views.xml
index 6348db3f..265acc85 100644
--- a/app_odoo_customize/views/ir_module_module_views.xml
+++ b/app_odoo_customize/views/ir_module_module_views.xml
@@ -54,6 +54,18 @@
+
+ to_buy or state != 'uninstalled' or (module_type and module_type not in ('official', 'odooapp.cn'))
+
+
+ state == 'uninstalled' or (module_type and module_type not in ('official', 'odooapp.cn'))
+
+
+ state != 'uninstalled' or module_type in ('official', 'odooapp.cn')
+
+
+ state == 'uninstalled' or module_type in ('official', 'odooapp.cn')
+
@@ -70,6 +82,15 @@
+
+ state != 'uninstalled' or (module_type and module_type not in ('official', 'odooapp.cn'))
+
+
+ state != 'uninstalled' or module_type in ('official', 'odooapp.cn')
+
+
+ state == 'uninstalled' or module_type in ('official', 'odooapp.cn')
+