[MIG] sql_export: Migration to 17.0

This commit is contained in:
Sander Lienaerts
2024-01-15 15:36:42 +01:00
committed by David Beal
parent cade6cd688
commit f45fa52858
8 changed files with 32 additions and 30 deletions

View File

@@ -103,6 +103,10 @@ Contributors
- Aaron Henriquez <ahenriquez@eficent.com>
- `Codeforward <https://www.codeforward.nl>`__:
- Sander Lienaerts <sander.lienaerts@codeforward.nl>
Maintainers
-----------

View File

@@ -4,7 +4,7 @@
{
"name": "SQL Export",
"version": "16.0.2.0.1",
"version": "17.0.1.0.0",
"author": "Akretion,GRAP,Odoo Community Association (OCA)",
"maintainers": ["legalsylvain"],
"website": "https://github.com/OCA/reporting-engine",

View File

@@ -4,3 +4,5 @@
- Benoît GUILLOT \<<benoit.guillot@akretion.com>\>
- [Eficent](https://www.eficent.com):
- Aaron Henriquez \<<ahenriquez@eficent.com>\>
- [Codeforward](https://www.codeforward.nl):
- Sander Lienaerts \<<sander.lienaerts@codeforward.nl>\>

View File

@@ -452,6 +452,10 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
<li>Aaron Henriquez &lt;<a class="reference external" href="mailto:ahenriquez&#64;eficent.com">ahenriquez&#64;eficent.com</a>&gt;</li>
</ul>
</li>
<li><a class="reference external" href="https://www.codeforward.nl">Codeforward</a>:<ul>
<li>Sander Lienaerts &lt;<a class="reference external" href="mailto:sander.lienaerts&#64;codeforward.nl">sander.lienaerts&#64;codeforward.nl</a>&gt;</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="maintainers">

View File

@@ -57,7 +57,7 @@ class TestExportSqlQuery(TransactionCase):
)
sql_export.button_validate_sql_expression()
self.assertEqual(
sql_export.state, "sql_valid", "%s is a valid request" % (query)
sql_export.state, "sql_valid", "%s is a valid request" % query
)
def test_sql_query_with_params(self):

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="sql_export_view_form" model="ir.ui.view">
<field name="model">sql.export</field>
<field
@@ -13,23 +12,20 @@
<field name="use_properties" invisible="1" />
</field>
<button name="button_preview_sql_expression" position="attributes">
<attribute name="states" />
<attribute
name="attrs"
>{'invisible': [('use_properties', '=', True)]}</attribute>
<attribute name="invisible">use_properties</attribute>
</button>
<xpath expr="//header" position="inside">
<button
name="export_sql_query"
string="Execute Query"
states="sql_valid"
invisible="state != 'sql_valid'"
type="object"
class="oe_highlight"
icon="fa-arrow-right text-success"
/>
<button
name="configure_properties"
states="draft"
invisible="state != 'draft'"
string="Configure Properties"
type="object"
class="oe_highlight"
@@ -38,31 +34,26 @@
</xpath>
<group name="group_main_info" position="inside">
<group name="option">
<field
name="file_format"
attrs="{'readonly': [('state', '!=', 'draft')]}"
/>
<field name="file_format" 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')]}"
invisible="file_format != 'csv'"
required="file_format == 'csv'"
readonly="state != 'draft'"
/>
<field name="encoding" readonly="state != 'draft'" />
</group>
</group>
<field name="query" position="before">
<p
colspan="2"
attrs="{'invisible': [('use_properties', '=', False)]}"
invisible="not use_properties"
> In case of use of properties in the query, use this syntax : &#37;&#37;(Property String)s. <br
/>
Example : SELECT id FROM sale_order WHERE create_date > &#37;&#37;(Start Date)s</p>
</field>
</field>
</record>
<record id="sql_export_view_tree" model="ir.ui.view">
<field name="model">sql.export</field>
<field
@@ -75,20 +66,18 @@
<button
name="export_sql_query"
string="Execute Query"
states="sql_valid"
invisible="state != 'sql_valid'"
type="object"
icon="fa-arrow-right text-success"
/>
</field>
</field>
</record>
<record id="sql_export_tree_action" model="ir.actions.act_window">
<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_view"
name="Sql Export"
@@ -96,5 +85,4 @@
action="sql_export_tree_action"
sequence="15"
/>
</odoo>

View File

@@ -25,8 +25,10 @@ class SqlFileWizard(models.TransientModel):
def export_sql(self):
self.ensure_one()
properties = self.read(["query_properties"])[0]["query_properties"]
# Check properties
bad_props = [x for x in self.query_properties if not x["value"]]
bad_props = [x for x in properties if not x["value"]]
if bad_props:
raise UserError(
_("Please enter a values for the following properties : %s")
@@ -39,9 +41,12 @@ class SqlFileWizard(models.TransientModel):
variable_dict = {}
now_tz = fields.Datetime.context_timestamp(sql_export, datetime.now())
date = now_tz.strftime(DEFAULT_SERVER_DATETIME_FORMAT)
for prop in self.query_properties:
for prop in properties:
if prop["type"] == "many2many":
variable_dict[prop["string"]] = tuple(prop["value"])
m2m_ids = []
for m2m_id in prop["value"]:
m2m_ids.append(m2m_id[0])
variable_dict[prop["string"]] = tuple(m2m_ids)
else:
variable_dict[prop["string"]] = prop["value"]
if "%(company_id)s" in sql_export.query:
@@ -59,8 +64,7 @@ class SqlFileWizard(models.TransientModel):
self.write(
{
"binary_file": data,
"file_name": "%(name)s_%(date)s.%(extension)s"
% {"name": sql_export.name, "date": date, "extension": extension},
"file_name": f"{sql_export.name}_{date}.{extension}",
}
)
return {

View File

@@ -15,7 +15,7 @@
<separator
string="Export file"
colspan="4"
attrs="{'invisible': [('binary_file', '=', False)]}"
invisible="not binary_file"
/>
<field name="binary_file" filename="file_name" />
<field name="file_name" invisible="1" />