[15.0][MIG] sql_export_mail: Migration to 15.0

This commit is contained in:
BT-ssteiner
2024-03-08 16:07:38 +01:00
parent 20969ad90d
commit 0cf07fe163
9 changed files with 59 additions and 39 deletions

View File

@@ -7,7 +7,7 @@ SQL Export Mail
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:d827e1e84e845e81a875a56e6dbb22176fb86b3ad685cb5c1105e5a79897dfcb
!! source digest: sha256:e07d45bf05ba7798ba09b99f0a16c60cf70c98dc1819c149bedee8461343721e
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -70,6 +70,7 @@ Contributors
* Florian da Costa <florian.dacosta@akretion.com>
* Helly kapatel <helly.kapatel@initos.com>
* Solange Steiner <solange.steiner@braintec.com>
Maintainers
~~~~~~~~~~~

View File

@@ -1,7 +1,7 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
"name": "SQL Export Mail",
"version": "15.0.2.0.0",
"version": "15.0.1.0.0",
"category": "Generic Modules",
"summary": "Send csv file generated by sql query by mail.",
"author": "Akretion,GRAP,Odoo Community Association (OCA)",

View File

@@ -1,19 +0,0 @@
<?xml version='1.0' encoding='utf-8' ?>
<odoo>
<record id="sql_export_mailer" model="mail.template">
<field name="email_to">{{object.get_email_address_for_template()}}</field>
<field name="subject">{{object.name or ''}}</field>
<field name="body_html" type="html">
<div
style="font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; "
>
<p>You will find the report <t
t-out="object.name or ''"
/> as an attachment of the mail.</p>
</div>
</field>
</record>
</odoo>

View File

@@ -1,8 +0,0 @@
from openupgradelib import openupgrade
@openupgrade.migrate()
def migrate(env, version):
openupgrade.load_data(
env.cr, "sql_export_mail", "migrations/16.0.1.0.0/noupdate_changes.xml"
)

View File

@@ -118,10 +118,10 @@ class SqlExport(models.Model):
else:
export.send_mail()
@api.constrains("query_properties_definition", "mail_user_ids")
@api.constrains("field_ids", "mail_user_ids")
def check_no_parameter_if_sent_by_mail(self):
for export in self:
if export.query_properties_definition and export.mail_user_ids:
if export.field_ids and export.mail_user_ids:
raise UserError(
_(
"It is not possible to execute and send a query "

View File

@@ -1,2 +1,3 @@
* Florian da Costa <florian.dacosta@akretion.com>
* Helly kapatel <helly.kapatel@initos.com>
* Solange Steiner <solange.steiner@braintec.com>

View File

@@ -367,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:d827e1e84e845e81a875a56e6dbb22176fb86b3ad685cb5c1105e5a79897dfcb
!! source digest: sha256:e07d45bf05ba7798ba09b99f0a16c60cf70c98dc1819c149bedee8461343721e
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/reporting-engine/tree/15.0/sql_export_mail"><img alt="OCA/reporting-engine" src="https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/reporting-engine-15-0/reporting-engine-15-0-sql_export_mail"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&amp;target_branch=15.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>Allow to send the result of a query (made with the module sql_export) by mail.</p>
@@ -417,6 +417,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
<ul class="simple">
<li>Florian da Costa &lt;<a class="reference external" href="mailto:florian.dacosta&#64;akretion.com">florian.dacosta&#64;akretion.com</a>&gt;</li>
<li>Helly kapatel &lt;<a class="reference external" href="mailto:helly.kapatel&#64;initos.com">helly.kapatel&#64;initos.com</a>&gt;</li>
<li>Solange Steiner &lt;<a class="reference external" href="mailto:solange.steiner&#64;braintec.com">solange.steiner&#64;braintec.com</a>&gt;</li>
</ul>
</div>
<div class="section" id="maintainers">

View File

@@ -3,6 +3,7 @@
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import SUPERUSER_ID
from odoo.exceptions import UserError
from odoo.tests.common import TransactionCase
@@ -13,15 +14,58 @@ class TestExportSqlQueryMail(TransactionCase):
self.sql_report_demo.write({"mail_user_ids": [(4, SUPERUSER_ID)]})
def test_sql_query_mail(self):
mail_obj = self.env["mail.mail"]
mails = mail_obj.search(
"""Check the general execution"""
self.check_before_change()
self.check_execution()
def test_not_able_add_user(self):
"""if there are field_ids, mail_user_ids can not be set"""
sql_report_demo_with_partner = self.env.ref(
"sql_export.sql_export_partner_with_variables"
)
with self.assertRaises(UserError):
sql_report_demo_with_partner.write(
{"mail_user_ids": [(4, self.env.ref("base.user_demo").id)]}
)
def test_sql_query_mail_company(self):
"""Check the general execution with %(company_id)s"""
self.check_before_change()
self.sql_report_demo.write(
{
"mail_user_ids": [(4, self.env.ref("base.user_demo").id)],
"query": """SELECT name, street
FROM res_partner where company_id = %(company_id)s""",
}
)
self.check_execution()
def test_sql_query_mail_company_user(self):
"""Check the general execution with %(company_id)s and %(user_id)s)"""
self.check_before_change()
self.sql_report_demo.write(
{
"mail_user_ids": [(4, self.env.ref("base.user_demo").id)],
"query": """SELECT name, street FROM res_partner
where company_id = %(company_id)s and id in (
select partner_id from res_users where id = %(user_id)s)""",
}
)
self.check_execution()
def check_before_change(self):
"""Check if there are no mails before changing the sql report"""
mails = self.env["mail.mail"].search(
[("model", "=", "sql.export"), ("res_id", "=", self.sql_report_demo.id)]
)
self.assertFalse(mails)
def check_execution(self):
"""Check if the cron could be created and the mail sending is working"""
self.sql_report_demo.create_cron()
self.assertTrue(self.sql_report_demo.cron_ids)
self.sql_report_demo.cron_ids.method_direct_trigger()
mails = mail_obj.search(
mails = self.env["mail.mail"].search(
[("model", "=", "sql.export"), ("res_id", "=", self.sql_report_demo.id)]
)
self.assertTrue(mails)

View File

@@ -21,8 +21,8 @@
groups="base.group_system"
/>
</field>
<page name="page_sql" position="after">
<page name="page_mail" string="Mail">
<group name="request" position="after">
<group name="page_mail" string="Mail">
<group string="Users Notified by e-mail">
<field
name="mail_user_ids"
@@ -40,8 +40,8 @@
/>
</group>
</page>
</page>
</group>
</group>
</field>
</record>