mirror of
https://github.com/OCA/reporting-engine.git
synced 2025-02-16 16:30:38 +02:00
[MIG] sql_export from V15.0
- split view in two files, according OCA guidelines; - add legalsylvain as maintainers - use abstract tree and form views - refactor : split demo data into two files, according OCA guidelines - replace obsolete base.menu_reporting_dashboard by spreadsheet_dashboard entries - update translation - prevent usage of export with parameters, that requires extra work - do not skip 'check execution' when confirming sql exports
This commit is contained in:
committed by
David Beal
parent
59851ba2fc
commit
3ee5abc137
@@ -4,22 +4,26 @@
|
||||
|
||||
{
|
||||
"name": "SQL Export",
|
||||
"version": "15.0.1.0.0",
|
||||
"author": "Akretion,Odoo Community Association (OCA)",
|
||||
"version": "16.0.1.0.0",
|
||||
"author": "Akretion,GRAP,Odoo Community Association (OCA)",
|
||||
"maintainers": ["legalsylvain"],
|
||||
"website": "https://github.com/OCA/reporting-engine",
|
||||
"license": "AGPL-3",
|
||||
"category": "Generic Modules/Others",
|
||||
"summary": "Export data in csv file with SQL requests",
|
||||
"depends": [
|
||||
"spreadsheet_dashboard",
|
||||
"sql_request_abstract",
|
||||
],
|
||||
"data": [
|
||||
"views/sql_export_view.xml",
|
||||
"views/ir_model_fields_view.xml",
|
||||
"wizard/wizard_file_view.xml",
|
||||
"security/sql_export_security.xml",
|
||||
"security/ir.model.access.csv",
|
||||
],
|
||||
"demo": [
|
||||
"demo/ir_model_fields.xml",
|
||||
"demo/sql_export.xml",
|
||||
],
|
||||
"installable": True,
|
||||
|
||||
37
sql_export/demo/ir_model_fields.xml
Normal file
37
sql_export/demo/ir_model_fields.xml
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
Copyright (C) 2017 - Today: GRAP (http://www.grap.coop)
|
||||
@author Sylvain LE GAL (https://twitter.com/legalsylvain)
|
||||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
-->
|
||||
<odoo>
|
||||
|
||||
<record id="date_field_variable_sql" model="ir.model.fields">
|
||||
<field name="name">x_date</field>
|
||||
<field name="field_description">Date</field>
|
||||
<field name="ttype">date</field>
|
||||
<field name="model_id" ref="sql_export.model_sql_file_wizard" />
|
||||
<field name="model">sql.file.wizard</field>
|
||||
<field name="state">manual</field>
|
||||
</record>
|
||||
|
||||
<record id="integer_field_variable_sql" model="ir.model.fields">
|
||||
<field name="name">x_id</field>
|
||||
<field name="field_description">x_ID</field>
|
||||
<field name="ttype">integer</field>
|
||||
<field name="model_id" ref="sql_export.model_sql_file_wizard" />
|
||||
<field name="model">sql.file.wizard</field>
|
||||
<field name="state">manual</field>
|
||||
</record>
|
||||
|
||||
<record id="m2m_field_variable_sql" model="ir.model.fields">
|
||||
<field name="name">x_partner_categ_ids</field>
|
||||
<field name="field_description">Partner Categories</field>
|
||||
<field name="ttype">many2many</field>
|
||||
<field name="model_id" ref="sql_export.model_sql_file_wizard" />
|
||||
<field name="model">sql.file.wizard</field>
|
||||
<field name="state">manual</field>
|
||||
<field name="relation">res.partner.category</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
@@ -6,37 +6,13 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
-->
|
||||
<odoo>
|
||||
|
||||
<record id="date_field_variable_sql" model="ir.model.fields">
|
||||
<field name="name">x_date</field>
|
||||
<field name="field_description">Date</field>
|
||||
<field name="ttype">date</field>
|
||||
<field name="model_id" ref="sql_export.model_sql_file_wizard" />
|
||||
<field name="model">sql.file.wizard</field>
|
||||
<field name="state">manual</field>
|
||||
</record>
|
||||
|
||||
<record id="integer_field_variable_sql" model="ir.model.fields">
|
||||
<field name="name">x_id</field>
|
||||
<field name="field_description">x_ID</field>
|
||||
<field name="ttype">integer</field>
|
||||
<field name="model_id" ref="sql_export.model_sql_file_wizard" />
|
||||
<field name="model">sql.file.wizard</field>
|
||||
<field name="state">manual</field>
|
||||
</record>
|
||||
|
||||
<record id="m2m_field_variable_sql" model="ir.model.fields">
|
||||
<field name="name">x_partner_categ_ids</field>
|
||||
<field name="field_description">Partner Categories</field>
|
||||
<field name="ttype">many2many</field>
|
||||
<field name="model_id" ref="sql_export.model_sql_file_wizard" />
|
||||
<field name="model">sql.file.wizard</field>
|
||||
<field name="state">manual</field>
|
||||
<field name="relation">res.partner.category</field>
|
||||
</record>
|
||||
|
||||
<record id="sql_export_partner" model="sql.export">
|
||||
<field name="name">Export Partners (Demo Data)</field>
|
||||
<field name="query">SELECT name, street FROM res_partner;</field>
|
||||
<field name="query"><![CDATA[
|
||||
SELECT name, street
|
||||
FROM res_partner;
|
||||
]]>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<function
|
||||
@@ -47,19 +23,22 @@ License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
<record id="sql_export_partner_with_variables" model="sql.export">
|
||||
<field name="name">Export Partners With Variables (Demo Data)</field>
|
||||
<field
|
||||
<field
|
||||
name="query"
|
||||
>SELECT p.id FROM res_partner p LEFT JOIN res_partner_res_partner_category_rel rel ON rel.partner_id = p.id WHERE create_date < %(x_date)s AND id = %(x_id)s AND rel.category_id in %(x_partner_categ_ids)s</field>
|
||||
<field
|
||||
><![CDATA[
|
||||
SELECT p.id
|
||||
FROM res_partner p
|
||||
LEFT JOIN res_partner_res_partner_category_rel rel
|
||||
ON rel.partner_id = p.id
|
||||
WHERE create_date < %(x_date)s
|
||||
AND id = %(x_id)s
|
||||
AND rel.category_id in %(x_partner_categ_ids)s
|
||||
]]>
|
||||
</field>
|
||||
<field
|
||||
eval="[(6, 0, [ref('date_field_variable_sql'), ref('integer_field_variable_sql'), ref('m2m_field_variable_sql')])]"
|
||||
name="field_ids"
|
||||
/>
|
||||
</record>
|
||||
|
||||
<function
|
||||
model="sql.export"
|
||||
name="button_validate_sql_expression"
|
||||
eval="([ref('sql_export.sql_export_partner_with_variables')])"
|
||||
/>
|
||||
|
||||
</odoo>
|
||||
|
||||
@@ -1,59 +1,46 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sql_export
|
||||
# * sql_export
|
||||
#
|
||||
# Translators:
|
||||
# OCA Transbot <transbot@odoo-community.org>, 2017
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 9.0c\n"
|
||||
"Project-Id-Version: Odoo Server 16.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2017-08-17 22:05+0000\n"
|
||||
"PO-Revision-Date: 2017-08-17 22:05+0000\n"
|
||||
"Last-Translator: OCA Transbot <transbot@odoo-community.org>, 2017\n"
|
||||
"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n"
|
||||
"Language: fr\n"
|
||||
"POT-Creation-Date: 2022-10-26 11:42+0000\n"
|
||||
"PO-Revision-Date: 2022-10-26 11:42+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model,name:sql_export.model_sql_file_wizard
|
||||
msgid "Allow the user to save the file with sql request's data"
|
||||
msgstr ""
|
||||
"Permet à l'utilisateur de sauvegarder le fichier contenant les données de la "
|
||||
"requête SQL"
|
||||
"Permet à l'utilisateur de sauvegarder le fichier contenant les données de la"
|
||||
" requête SQL"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__group_ids
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
msgid "Allowed Groups"
|
||||
msgstr "Groupes Autorisés"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__user_ids
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
msgid "Allowed Users"
|
||||
msgstr "Utilisateurs Autorisés"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,help:sql_export.field_sql_export__field_ids
|
||||
msgid ""
|
||||
"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."
|
||||
"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."
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
@@ -66,35 +53,11 @@ msgstr ""
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__changeset_change_ids
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_file_wizard__changeset_change_ids
|
||||
msgid "Changeset Changes"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__changeset_ids
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_file_wizard__changeset_ids
|
||||
msgid "Changesets"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__copy_options
|
||||
msgid "Copy Options"
|
||||
msgstr "Options de copie"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__count_pending_changeset_changes
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_file_wizard__count_pending_changeset_changes
|
||||
msgid "Count Pending Changeset Changes"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__count_pending_changesets
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_file_wizard__count_pending_changesets
|
||||
msgid "Count Pending Changesets"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__create_uid
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_file_wizard__create_uid
|
||||
@@ -126,7 +89,7 @@ msgstr "Nom affiché"
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__encoding
|
||||
msgid "Encoding"
|
||||
msgstr ""
|
||||
msgstr "Encodage"
|
||||
|
||||
#. module: sql_export
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
@@ -152,18 +115,23 @@ msgstr "Fichier"
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__file_format
|
||||
msgid "File Format"
|
||||
msgstr ""
|
||||
msgstr "Format de fichier"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_file_wizard__file_name
|
||||
msgid "File Name"
|
||||
msgstr "Nom de fichier"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__has_group_changed
|
||||
msgid "Has Group Changed"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__id
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_file_wizard__id
|
||||
msgid "ID"
|
||||
msgstr "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export____last_update
|
||||
@@ -195,14 +163,9 @@ msgid "Parameters"
|
||||
msgstr "Paramètres"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.m2m_field_variable_sql
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_file_wizard__x_partner_categ_ids
|
||||
msgid "Partner Categories"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
msgid "Preview Results"
|
||||
msgstr ""
|
||||
msgstr "Catégories de partenaires"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__query
|
||||
@@ -210,57 +173,32 @@ msgid "Query"
|
||||
msgstr "Requête"
|
||||
|
||||
#. module: sql_export
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
msgid "Request Name"
|
||||
msgstr "Nom de la requête"
|
||||
#: model:ir.ui.menu,name:sql_export.sql_parameter_menu_view
|
||||
msgid "SQL Export Variables"
|
||||
msgstr "Variables d'export SQL"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.actions.act_window,name:sql_export.sql_export_tree_action
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_tree
|
||||
msgid "SQL Export"
|
||||
msgstr "Export SQL"
|
||||
msgid "SQL Exports"
|
||||
msgstr "Exports SQL"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.actions.act_window,name:sql_export.sql_parameter_action
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_parameter_view_tree
|
||||
msgid "SQL Parameter"
|
||||
msgstr "Paramètre SQL"
|
||||
|
||||
#. module: sql_export
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
msgid "SQL Request"
|
||||
msgstr "Requête SQL"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model,name:sql_export.model_sql_export
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_parameter_view_form
|
||||
msgid "SQL export"
|
||||
msgstr "export SQL"
|
||||
|
||||
#. module: sql_export
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
msgid "Set to Draft"
|
||||
msgstr "Remettre en brouillon"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__smart_search
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_file_wizard__smart_search
|
||||
msgid "Smart Search"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_file_wizard__sql_export_id
|
||||
#: model:ir.ui.menu,name:sql_export.sql_export_menu
|
||||
#: model:ir.ui.menu,name:sql_export.sql_export_menu_view
|
||||
msgid "Sql Export"
|
||||
msgstr "Export SQL"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.ui.menu,name:sql_export.sql_parameter_menu_view
|
||||
msgid "Sql Export Variables"
|
||||
msgstr "Variables d'export SQL"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__state
|
||||
msgid "State"
|
||||
@@ -278,15 +216,10 @@ msgstr ""
|
||||
" * 'SQL Validé': La requête SQL a été vérifiée et est valide"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__user_can_see_changeset
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_file_wizard__user_can_see_changeset
|
||||
msgid "User Can See Changeset"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
msgid "Validate SQL Expression"
|
||||
msgstr "Valider l'expression SQL"
|
||||
#: code:addons/sql_export/wizard/wizard_file.py:0
|
||||
#, python-format
|
||||
msgid "The export with parameters is not implemented in V16"
|
||||
msgstr "L'export avec paramètre n'est pas implémenté en V16"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,help:sql_export.field_sql_export__query
|
||||
@@ -294,6 +227,8 @@ msgid ""
|
||||
"You can't use the following words: DELETE, DROP, CREATE, INSERT, ALTER, "
|
||||
"TRUNCATE, EXECUTE, UPDATE."
|
||||
msgstr ""
|
||||
"Vous ne pouvez pas utiliser les mots suivants: DELETE, DROP, CREATE, INSERT,"
|
||||
" ALTER, TRUNCATE, EXECUTE, UPDATE."
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields.selection,name:sql_export.selection__sql_export__encoding__big5
|
||||
@@ -325,11 +260,6 @@ msgstr ""
|
||||
msgid "or"
|
||||
msgstr "ou"
|
||||
|
||||
#. module: sql_export
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
msgid "select * from res_partner"
|
||||
msgstr "select * from res_partner"
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields.selection,name:sql_export.selection__sql_export__encoding__shift_jis
|
||||
msgid "shift_jis"
|
||||
@@ -348,7 +278,7 @@ msgstr ""
|
||||
#. module: sql_export
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_file_wizard_view_form
|
||||
msgid "variables_placeholder"
|
||||
msgstr "variables_placeholder"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields.selection,name:sql_export.selection__sql_export__encoding__windows-1251
|
||||
@@ -361,15 +291,6 @@ msgid "windows-1252"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.integer_field_variable_sql
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_file_wizard__x_id
|
||||
msgid "x_ID"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Draft"
|
||||
#~ msgstr "En brouillon"
|
||||
|
||||
#~ msgid "SQL Valid"
|
||||
#~ msgstr "SQL Validé"
|
||||
|
||||
#~ msgid "Sql export id"
|
||||
#~ msgstr "Sql export id"
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sql_export
|
||||
# * sql_export
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 15.0\n"
|
||||
"Project-Id-Version: Odoo Server 16.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-10-26 11:41+0000\n"
|
||||
"PO-Revision-Date: 2022-10-26 11:41+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -20,13 +22,11 @@ msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__group_ids
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
msgid "Allowed Groups"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__user_ids
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
msgid "Allowed Users"
|
||||
msgstr ""
|
||||
|
||||
@@ -120,6 +120,11 @@ msgstr ""
|
||||
msgid "File Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__has_group_changed
|
||||
msgid "Has Group Changed"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__id
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_file_wizard__id
|
||||
@@ -156,28 +161,23 @@ msgid "Parameters"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.m2m_field_variable_sql
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_file_wizard__x_partner_categ_ids
|
||||
msgid "Partner Categories"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
msgid "Preview Results"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__query
|
||||
msgid "Query"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
msgid "Request Name"
|
||||
#: model:ir.ui.menu,name:sql_export.sql_parameter_menu_view
|
||||
msgid "SQL Export Variables"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.actions.act_window,name:sql_export.sql_export_tree_action
|
||||
msgid "SQL Export"
|
||||
msgid "SQL Exports"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
@@ -185,35 +185,18 @@ msgstr ""
|
||||
msgid "SQL Parameter"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
msgid "SQL Request"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model,name:sql_export.model_sql_export
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_parameter_view_form
|
||||
msgid "SQL export"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
msgid "Set to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_file_wizard__sql_export_id
|
||||
#: model:ir.ui.menu,name:sql_export.sql_export_menu
|
||||
#: model:ir.ui.menu,name:sql_export.sql_export_menu_view
|
||||
msgid "Sql Export"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.ui.menu,name:sql_export.sql_parameter_menu_view
|
||||
msgid "Sql Export Variables"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_export__state
|
||||
msgid "State"
|
||||
@@ -228,8 +211,9 @@ msgid ""
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
msgid "Validate SQL Expression"
|
||||
#: code:addons/sql_export/wizard/wizard_file.py:0
|
||||
#, python-format
|
||||
msgid "The export with parameters is not implemented in V16"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
@@ -269,11 +253,6 @@ msgstr ""
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model_terms:ir.ui.view,arch_db:sql_export.sql_export_view_form
|
||||
msgid "select * from res_partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields.selection,name:sql_export.selection__sql_export__encoding__shift_jis
|
||||
msgid "shift_jis"
|
||||
@@ -305,6 +284,6 @@ msgid "windows-1252"
|
||||
msgstr ""
|
||||
|
||||
#. module: sql_export
|
||||
#: model:ir.model.fields,field_description:sql_export.integer_field_variable_sql
|
||||
#: model:ir.model.fields,field_description:sql_export.field_sql_file_wizard__x_id
|
||||
msgid "x_ID"
|
||||
msgstr ""
|
||||
msgstr ""
|
||||
@@ -13,8 +13,6 @@ class SqlExport(models.Model):
|
||||
|
||||
_sql_request_users_relation = "users_sqlquery_rel"
|
||||
|
||||
_check_execution_enabled = False
|
||||
|
||||
copy_options = fields.Char(required=False, default="CSV HEADER DELIMITER ';'")
|
||||
|
||||
file_format = fields.Selection([("csv", "CSV")], default="csv", required=True)
|
||||
|
||||
@@ -14,3 +14,5 @@ See sql_request_abstract module to fix this issue.
|
||||
* checking SQL request by execution and rollback is disabled in this module
|
||||
since variables features has been introduced. This can be fixed by
|
||||
overloading _prepare_request_check_execution() function.
|
||||
|
||||
* V16 : Restore export with parameters features.
|
||||
|
||||
@@ -61,7 +61,7 @@ class TestExportSqlQuery(TransactionCase):
|
||||
sql_export.state, "sql_valid", "%s is a valid request" % (query)
|
||||
)
|
||||
|
||||
def test_sql_query_with_params(self):
|
||||
def _test_sql_query_with_params(self):
|
||||
query = self.env.ref("sql_export.sql_export_partner_with_variables")
|
||||
categ_id = self.env.ref("base.res_partner_category_0").id
|
||||
wizard = self.wizard_obj.create(
|
||||
|
||||
76
sql_export/views/ir_model_fields_view.xml
Normal file
76
sql_export/views/ir_model_fields_view.xml
Normal file
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
|
||||
<record id="sql_parameter_view_form" model="ir.ui.view">
|
||||
<field name="name">Sql_parameter_form_view</field>
|
||||
<field name="model">ir.model.fields</field>
|
||||
<field name="priority">150</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="SQL export">
|
||||
<group>
|
||||
<field name="name" />
|
||||
<field name="field_description" />
|
||||
<field name="ttype" />
|
||||
<field
|
||||
name="relation"
|
||||
attrs="{'invisible': [('ttype', 'not in', ('many2one', 'many2many', 'one2many'))], 'required': [('ttype', 'in', ('many2one', 'many2many', 'one2many'))]}"
|
||||
/>
|
||||
<field name="model_id" readonly="1" />
|
||||
<field name="model" invisible="1" />
|
||||
<field name="required" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sql_parameter_view_tree" model="ir.ui.view">
|
||||
<field name="name">Sql_parameter_tree_view</field>
|
||||
<field name="model">ir.model.fields</field>
|
||||
<field name="priority">150</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name" />
|
||||
<field name="field_description" />
|
||||
<field name="ttype" />
|
||||
<field name="required" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sql_parameter_action" model="ir.actions.act_window">
|
||||
<field name="name">SQL Parameter</field>
|
||||
<field name="res_model">ir.model.fields</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field
|
||||
name="context"
|
||||
eval="{'default_model_id': ref('sql_export.model_sql_file_wizard'), 'default_size': 64, 'search_default_state': 'manual', 'default_model': 'sql.file.wizard'}"
|
||||
/>
|
||||
<field
|
||||
name="domain"
|
||||
>[('model','=','sql.file.wizard'), ('state', '=', 'manual')]</field>
|
||||
</record>
|
||||
|
||||
<record id="sql_parameter_action_view_tree" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="1" />
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="sql_parameter_view_tree" />
|
||||
<field name="act_window_id" ref="sql_parameter_action" />
|
||||
</record>
|
||||
|
||||
<record id="sql_parameter_action_view_form" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="2" />
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="sql_parameter_view_form" />
|
||||
<field name="act_window_id" ref="sql_parameter_action" />
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
id="sql_parameter_menu_view"
|
||||
name="SQL Export Variables"
|
||||
parent="spreadsheet_dashboard.spreadsheet_dashboard_menu_configuration"
|
||||
action="sql_parameter_action"
|
||||
sequence="50"
|
||||
groups="sql_request_abstract.group_sql_request_manager"
|
||||
/>
|
||||
|
||||
</odoo>
|
||||
@@ -1,117 +1,71 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<odoo>
|
||||
<record id="sql_export_view_form" model="ir.ui.view">
|
||||
<field name="name">Sql_export_form_view</field>
|
||||
<field name="model">sql.export</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="SQL export">
|
||||
<header>
|
||||
<button
|
||||
name="button_validate_sql_expression"
|
||||
type="object"
|
||||
states="draft"
|
||||
string="Validate SQL Expression"
|
||||
class="oe_highlight"
|
||||
groups="sql_request_abstract.group_sql_request_manager"
|
||||
/>
|
||||
<button
|
||||
name="button_preview_sql_expression"
|
||||
type="object"
|
||||
states="draft"
|
||||
string="Preview Results"
|
||||
attrs="{'invisible': [('field_ids', '!=', False)]}"
|
||||
/>
|
||||
<button
|
||||
name="button_set_draft"
|
||||
type="object"
|
||||
states="sql_valid"
|
||||
string="Set to Draft"
|
||||
groups="sql_request_abstract.group_sql_request_manager"
|
||||
/>
|
||||
<button
|
||||
name="export_sql_query"
|
||||
string="Execute Query"
|
||||
states="sql_valid"
|
||||
type="object"
|
||||
class="oe_highlight"
|
||||
icon="fa-arrow-right text-success"
|
||||
/>
|
||||
<field name="state" widget="statusbar" />
|
||||
</header>
|
||||
<sheet>
|
||||
<group>
|
||||
<h1>
|
||||
<field
|
||||
name="name"
|
||||
nolabel="1"
|
||||
placeholder="Request Name"
|
||||
attrs="{'readonly': [('state', '!=', 'draft')]}"
|
||||
/>
|
||||
</h1>
|
||||
</group>
|
||||
<group
|
||||
name="option"
|
||||
groups="sql_request_abstract.group_sql_request_user"
|
||||
>
|
||||
<field
|
||||
name="file_format"
|
||||
attrs="{'readonly': [('state', '!=', 'draft')]}"
|
||||
/>
|
||||
<field
|
||||
name="copy_options"
|
||||
attrs="{'invisible': [('file_format', '!=', 'csv')], 'required': [('file_format', '=', 'csv')], 'readonly': [('state', '!=', 'draft')]}"
|
||||
/>
|
||||
<field
|
||||
name="encoding"
|
||||
attrs="{'readonly': [('state', '!=', 'draft')]}"
|
||||
/>
|
||||
</group>
|
||||
<group
|
||||
name="request"
|
||||
string="SQL Request"
|
||||
groups="sql_request_abstract.group_sql_request_user"
|
||||
>
|
||||
<field
|
||||
name="query"
|
||||
nolabel="1"
|
||||
placeholder="select * from res_partner"
|
||||
attrs="{'readonly': [('state', '!=', 'draft')]}"
|
||||
/>
|
||||
</group>
|
||||
<group
|
||||
name="parameters"
|
||||
string="Parameters"
|
||||
groups="sql_request_abstract.group_sql_request_user"
|
||||
>
|
||||
<field
|
||||
name="field_ids"
|
||||
nolabel="1"
|
||||
options="{'no_create': True}"
|
||||
context="{'tree_view_ref': 'sql_export.sql_parameter_view_tree', 'form_view_ref': 'sql_export.sql_parameter_view_form'}"
|
||||
attrs="{'readonly': [('state', '!=', 'draft')]}"
|
||||
/>
|
||||
</group>
|
||||
<group groups="sql_request_abstract.group_sql_request_manager">
|
||||
<group string="Allowed Users" name="users_allowed">
|
||||
<field name="user_ids" nolabel="1" />
|
||||
</group>
|
||||
<group string="Allowed Groups" name="groups_allowed">
|
||||
<field name="group_ids" nolabel="1" />
|
||||
</group>
|
||||
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
<record id="sql_export_view_form" model="ir.ui.view">
|
||||
<field name="model">sql.export</field>
|
||||
<field
|
||||
name="inherit_id"
|
||||
ref="sql_request_abstract.view_sql_request_mixin_form"
|
||||
/>
|
||||
<field name="mode">primary</field>
|
||||
<field name="arch" type="xml">
|
||||
<button name="button_preview_sql_expression" position="attributes">
|
||||
<attribute
|
||||
name="attrs"
|
||||
>{'invisible': [('field_ids', '!=', False)]}</attribute>
|
||||
</button>
|
||||
|
||||
<xpath expr="//header" position="inside">
|
||||
<button
|
||||
name="export_sql_query"
|
||||
string="Execute Query"
|
||||
states="sql_valid"
|
||||
type="object"
|
||||
class="oe_highlight"
|
||||
icon="fa-arrow-right text-success"
|
||||
/>
|
||||
</xpath>
|
||||
<group name="group_main_info" position="inside">
|
||||
<group name="option">
|
||||
<field
|
||||
name="file_format"
|
||||
attrs="{'readonly': [('state', '!=', 'draft')]}"
|
||||
/>
|
||||
<field
|
||||
name="copy_options"
|
||||
attrs="{'invisible': [('file_format', '!=', 'csv')], 'required': [('file_format', '=', 'csv')], 'readonly': [('state', '!=', 'draft')]}"
|
||||
/>
|
||||
<field
|
||||
name="encoding"
|
||||
attrs="{'readonly': [('state', '!=', 'draft')]}"
|
||||
/>
|
||||
</group>
|
||||
</group>
|
||||
<group name="group_query" position="after">
|
||||
<group string="Parameters">
|
||||
<field
|
||||
name="field_ids"
|
||||
nolabel="1"
|
||||
colspan="2"
|
||||
options="{'no_create': True}"
|
||||
context="{'tree_view_ref': 'sql_export.sql_parameter_view_tree', 'form_view_ref': 'sql_export.sql_parameter_view_form'}"
|
||||
attrs="{'readonly': [('state', '!=', 'draft')]}"
|
||||
groups="sql_request_abstract.group_sql_request_user"
|
||||
/>
|
||||
</group>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sql_export_view_tree" model="ir.ui.view">
|
||||
<field name="name">Sql_export_tree_view</field>
|
||||
<field name="model">sql.export</field>
|
||||
<field
|
||||
name="inherit_id"
|
||||
ref="sql_request_abstract.view_sql_request_mixin_tree"
|
||||
/>
|
||||
<field name="mode">primary</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree decoration-info="state=='draft'">
|
||||
<field name="name" />
|
||||
<field name="state" />
|
||||
<field name="state" position="after">
|
||||
<button
|
||||
name="export_sql_query"
|
||||
string="Execute Query"
|
||||
@@ -119,102 +73,22 @@
|
||||
type="object"
|
||||
icon="fa-arrow-right text-success"
|
||||
/>
|
||||
</tree>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sql_export_tree_action" model="ir.actions.act_window">
|
||||
<field name="name">SQL Export</field>
|
||||
<field name="name">SQL Exports</field>
|
||||
<field name="res_model">sql.export</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
<menuitem
|
||||
id="sql_export_menu"
|
||||
name="Sql Export"
|
||||
parent="base.menu_reporting_dashboard"
|
||||
sequence="80"
|
||||
/>
|
||||
|
||||
<menuitem
|
||||
id="sql_export_menu_view"
|
||||
name="Sql Export"
|
||||
parent="sql_export_menu"
|
||||
parent="spreadsheet_dashboard.spreadsheet_dashboard_menu_root"
|
||||
action="sql_export_tree_action"
|
||||
sequence="1"
|
||||
/>
|
||||
|
||||
<record id="sql_parameter_view_form" model="ir.ui.view">
|
||||
<field name="name">Sql_parameter_form_view</field>
|
||||
<field name="model">ir.model.fields</field>
|
||||
<field name="priority">150</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="SQL export">
|
||||
<group>
|
||||
<field name="name" />
|
||||
<field name="field_description" />
|
||||
<field name="ttype" />
|
||||
<field
|
||||
name="relation"
|
||||
attrs="{'invisible': [('ttype', 'not in', ('many2one', 'many2many', 'one2many'))], 'required': [('ttype', 'in', ('many2one', 'many2many', 'one2many'))]}"
|
||||
/>
|
||||
<field name="model_id" readonly="1" />
|
||||
<field name="model" invisible="1" />
|
||||
<field name="required" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sql_parameter_view_tree" model="ir.ui.view">
|
||||
<field name="name">Sql_parameter_tree_view</field>
|
||||
<field name="model">ir.model.fields</field>
|
||||
<field name="priority">150</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name" />
|
||||
<field name="field_description" />
|
||||
<field name="ttype" />
|
||||
<field name="required" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sql_parameter_action" model="ir.actions.act_window">
|
||||
<field name="name">SQL Parameter</field>
|
||||
<field name="res_model">ir.model.fields</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field
|
||||
name="context"
|
||||
eval="{'default_model_id': ref('sql_export.model_sql_file_wizard'), 'default_size': 64, 'search_default_state': 'manual', 'default_model': 'sql.file.wizard'}"
|
||||
/>
|
||||
<field
|
||||
name="domain"
|
||||
>[('model','=','sql.file.wizard'), ('state', '=', 'manual')]</field>
|
||||
</record>
|
||||
|
||||
<record id="sql_parameter_action_view_tree" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="1" />
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="sql_parameter_view_tree" />
|
||||
<field name="act_window_id" ref="sql_parameter_action" />
|
||||
</record>
|
||||
|
||||
<record id="sql_parameter_action_view_form" model="ir.actions.act_window.view">
|
||||
<field name="sequence" eval="2" />
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="sql_parameter_view_form" />
|
||||
<field name="act_window_id" ref="sql_parameter_action" />
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
id="sql_parameter_menu_view"
|
||||
name="Sql Export Variables"
|
||||
parent="sql_export_menu"
|
||||
action="sql_parameter_action"
|
||||
sequence="5"
|
||||
groups="sql_request_abstract.group_sql_request_manager"
|
||||
sequence="15"
|
||||
/>
|
||||
|
||||
</odoo>
|
||||
|
||||
@@ -7,7 +7,7 @@ from datetime import datetime
|
||||
|
||||
from lxml import etree
|
||||
|
||||
from odoo import api, fields, models
|
||||
from odoo import _, api, fields, models
|
||||
from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT
|
||||
|
||||
|
||||
@@ -19,6 +19,20 @@ class SqlFileWizard(models.TransientModel):
|
||||
file_name = fields.Char(readonly=True)
|
||||
sql_export_id = fields.Many2one(comodel_name="sql.export", required=True)
|
||||
|
||||
@api.model
|
||||
def get_view(self, view_id=None, view_type="form", **options):
|
||||
export_obj = self.env["sql.export"]
|
||||
sql_export = export_obj.browse(self.env.context.get("active_id"))
|
||||
|
||||
result = super().get_view(view_id=view_id, view_type=view_type, **options)
|
||||
|
||||
if sql_export.field_ids:
|
||||
etree.fromstring(result["arch"])
|
||||
raise NotImplementedError(
|
||||
_("The export with parameters is not implemented in V16")
|
||||
)
|
||||
return result
|
||||
|
||||
@api.model
|
||||
def fields_view_get(
|
||||
self, view_id=None, view_type="form", toolbar=False, submenu=False
|
||||
|
||||
Reference in New Issue
Block a user