From 75a8934d43001b9bc77f4cf71bb79301397dbcb7 Mon Sep 17 00:00:00 2001 From: Florian da Costa Date: Thu, 20 May 2021 17:05:28 +0200 Subject: [PATCH] Update roadmap for v15 and make some usability improvements Improve usability about variable creation and choice by hiding base wizard base fields and display simplified view Add a description on paramter fields to help the user to use parameters If not parameter are used for the query, display the wizard with the generated file directly --- sql_export/models/sql_export.py | 39 +++++++++++++++++++++------- sql_export/readme/ROADMAP.rst | 2 +- sql_export/views/sql_export_view.xml | 33 ++++++++++++++++++----- sql_export/wizard/wizard_file.py | 6 ++--- 4 files changed, 59 insertions(+), 21 deletions(-) diff --git a/sql_export/models/sql_export.py b/sql_export/models/sql_export.py index 5b5436712..f90d254e3 100644 --- a/sql_export/models/sql_export.py +++ b/sql_export/models/sql_export.py @@ -27,7 +27,22 @@ class SqlExport(models.Model): "sql_id", "field_id", "Parameters", - domain=[("model", "=", "sql.file.wizard")], + domain=[("model", "=", "sql.file.wizard"), ("state", "=", "manual")], + help="Before adding parameters, make sure you have created one that fill your " + "need in the dedicated menu with the right type and label. \n" + "Then, when you add a parameter here, you have to include it in the SQL " + "query in order to have dynamic values depending on the user choice.\n" + "The format of the parameters in the SQL query must be like this :" + " %(parameter_field_name)s. \n" + "Example : from the variable menu, create an variable with type 'char', " + "having field name 'x_name' and field label : 'Name' \n" + "Then, you can create a SQL query like this : " + "SELECT * FROM res_partner WHERE name = %(x_name)s the variable " + "can be used in any number of different SQL queries. \n" + "In the SQL query, you can also include these 2 special parameters " + "%(user_id)s and %(company_id)s which will be replaced respectively by " + "the user executing the query and the company of the user executing the" + " query.", ) encoding = fields.Selection( @@ -51,15 +66,19 @@ class SqlExport(models.Model): def export_sql_query(self): self.ensure_one() wiz = self.env["sql.file.wizard"].create({"sql_export_id": self.id}) - return { - "view_mode": "form", - "res_model": "sql.file.wizard", - "res_id": wiz.id, - "type": "ir.actions.act_window", - "target": "new", - "context": self.env.context, - "nodestroy": True, - } + # no variable input, we can return the file directly + if not self.field_ids: + return wiz.export_sql() + else: + return { + "view_mode": "form", + "res_model": "sql.file.wizard", + "res_id": wiz.id, + "type": "ir.actions.act_window", + "target": "new", + "context": self.env.context, + "nodestroy": True, + } def _get_file_extension(self): self.ensure_one() diff --git a/sql_export/readme/ROADMAP.rst b/sql_export/readme/ROADMAP.rst index ee2079f80..21c6fa6aa 100644 --- a/sql_export/readme/ROADMAP.rst +++ b/sql_export/readme/ROADMAP.rst @@ -15,4 +15,4 @@ See sql_request_abstract module to fix this issue. since variables features has been introduced. This can be fixed by overloading _prepare_request_check_execution() function. -* Move modules sql_request_abstract and sql_export to oca/reporting-engine +* Move modules sql_request_abstract and sql_export to oca/reporting-engine for version 15 diff --git a/sql_export/views/sql_export_view.xml b/sql_export/views/sql_export_view.xml index 3a89dbe81..1f2a7375a 100644 --- a/sql_export/views/sql_export_view.xml +++ b/sql_export/views/sql_export_view.xml @@ -12,6 +12,7 @@ states="draft" string="Validate SQL Expression" class="oe_highlight" + groups="sql_request_abstract.group_sql_request_manager" />