From 17f50027d8cf13473326a0dd0a4d6b4fda080dd5 Mon Sep 17 00:00:00 2001 From: Tony Gu Date: Tue, 23 Nov 2021 13:49:26 +0800 Subject: [PATCH] [IMP]Showing related pattern for import wizard --- pattern_import_export/readme/CONTRIBUTORS.rst | 1 + .../wizard/import_pattern_wizard.py | 19 ++++++++++- .../wizard/import_pattern_wizard.xml | 33 +++++++++++++------ 3 files changed, 42 insertions(+), 11 deletions(-) diff --git a/pattern_import_export/readme/CONTRIBUTORS.rst b/pattern_import_export/readme/CONTRIBUTORS.rst index bd541f8a..afaac0c5 100644 --- a/pattern_import_export/readme/CONTRIBUTORS.rst +++ b/pattern_import_export/readme/CONTRIBUTORS.rst @@ -2,3 +2,4 @@ * Sébastien Beau * François Honoré (ACSONE SA/NV) * Kevin Khao +* Tony Gu diff --git a/pattern_import_export/wizard/import_pattern_wizard.py b/pattern_import_export/wizard/import_pattern_wizard.py index fbe5449e..40355ca3 100644 --- a/pattern_import_export/wizard/import_pattern_wizard.py +++ b/pattern_import_export/wizard/import_pattern_wizard.py @@ -1,7 +1,7 @@ # Copyright 2020 ACSONE SA/NV () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from odoo import fields, models +from odoo import fields, models, api class ImportPatternWizard(models.TransientModel): @@ -14,6 +14,15 @@ class ImportPatternWizard(models.TransientModel): _name = "import.pattern.wizard" _description = "Import pattern wizard" + def _get_model(self): + model_name = self.env.context.get('active_model') + active_id = self.env.context.get('active_id') + if model_name == "pattern.config": + pattern_config = self.env[model_name].browse(active_id) + model_name = pattern_config.resource + return model_name + + pattern_config_id = fields.Many2one( comodel_name="pattern.config", string="Import pattern", @@ -23,7 +32,15 @@ class ImportPatternWizard(models.TransientModel): ) import_file = fields.Binary(string="File to import", required=True) filename = fields.Char() + model = fields.Char(default=_get_model) + no_import_pattern = fields.Boolean(compute="_compute_no_import_pattern") + @api.depends("model") + def _compute_no_import_pattern(self): + for wiz in self: + wiz.no_import_pattern = not wiz.env["pattern.config"].search_count( + [("resource", "=", wiz.model)] + ) def action_launch_import(self): """ diff --git a/pattern_import_export/wizard/import_pattern_wizard.xml b/pattern_import_export/wizard/import_pattern_wizard.xml index 676fa99f..ac278efe 100644 --- a/pattern_import_export/wizard/import_pattern_wizard.xml +++ b/pattern_import_export/wizard/import_pattern_wizard.xml @@ -9,19 +9,32 @@
+ + - - + + There is no import pattern for this object !
+ Please go to the menu .... and create one. +
+ + -
- + +