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') +