From c067c819fa77d8e9fce8a9dbd9ab28e2b761801b Mon Sep 17 00:00:00 2001 From: Chill Date: Wed, 6 Nov 2024 14:07:23 +0800 Subject: [PATCH] =?UTF-8?q?fix=20#IB181K=20app=5Fodoo=5Fcustomize=E5=AF=B9?= =?UTF-8?q?18=E7=89=88=E6=9C=AC=E5=A2=9E=E5=8A=A0=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=EF=BC=8COdoo=E4=B8=AD=E6=96=87=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E3=80=82=E4=BA=86=E8=A7=A3=E4=B8=8B=E6=88=91=E4=BB=AC?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E4=BC=98=E5=85=88=E5=8D=87=E7=BA=A7=E7=9A=84?= =?UTF-8?q?=E6=A8=A1=E5=9D=9718?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app_odoo_customize/__manifest__.py | 1 + app_odoo_customize/models/ir_module_module.py | 7 +++++ .../src/js/base_import_list_renderer.js | 26 +++++++++++++++++++ .../views/ir_module_module_views.xml | 21 +++++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 app_odoo_customize/static/src/js/base_import_list_renderer.js 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') +