Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 117 additions & 0 deletions export_async_schedule/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
=============================
Scheduled Asynchronous Export
=============================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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%2Fqueue-lightgray.png?logo=github
:target: https://github.com/OCA/queue/tree/14.0/export_async_schedule
:alt: OCA/queue
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/queue-14-0/queue-14-0-export_async_schedule
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/230/14.0
:alt: Try me on Runbot

|badge1| |badge2| |badge3| |badge4| |badge5|

Add a new Automation feature: Scheduled Exports.
Based on an export list and a domain, an email is sent every X
hours/days/weeks/months to a selection of users.

**Table of contents**

.. contents::
:local:

Configuration
=============

The configuration of a scheduled export is based on export lists.

To create an export list:

* open the list view of the model to export
* select at least one record, and open "Action → Export"
* select the fields to export and save using "Save fields list".

To configure a scheduled export:

* open "Settings → Technical → Automation → Scheduled Exports"
* create a scheduled export by filling the form

A Scheduled Action named "Send Scheduled Exports" checks every hour
if Scheduled Exports have to be executed.

Usage
=====

When the configuration of a Scheduled Export is done, their execution
is automatic.

Users will receive an email containing a link to download the exported file at
the specified frequency. The attachments stay in the database for 7 days by
default (it can be changed with the system parameter ``attachment.ttl``.

Known issues / Roadmap
======================

* We could configure a custom TTL (time-to-live) for each scheduled export

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/queue/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/queue/issues/new?body=module:%20export_async_schedule%0Aversion:%2014.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
~~~~~~~

* Camptocamp

Contributors
~~~~~~~~~~~~

* Guewen Baconnier (Camptocamp)

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-guewen| image:: https://github.com/guewen.png?size=40px
:target: https://github.com/guewen
:alt: guewen

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-guewen|

This module is part of the `OCA/queue <https://github.com/OCA/queue/tree/14.0/export_async_schedule>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions export_async_schedule/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import models
24 changes: 24 additions & 0 deletions export_async_schedule/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Copyright 2019 Camptocamp
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
"name": "Scheduled Asynchronous Export",
"summary": "Generate and send exports by emails on a schedule",
"version": "14.0.1.0.0",
"author": "Camptocamp, Odoo Community Association (OCA)",
"license": "AGPL-3",
"website": "https://github.com/OCA/queue",
"category": "Generic Modules",
"depends": [
"base_export_async",
"queue_job",
],
"data": [
"data/ir_cron.xml",
"views/export_async_schedule_views.xml",
"security/ir.model.access.csv",
],
"installable": True,
"maintainers": ["guewen"],
"development_status": "Beta",
}
19 changes: 19 additions & 0 deletions export_async_schedule/data/ir_cron.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">

<record id="ir_cron_export_async_schedule" model="ir.cron">
<field name="name">Send Scheduled Exports</field>
<field ref="model_export_async_schedule" name="model_id" />
<field eval="True" name="active" />
<field name="user_id" ref="base.user_root" />
<field name="interval_number">1</field>
<field name="interval_type">hours</field>
<field name="numbercall">-1</field>
<field eval="False" name="doall" />
<field name="state">code</field>
<field
name="code"
>model.search([('next_execution', '&lt;=', datetime.datetime.now())]).run_schedule()</field>
</record>

</odoo>
202 changes: 202 additions & 0 deletions export_async_schedule/i18n/export_async_schedule.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * export_async_schedule
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.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: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__active
msgid "Active"
msgstr ""

#. module: export_async_schedule
#: model_terms:ir.ui.view,arch_db:export_async_schedule.view_export_async_schedule_search
msgid "All"
msgstr ""

#. module: export_async_schedule
#: selection:export.async.schedule,export_format:0
msgid "CSV"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__create_uid
msgid "Created by"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__create_date
msgid "Created on"
msgstr ""

#. module: export_async_schedule
#: selection:export.async.schedule,interval_unit:0
msgid "Day(s)"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__display_name
msgid "Display Name"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__end_of_month
msgid "End Of Month"
msgstr ""

#. module: export_async_schedule
#: selection:export.async.schedule,export_format:0
msgid "Excel"
msgstr ""

#. module: export_async_schedule
#: model:ir.model,name:export_async_schedule.model_export_async_schedule
msgid "Export Async Schedule"
msgstr ""

#. module: export_async_schedule
#: model_terms:ir.ui.view,arch_db:export_async_schedule.view_export_async_schedule_form
msgid "Export Configuration"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__domain
msgid "Export Domain"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__export_format
msgid "Export Format"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__ir_export_id
msgid "Export List"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,help:export_async_schedule.field_export_async_schedule__lang
msgid "Exports will be translated in this language."
msgstr ""

#. module: export_async_schedule
#: model_terms:ir.ui.view,arch_db:export_async_schedule.view_export_async_schedule_search
msgid "Group By"
msgstr ""

#. module: export_async_schedule
#: selection:export.async.schedule,interval_unit:0
msgid "Hour(s)"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__id
msgid "ID"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__import_compat
msgid "Import-compatible Export"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__interval
msgid "Interval"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__lang
msgid "Language"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule____last_update
msgid "Last Modified on"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__write_uid
msgid "Last Updated by"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__write_date
msgid "Last Updated on"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__model_id
#: model_terms:ir.ui.view,arch_db:export_async_schedule.view_export_async_schedule_search
msgid "Model"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__model_name
msgid "Model Name"
msgstr ""

#. module: export_async_schedule
#: selection:export.async.schedule,interval_unit:0
msgid "Month(s)"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__next_execution
#: model_terms:ir.ui.view,arch_db:export_async_schedule.view_export_async_schedule_search
msgid "Next Execution"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__user_ids
msgid "Recipients"
msgstr ""

#. module: export_async_schedule
#: model_terms:ir.actions.act_window,help:export_async_schedule.action_export_async_schedule
msgid "Schedule Exports to send by email"
msgstr ""

#. module: export_async_schedule
#: model:ir.actions.act_window,name:export_async_schedule.action_export_async_schedule
#: model:ir.ui.menu,name:export_async_schedule.menu_export_async_schedule
#: model_terms:ir.ui.view,arch_db:export_async_schedule.view_export_async_schedule_search
#: model_terms:ir.ui.view,arch_db:export_async_schedule.view_export_async_schedule_tree
msgid "Scheduled Exports"
msgstr ""

#. module: export_async_schedule
#: model_terms:ir.ui.view,arch_db:export_async_schedule.view_export_async_schedule_form
msgid "Scheduling"
msgstr ""

#. module: export_async_schedule
#: model:ir.actions.server,name:export_async_schedule.ir_cron_export_async_schedule_ir_actions_server
#: model:ir.cron,cron_name:export_async_schedule.ir_cron_export_async_schedule
#: model:ir.cron,name:export_async_schedule.ir_cron_export_async_schedule
msgid "Send Scheduled Exports"
msgstr ""

#. module: export_async_schedule
#: model_terms:ir.ui.view,arch_db:export_async_schedule.view_export_async_schedule_form
msgid "Test Export"
msgstr ""

#. module: export_async_schedule
#: model:ir.model.fields,field_description:export_async_schedule.field_export_async_schedule__interval_unit
msgid "Unit"
msgstr ""

#. module: export_async_schedule
#: selection:export.async.schedule,interval_unit:0
msgid "Week(s)"
msgstr ""

Loading