- Sponsor
-
Notifications
You must be signed in to change notification settings - Fork 807
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by HviorForgeFlow
Showing
19 changed files
with
1,264 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
=============== | ||
SQL Export Mail | ||
=============== | ||
|
||
.. | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
!! This file is generated by oca-gen-addon-readme !! | ||
!! changes will be overwritten. !! | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
!! source digest: sha256:7545ca6358f23ee0f98d8fa0d2610030bdce7d1dc9a2b1e241be5443612fcf1e | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png | ||
:target: https://odoo-community.org/page/development-status | ||
:alt: Beta | ||
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png | ||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html | ||
:alt: License: AGPL-3 | ||
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github | ||
:target: https://github.com/OCA/reporting-engine/tree/17.0/sql_export_mail | ||
:alt: OCA/reporting-engine | ||
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png | ||
:target: https://translation.odoo-community.org/projects/reporting-engine-17-0/reporting-engine-17-0-sql_export_mail | ||
:alt: Translate me on Weblate | ||
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png | ||
:target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=17.0 | ||
:alt: Try me on Runboat | ||
|
||
|badge1| |badge2| |badge3| |badge4| |badge5| | ||
|
||
Allow to send the result of a query (made with the module sql_export) by | ||
mail. | ||
|
||
**Table of contents** | ||
|
||
.. contents:: | ||
:local: | ||
|
||
Configuration | ||
============= | ||
|
||
To configure this module, you need to: | ||
|
||
1. Go to the sql query for which you want users to be notified by | ||
e-mail. | ||
2. Add users to be notified in the field Users Notified by e-mail. | ||
3. Click on the button create a cron and then configure the cron to run | ||
when you want to. If you already have created a cron for another | ||
query, you can use it again for other queries | ||
|
||
Bug Tracker | ||
=========== | ||
|
||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/reporting-engine/issues>`_. | ||
In case of trouble, please check there if your issue has already been reported. | ||
If you spotted it first, help us to smash it by providing a detailed and welcomed | ||
`feedback <https://github.com/OCA/reporting-engine/issues/new?body=module:%20sql_export_mail%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. | ||
|
||
Do not contact contributors directly about support or help with technical issues. | ||
|
||
Credits | ||
======= | ||
|
||
Authors | ||
------- | ||
|
||
* Akretion | ||
* GRAP | ||
|
||
Contributors | ||
------------ | ||
|
||
- Florian da Costa <florian.dacosta@akretion.com> | ||
- Helly kapatel <helly.kapatel@initos.com> | ||
- Sander Lienaerts <sander.lienaerts@codeforward.nl> | ||
|
||
Maintainers | ||
----------- | ||
|
||
This module is maintained by the OCA. | ||
|
||
.. image:: https://odoo-community.org/logo.png | ||
:alt: Odoo Community Association | ||
:target: https://odoo-community.org | ||
|
||
OCA, or the Odoo Community Association, is a nonprofit organization whose | ||
mission is to support the collaborative development of Odoo features and | ||
promote its widespread use. | ||
|
||
.. |maintainer-legalsylvain| image:: https://github.com/legalsylvain.png?size=40px | ||
:target: https://github.com/legalsylvain | ||
:alt: legalsylvain | ||
|
||
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__: | ||
|
||
|maintainer-legalsylvain| | ||
|
||
This module is part of the `OCA/reporting-engine <https://github.com/OCA/reporting-engine/tree/17.0/sql_export_mail>`_ project on GitHub. | ||
|
||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import models |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). | ||
{ | ||
"name": "SQL Export Mail", | ||
"version": "17.0.1.0.0", | ||
"category": "Generic Modules", | ||
"summary": "Send csv file generated by sql query by mail.", | ||
"author": "Akretion,GRAP,Odoo Community Association (OCA)", | ||
"maintainers": ["legalsylvain"], | ||
"website": "https://github.com/OCA/reporting-engine", | ||
"depends": [ | ||
"mail", | ||
"sql_export", | ||
], | ||
"license": "AGPL-3", | ||
"data": [ | ||
"views/sql_export_view.xml", | ||
"data/mail_template.xml", | ||
], | ||
"installable": True, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
<?xml version="1.0" encoding="utf-8" ?> | ||
<odoo noupdate="1"> | ||
|
||
<!-- Error Email template --> | ||
<record id="sql_export_mailer" model="mail.template"> | ||
<field name="name">SQL Export</field> | ||
<field name="email_from">admin@example.com</field> | ||
<field name="email_to">{{object.get_email_address_for_template()}}</field> | ||
<field name="subject">{{object.name or ''}}</field> | ||
<field name="model_id" ref="sql_export.model_sql_export" /> | ||
<field name="auto_delete" eval="True" /> | ||
<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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
# Translation of Odoo Server. | ||
# This file contains the translation of the following modules: | ||
# * sql_export_mail | ||
# | ||
msgid "" | ||
msgstr "" | ||
"Project-Id-Version: Odoo Server 14.0\n" | ||
"Report-Msgid-Bugs-To: \n" | ||
"Last-Translator: Automatically generated\n" | ||
"Language-Team: none\n" | ||
"Language: ca\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" | ||
|
||
#. module: sql_export_mail | ||
#: model:mail.template,body_html:sql_export_mail.sql_export_mailer | ||
msgid "" | ||
"<div style=\"font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-" | ||
"serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; \">\n" | ||
"\n" | ||
" <p>You will find the report <t t-out=\"object.name or ''\"></t> as an " | ||
"attachment of the mail.</p>\n" | ||
"\n" | ||
"</div>\n" | ||
" " | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields,help:sql_export_mail.field_sql_export__mail_user_ids | ||
msgid "" | ||
"Add the users who want to receive the report by e-mail. You need to link the " | ||
"sql query with a cron to send mail automatically" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model_terms:ir.ui.view,arch_db:sql_export_mail.sql_export_mail_view_form | ||
msgid "Create Cron" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields,field_description:sql_export_mail.field_sql_export__cron_ids | ||
#: model_terms:ir.ui.view,arch_db:sql_export_mail.sql_export_mail_view_form | ||
msgid "Crons" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields.selection,name:sql_export_mail.selection__sql_export__mail_condition__not_empty | ||
msgid "File Not Empty" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#. odoo-python | ||
#: code:addons/sql_export_mail/models/sql_export.py:0 | ||
#, python-format | ||
msgid "" | ||
"It is not possible to execute and send a query automatically by mail if " | ||
"there are parameters to fill" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model_terms:ir.ui.view,arch_db:sql_export_mail.sql_export_mail_view_form | ||
msgid "Mail" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields,field_description:sql_export_mail.field_sql_export__mail_condition | ||
msgid "Mail Condition" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:mail.template,name:sql_export_mail.sql_export_mailer | ||
msgid "SQL Export" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model,name:sql_export_mail.model_sql_export | ||
msgid "SQL export" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#. odoo-python | ||
#: code:addons/sql_export_mail/models/sql_export.py:0 | ||
#, python-format | ||
msgid "The user does not have any e-mail address." | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields,field_description:sql_export_mail.field_sql_export__mail_user_ids | ||
msgid "User to notify" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model_terms:ir.ui.view,arch_db:sql_export_mail.sql_export_mail_view_form | ||
msgid "Users Notified by e-mail" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:mail.template,subject:sql_export_mail.sql_export_mailer | ||
msgid "{{object.name or ''}}" | ||
msgstr "" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
# Translation of Odoo Server. | ||
# This file contains the translation of the following modules: | ||
# * sql_export_mail | ||
# | ||
msgid "" | ||
msgstr "" | ||
"Project-Id-Version: Odoo Server 8.0\n" | ||
"Report-Msgid-Bugs-To: \n" | ||
"POT-Creation-Date: 2017-07-18 13:15+0000\n" | ||
"PO-Revision-Date: 2017-07-18 13:15+0000\n" | ||
"Last-Translator: <>\n" | ||
"Language-Team: \n" | ||
"Language: \n" | ||
"MIME-Version: 1.0\n" | ||
"Content-Type: text/plain; charset=UTF-8\n" | ||
"Content-Transfer-Encoding: \n" | ||
"Plural-Forms: \n" | ||
|
||
#. module: sql_export_mail | ||
#: model:mail.template,body_html:sql_export_mail.sql_export_mailer | ||
msgid "" | ||
"<div style=\"font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-" | ||
"serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; \">\n" | ||
"\n" | ||
" <p>You will find the report <t t-out=\"object.name or ''\"></t> as an " | ||
"attachment of the mail.</p>\n" | ||
"\n" | ||
"</div>\n" | ||
" " | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields,help:sql_export_mail.field_sql_export__mail_user_ids | ||
msgid "" | ||
"Add the users who want to receive the report by e-mail. You need to link the " | ||
"sql query with a cron to send mail automatically" | ||
msgstr "" | ||
"Ajoutez les utilisateurs voulant recevoir le rapport par mail. Vous devez " | ||
"ensuite créer une tâche planifiée pour envoyer le mail automatiquement." | ||
|
||
#. module: sql_export_mail | ||
#: model_terms:ir.ui.view,arch_db:sql_export_mail.sql_export_mail_view_form | ||
msgid "Create Cron" | ||
msgstr "Créer une tâche planfiée" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields,field_description:sql_export_mail.field_sql_export__cron_ids | ||
#: model_terms:ir.ui.view,arch_db:sql_export_mail.sql_export_mail_view_form | ||
msgid "Crons" | ||
msgstr "Tâches planifiées" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields.selection,name:sql_export_mail.selection__sql_export__mail_condition__not_empty | ||
msgid "File Not Empty" | ||
msgstr "Fichier non vide." | ||
|
||
#. module: sql_export_mail | ||
#. odoo-python | ||
#: code:addons/sql_export_mail/models/sql_export.py:0 | ||
#, python-format | ||
msgid "" | ||
"It is not possible to execute and send a query automatically by mail if " | ||
"there are parameters to fill" | ||
msgstr "" | ||
"Il n'est pas possible d'exécuter en envoyer le résultat d'une requête par " | ||
"mail si celle-ci contient des paramètres." | ||
|
||
#. module: sql_export_mail | ||
#: model_terms:ir.ui.view,arch_db:sql_export_mail.sql_export_mail_view_form | ||
msgid "Mail" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields,field_description:sql_export_mail.field_sql_export__mail_condition | ||
#, fuzzy | ||
msgid "Mail Condition" | ||
msgstr "Condition d'envoi par mail" | ||
|
||
#. module: sql_export_mail | ||
#: model:mail.template,name:sql_export_mail.sql_export_mailer | ||
msgid "SQL Export" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model,name:sql_export_mail.model_sql_export | ||
msgid "SQL export" | ||
msgstr "Export SQL" | ||
|
||
#. module: sql_export_mail | ||
#. odoo-python | ||
#: code:addons/sql_export_mail/models/sql_export.py:0 | ||
#, python-format | ||
msgid "The user does not have any e-mail address." | ||
msgstr "L'utilisateur selectionné n'a pas d'addresse mail." | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields,field_description:sql_export_mail.field_sql_export__mail_user_ids | ||
msgid "User to notify" | ||
msgstr "Utilisateurs à notifier par mail" | ||
|
||
#. module: sql_export_mail | ||
#: model_terms:ir.ui.view,arch_db:sql_export_mail.sql_export_mail_view_form | ||
msgid "Users Notified by e-mail" | ||
msgstr "Utilisateurs notifiés par mail" | ||
|
||
#. module: sql_export_mail | ||
#: model:mail.template,subject:sql_export_mail.sql_export_mailer | ||
msgid "{{object.name or ''}}" | ||
msgstr "" | ||
|
||
#, fuzzy | ||
#~ msgid "" | ||
#~ "\n" | ||
#~ "<div style=\"font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-" | ||
#~ "serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; " | ||
#~ "\">\n" | ||
#~ "\n" | ||
#~ "<p>You will find the report ${object.name or ''} as an attachment of the " | ||
#~ "mail.</p>\n" | ||
#~ "\n" | ||
#~ "</div>\n" | ||
#~ " " | ||
#~ msgstr "" | ||
#~ "\n" | ||
#~ "<div style=\"font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-" | ||
#~ "serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; " | ||
#~ "\">\n" | ||
#~ "\n" | ||
#~ "<p>Vous trouverez le rapport ${object.name or ''} en pièce jointe de ce " | ||
#~ "mail.</p>\n" | ||
#~ "\n" | ||
#~ "</div>\n" | ||
#~ " " | ||
|
||
#~ msgid "${object.name or ''}" | ||
#~ msgstr "${object.name or ''}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
# Translation of Odoo Server. | ||
# This file contains the translation of the following modules: | ||
# * sql_export_mail | ||
# | ||
msgid "" | ||
msgstr "" | ||
"Project-Id-Version: Odoo Server 16.0\n" | ||
"Report-Msgid-Bugs-To: \n" | ||
"Last-Translator: Automatically generated\n" | ||
"Language-Team: none\n" | ||
"Language: it\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" | ||
|
||
#. module: sql_export_mail | ||
#: model:mail.template,body_html:sql_export_mail.sql_export_mailer | ||
msgid "" | ||
"<div style=\"font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; \">\n" | ||
"\n" | ||
" <p>You will find the report <t t-out=\"object.name or ''\"></t> as an attachment of the mail.</p>\n" | ||
"\n" | ||
"</div>\n" | ||
" " | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields,help:sql_export_mail.field_sql_export__mail_user_ids | ||
msgid "" | ||
"Add the users who want to receive the report by e-mail. You need to link the" | ||
" sql query with a cron to send mail automatically" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model_terms:ir.ui.view,arch_db:sql_export_mail.sql_export_mail_view_form | ||
msgid "Create Cron" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields,field_description:sql_export_mail.field_sql_export__cron_ids | ||
#: model_terms:ir.ui.view,arch_db:sql_export_mail.sql_export_mail_view_form | ||
msgid "Crons" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields.selection,name:sql_export_mail.selection__sql_export__mail_condition__not_empty | ||
msgid "File Not Empty" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#. odoo-python | ||
#: code:addons/sql_export_mail/models/sql_export.py:0 | ||
#, python-format | ||
msgid "" | ||
"It is not possible to execute and send a query automatically by mail if " | ||
"there are parameters to fill" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model_terms:ir.ui.view,arch_db:sql_export_mail.sql_export_mail_view_form | ||
msgid "Mail" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields,field_description:sql_export_mail.field_sql_export__mail_condition | ||
msgid "Mail Condition" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:mail.template,name:sql_export_mail.sql_export_mailer | ||
msgid "SQL Export" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model,name:sql_export_mail.model_sql_export | ||
msgid "SQL export" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#. odoo-python | ||
#: code:addons/sql_export_mail/models/sql_export.py:0 | ||
#, python-format | ||
msgid "The user does not have any e-mail address." | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields,field_description:sql_export_mail.field_sql_export__mail_user_ids | ||
msgid "User to notify" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model_terms:ir.ui.view,arch_db:sql_export_mail.sql_export_mail_view_form | ||
msgid "Users Notified by e-mail" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:mail.template,subject:sql_export_mail.sql_export_mailer | ||
msgid "{{object.name or ''}}" | ||
msgstr "" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
# Translation of Odoo Server. | ||
# This file contains the translation of the following modules: | ||
# * sql_export_mail | ||
# | ||
msgid "" | ||
msgstr "" | ||
"Project-Id-Version: Odoo Server 16.0\n" | ||
"Report-Msgid-Bugs-To: \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: \n" | ||
|
||
#. module: sql_export_mail | ||
#: model:mail.template,body_html:sql_export_mail.sql_export_mailer | ||
msgid "" | ||
"<div style=\"font-family: 'Lucida Grande', Ubuntu, Arial, Verdana, sans-serif; font-size: 12px; color: rgb(34, 34, 34); background-color: #FFF; \">\n" | ||
"\n" | ||
" <p>You will find the report <t t-out=\"object.name or ''\"></t> as an attachment of the mail.</p>\n" | ||
"\n" | ||
"</div>\n" | ||
" " | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields,help:sql_export_mail.field_sql_export__mail_user_ids | ||
msgid "" | ||
"Add the users who want to receive the report by e-mail. You need to link the" | ||
" sql query with a cron to send mail automatically" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model_terms:ir.ui.view,arch_db:sql_export_mail.sql_export_mail_view_form | ||
msgid "Create Cron" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields,field_description:sql_export_mail.field_sql_export__cron_ids | ||
#: model_terms:ir.ui.view,arch_db:sql_export_mail.sql_export_mail_view_form | ||
msgid "Crons" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields.selection,name:sql_export_mail.selection__sql_export__mail_condition__not_empty | ||
msgid "File Not Empty" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#. odoo-python | ||
#: code:addons/sql_export_mail/models/sql_export.py:0 | ||
#, python-format | ||
msgid "" | ||
"It is not possible to execute and send a query automatically by mail if " | ||
"there are parameters to fill" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model_terms:ir.ui.view,arch_db:sql_export_mail.sql_export_mail_view_form | ||
msgid "Mail" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields,field_description:sql_export_mail.field_sql_export__mail_condition | ||
msgid "Mail Condition" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:mail.template,name:sql_export_mail.sql_export_mailer | ||
msgid "SQL Export" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model,name:sql_export_mail.model_sql_export | ||
msgid "SQL export" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#. odoo-python | ||
#: code:addons/sql_export_mail/models/sql_export.py:0 | ||
#, python-format | ||
msgid "The user does not have any e-mail address." | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:ir.model.fields,field_description:sql_export_mail.field_sql_export__mail_user_ids | ||
msgid "User to notify" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model_terms:ir.ui.view,arch_db:sql_export_mail.sql_export_mail_view_form | ||
msgid "Users Notified by e-mail" | ||
msgstr "" | ||
|
||
#. module: sql_export_mail | ||
#: model:mail.template,subject:sql_export_mail.sql_export_mailer | ||
msgid "{{object.name or ''}}" | ||
msgstr "" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import sql_export |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,148 @@ | ||
# Copyright 2019 Akretion | ||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). | ||
|
||
from datetime import datetime, timedelta | ||
|
||
from odoo import SUPERUSER_ID, _, api, fields, models | ||
from odoo.exceptions import UserError | ||
|
||
|
||
class SqlExport(models.Model): | ||
_inherit = "sql.export" | ||
|
||
mail_user_ids = fields.Many2many( | ||
"res.users", | ||
"mail_user_sqlquery_rel", | ||
"sql_id", | ||
"user_id", | ||
"User to notify", | ||
help="Add the users who want to receive the report by e-mail. You " | ||
"need to link the sql query with a cron to send mail automatically", | ||
) | ||
cron_ids = fields.Many2many( | ||
"ir.cron", | ||
"cron_sqlquery_rel", | ||
"sql_id", | ||
"cron_id", | ||
"Crons", | ||
groups="base.group_system", | ||
) | ||
# We could implement other conditions, that is why it is a selection field | ||
mail_condition = fields.Selection( | ||
[("not_empty", "File Not Empty")], default="not_empty" | ||
) | ||
|
||
def _prepare_cron_mail(self): | ||
self.ensure_one() | ||
return { | ||
"active": True, | ||
"model_id": self.env.ref("sql_export.model_sql_export").id, | ||
"state": "code", | ||
"code": "model._run_all_sql_export_for_cron()", | ||
"name": "SQL Export : %s" % self.name, | ||
"nextcall": datetime.now() + timedelta(hours=2), | ||
"doall": False, | ||
"numbercall": -1, | ||
"user_id": SUPERUSER_ID, | ||
} | ||
|
||
def create_cron(self): | ||
self.ensure_one() | ||
cron = self.env["ir.cron"].create(self._prepare_cron_mail()) | ||
# We need to pass cron_id in the cron args because a cron is not | ||
# aware of itself in the end method and we need it to find all | ||
# linked sql exports | ||
write_vals = {"code": "model._run_all_sql_export_for_cron([%s])" % cron.id} | ||
cron.write(write_vals) | ||
self.write({"cron_ids": [(4, cron.id)]}) | ||
|
||
def send_mail(self, params=None): | ||
self.ensure_one() | ||
params = params or {} | ||
mail_template = self.env.ref("sql_export_mail.sql_export_mailer") | ||
attach_obj = self.env["ir.attachment"] | ||
if self.mail_condition == "not_empty": | ||
res = self._execute_sql_request(params=params, mode="fetchone") | ||
if not res: | ||
return | ||
|
||
wizard = self.env["sql.file.wizard"].create( | ||
{ | ||
"sql_export_id": self.id, | ||
} | ||
) | ||
if "user_id" in params: | ||
wizard = wizard.with_context(force_user=params["user_id"]) | ||
if "company_id" in params: | ||
wizard = wizard.with_context(force_company=params["company_id"]) | ||
|
||
wizard.export_sql() | ||
binary = wizard.binary_file | ||
filename = wizard.file_name | ||
msg_id = mail_template.send_mail(self.id, force_send=False) | ||
mail = self.env["mail.mail"].browse(msg_id) | ||
attach_vals = { | ||
"name": filename, | ||
"datas": binary, | ||
"res_model": "mail.mail", | ||
"res_id": mail.id, | ||
} | ||
attachment = attach_obj.create(attach_vals) | ||
mail.write({"attachment_ids": [(4, attachment.id)]}) | ||
|
||
@api.model | ||
def _run_all_sql_export_for_cron(self, cron_ids): | ||
exports = self.search([("cron_ids", "in", cron_ids)]) | ||
for export in exports: | ||
if "%(company_id)s" in export.query and "%(user_id)s" not in export.query: | ||
variable_dict = {} | ||
companies = self.env["res.company"].search([]) | ||
for company in companies: | ||
users = export.mail_user_ids.filtered( | ||
lambda user, company=company: user.company_id == company | ||
) | ||
if users: | ||
variable_dict["company_id"] = users[0].company_id.id | ||
export.with_context(mail_to=users.ids).send_mail( | ||
params=variable_dict | ||
) | ||
elif "%(user_id)s" in export.query: | ||
variable_dict = {} | ||
for user in export.mail_user_ids: | ||
variable_dict["user_id"] = user.id | ||
if "%(company_id)s" in export.query: | ||
variable_dict["company_id"] = user.company_id.id | ||
export.with_context(mail_to=[user.id]).send_mail( | ||
params=variable_dict | ||
) | ||
else: | ||
export.send_mail() | ||
|
||
@api.constrains("query_properties_definition", "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: | ||
raise UserError( | ||
_( | ||
"It is not possible to execute and send a query " | ||
"automatically by mail if there are parameters to fill" | ||
) | ||
) | ||
|
||
@api.constrains("mail_user_ids") | ||
def check_mail_user(self): | ||
for export in self: | ||
for user in export.mail_user_ids: | ||
if not user.email: | ||
raise UserError(_("The user does not have any e-mail address.")) | ||
|
||
def get_email_address_for_template(self): | ||
""" | ||
Called from mail template | ||
""" | ||
self.ensure_one() | ||
if self.env.context.get("mail_to"): | ||
mail_users = self.env["res.users"].browse(self.env.context.get("mail_to")) | ||
else: | ||
mail_users = self.mail_user_ids | ||
return ",".join([x.email for x in mail_users if x.email]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
[build-system] | ||
requires = ["whool"] | ||
build-backend = "whool.buildapi" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
To configure this module, you need to: | ||
|
||
1. Go to the sql query for which you want users to be notified by | ||
e-mail. | ||
2. Add users to be notified in the field Users Notified by e-mail. | ||
3. Click on the button create a cron and then configure the cron to run | ||
when you want to. If you already have created a cron for another | ||
query, you can use it again for other queries |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
- Florian da Costa \<<florian.dacosta@akretion.com>\> | ||
- Helly kapatel \<<helly.kapatel@initos.com>\> | ||
- Sander Lienaerts \<<sander.lienaerts@codeforward.nl>\> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
Allow to send the result of a query (made with the module sql_export) by | ||
mail. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import test_sql_query_mail |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# Copyright (C) 2019 Akretion (<http://www.akretion.com>) | ||
# @author: Florian da Costa | ||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). | ||
|
||
from odoo import SUPERUSER_ID, Command | ||
from odoo.tests.common import TransactionCase | ||
|
||
|
||
class TestExportSqlQueryMail(TransactionCase): | ||
@classmethod | ||
def setUpClass(cls): | ||
super().setUpClass() | ||
cls.sql_report_demo = cls.env.ref("sql_export.sql_export_partner") | ||
cls.sql_report_demo.mail_user_ids = [Command.link(SUPERUSER_ID)] | ||
|
||
def test_sql_query_mail(self): | ||
mail_obj = self.env["mail.mail"] | ||
mails = mail_obj.search( | ||
[("model", "=", "sql.export"), ("res_id", "=", self.sql_report_demo.id)] | ||
) | ||
self.assertFalse(mails) | ||
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( | ||
[("model", "=", "sql.export"), ("res_id", "=", self.sql_report_demo.id)] | ||
) | ||
self.assertTrue(mails) | ||
self.assertTrue(mails.attachment_ids) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
<?xml version="1.0" encoding="utf-8" ?> | ||
<odoo> | ||
<record id="sql_export_mail_view_form" model="ir.ui.view"> | ||
<field name="model">sql.export</field> | ||
<field name="inherit_id" ref="sql_export.sql_export_view_form" /> | ||
<field name="arch" type="xml"> | ||
<button name="export_sql_query" position="after"> | ||
<button | ||
name="create_cron" | ||
string="Create Cron" | ||
type="object" | ||
invisible="state == 'draft' or not mail_user_ids" | ||
/> | ||
</button> | ||
<field name="copy_options" position="after"> | ||
<field | ||
name="mail_condition" | ||
invisible="not cron_ids" | ||
groups="base.group_system" | ||
/> | ||
</field> | ||
<page name="page_sql" position="after"> | ||
<page name="page_mail" string="Mail"> | ||
<group string="Users Notified by e-mail"> | ||
<field | ||
name="mail_user_ids" | ||
nolabel="1" | ||
widget="many2many_tags" | ||
colspan="2" | ||
/> | ||
</group> | ||
<group string="Crons" groups="base.group_system"> | ||
<field | ||
name="cron_ids" | ||
nolabel="1" | ||
colspan="2" | ||
domain="[('model_id', '=', 'sql.export')]" | ||
/> | ||
</group> | ||
</page> | ||
</page> | ||
</field> | ||
</record> | ||
</odoo> |