Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
aaffe9c
[ADD] - report substitute
sbejaoui Jul 11, 2019
8209677
[ADD] - Add readme
sbejaoui Jul 22, 2019
59b4851
[ADD] - Add unit tests
sbejaoui Jul 22, 2019
186222c
[FIX] - missing method param
sbejaoui Jul 23, 2019
3b274cc
[FIX] - prevent substitution loop
sbejaoui Jul 23, 2019
2611c27
[IMP] - manage subtitute report for multi-action
sbejaoui Jul 25, 2019
06b6853
[IMP] - manage substitution for mail.thread message_post_with_template
sbejaoui Jul 25, 2019
655e2b7
[IMP] - add unit tests
sbejaoui Jul 26, 2019
d128a1f
[FIX] - manage the case where mail.compose.message is triggered from …
sbejaoui Aug 2, 2019
7d95e31
[FIX] - Fix typo
sbejaoui Oct 1, 2019
85e2a95
[12.0][IMP] - Add check for substitution infinite loop
sbejaoui Oct 1, 2019
cf587dc
[UPD] Update report_substitute.pot
oca-travis Oct 21, 2019
6810af4
[UPD] README.rst
OCA-git-bot Oct 21, 2019
cb99451
[ADD] icon.png
OCA-git-bot Oct 21, 2019
2e7239f
[13.0][MIG] - report_substitute migration
sbejaoui Nov 6, 2020
3797e4a
[ADD] - add sbejaoui as maintainer for report_substitute
sbejaoui Nov 6, 2020
13dfb6f
[MIG] report_substitute: Migration to 15.0
matiasperalta1 Sep 12, 2022
02d27d5
[MIG] report_substitute: Migration to 16.0
matiasperalta1 Dec 14, 2022
1123d97
[UPD] Update report_substitute.pot
May 11, 2023
06b1b0a
[UPD] README.rst
OCA-git-bot May 11, 2023
b0ebac1
[UPD] README.rst
OCA-git-bot Sep 3, 2023
577f278
Added translation using Weblate (Spanish)
Ivorra78 Sep 7, 2023
0d6037c
Translated using Weblate (Spanish)
Ivorra78 Sep 7, 2023
701c3e4
[FIX] report_substitute: support for email
SodexisTeam Oct 12, 2023
01e3e35
[BOT] post-merge updates
OCA-git-bot Dec 8, 2023
6694bb1
[IMP] report_substitute: pre-commit auto fixes
lef-adhoc Dec 15, 2023
427f088
[MIG] report_substitute: Migration to 17.0
lef-adhoc Dec 15, 2023
f30377f
[UPD] Update report_substitute.pot
May 23, 2024
0b162e2
[BOT] post-merge updates
OCA-git-bot May 23, 2024
f46dfe6
Update translation files
weblate May 23, 2024
75b9a3f
Added translation using Weblate (Italian)
mymage May 24, 2024
4ce927b
Translated using Weblate (Italian)
mymage May 24, 2024
cd0cb90
[MIG] report_substitute: Migration to 18.0
matiasperalta1 Oct 28, 2024
032d9dc
[FIX] report_substitute: handle substitution report with non-qweb-pdf…
samirGuesmi Jun 12, 2025
81b1767
[FIX] report_substitute: ensure substitution_handler returns the corr…
sbejaoui Jun 13, 2025
71bb458
[FIX] report_substitute: avoid write over the mail template
augusto-weiss Mar 17, 2025
abe3b41
[UPD] Update report_substitute.pot
Sep 10, 2025
97de2db
[BOT] post-merge updates
OCA-git-bot Sep 10, 2025
1f30956
[IMP] report_substitute: pre-commit execution
augusto-weiss Oct 28, 2025
e9bd05f
[MIG] report_substitute: Migration to 19.0
augusto-weiss Oct 28, 2025
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
111 changes: 111 additions & 0 deletions report_substitute/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

=================
Report Substitute
=================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:b2a85461ade5dd5f30d8cdec1f353002db6baf217f8d0584c7708046843b8076
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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/license-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/18.0/report_substitute
: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-18-0/reporting-engine-18-0-report_substitute
: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=18.0
:alt: Try me on Runboat

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

This module allows you to create substitution rules for report actions.
A typical use case is to replace a standard report by alternative
reports when some conditions are met. For instance, it allows to
configure alternate reports for different companies.

**Table of contents**

.. contents::
:local:

Usage
=====

To use this module, you need to:

1. Go to 'Actions' / 'Reports'
2. Select the desired report you want to 'Substitution Rules'
3. In the substitutions page add a new line
4. Select the substitution report action
5. Set a domain to specify when this substitution should happen

When a user calls a report action, the system tries to find the first
substitution in with a domain that matches all records.

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

- The document name result should take the name of the substitution
report.

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:%20report_substitute%0Aversion:%2018.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
-------

* ACSONE SA/NV

Contributors
------------

- Bejaoui Souheil <souheil.bejaoui@acsone.eu>

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

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

|maintainer-sbejaoui|

This module is part of the `OCA/reporting-engine <https://github.com/OCA/reporting-engine/tree/18.0/report_substitute>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
1 change: 1 addition & 0 deletions report_substitute/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
25 changes: 25 additions & 0 deletions report_substitute/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Copyright 2019 ACSONE SA/NV
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
"name": "Report Substitute",
"summary": """
This module allows to create substitution rules for report actions.
""",
"version": "19.0.1.0.0",
"license": "AGPL-3",
"author": "ACSONE SA/NV,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/reporting-engine",
"depends": ["base", "mail"],
"data": [
"security/ir_actions_report_substitution_rule.xml",
"views/ir_actions_report.xml",
],
"demo": ["demo/action_report.xml"],
"assets": {
"web.assets_backend": [
"report_substitute/static/src/js/action_manager.esm.js",
],
},
"maintainers": ["sbejaoui"],
}
36 changes: 36 additions & 0 deletions report_substitute/demo/action_report.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template id="substitution_report">
<t t-call="web.html_container">
<div class="page">Substitution Report</div>
</t>
</template>
<record id="substitution_report_print" model="ir.actions.report">
<field name="name">Substitution For Technical guide</field>
<field name="model">ir.module.module</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">report_substitute.substitution_report</field>
<field name="report_file">report_substitute.substitution_report</field>
<field name="binding_type">report</field>
</record>
<record id="substitution_rule_demo_1" model="ir.actions.report.substitution.rule">
<field name="action_report_id" ref="base.ir_module_reference_print" />
<field
name="substitution_action_report_id"
ref="report_substitute.substitution_report_print"
/>
</record>
<template id="substitution_report_2">
<t t-call="web.html_container">
<div class="page">Substitution Report 2</div>
</t>
</template>
<record id="substitution_report_print_2" model="ir.actions.report">
<field name="name">Substitution 2 For Technical guide</field>
<field name="model">ir.module.module</field>
<field name="report_type">qweb-pdf</field>
<field name="report_name">report_substitute.substitution_report_2</field>
<field name="report_file">report_substitute.substitution_report_2</field>
<field name="binding_type">report</field>
</record>
</odoo>
122 changes: 122 additions & 0 deletions report_substitute/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * report_substitute
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-09-07 16:37+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
"Language-Team: none\n"
"Language: es\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"
"X-Generator: Weblate 4.17\n"

#. module: report_substitute
#: model:ir.model,name:report_substitute.model_ir_actions_report_substitution_rule
msgid "Action Report Substitution Rule"
msgstr "Informe de acción Regla de sustitución"

#. module: report_substitute
#: model:ir.model.fields,field_description:report_substitute.field_ir_actions_report_substitution_rule__create_uid
msgid "Created by"
msgstr "Creado por"

#. module: report_substitute
#: model:ir.model.fields,field_description:report_substitute.field_ir_actions_report_substitution_rule__create_date
msgid "Created on"
msgstr "Creado el"

#. module: report_substitute
#: model:ir.model.fields,field_description:report_substitute.field_ir_actions_report_substitution_rule__display_name
msgid "Display Name"
msgstr "Mostrar Nombre"

#. module: report_substitute
#: model:ir.model.fields,field_description:report_substitute.field_ir_actions_report_substitution_rule__domain
msgid "Domain"
msgstr "Dominio"

#. module: report_substitute
#: model:ir.model,name:report_substitute.model_mail_thread
msgid "Email Thread"
msgstr "Hilo de correo electrónico"

#. module: report_substitute
#: model:ir.model.fields,field_description:report_substitute.field_ir_actions_report_substitution_rule__id
msgid "ID"
msgstr "ID(identificación)"

#. module: report_substitute
#: model:ir.model.fields,field_description:report_substitute.field_ir_actions_report_substitution_rule__write_uid
msgid "Last Updated by"
msgstr "Última actualización por"

#. module: report_substitute
#: model:ir.model.fields,field_description:report_substitute.field_ir_actions_report_substitution_rule__write_date
msgid "Last Updated on"
msgstr "Ultima Actualización el"

#. module: report_substitute
#: model:ir.model.fields,field_description:report_substitute.field_ir_actions_report_substitution_rule__model
msgid "Model Name"
msgstr "Nombre del modelo"

#. module: report_substitute
#: model:ir.model,name:report_substitute.model_ir_actions_report
#: model:ir.model.fields,field_description:report_substitute.field_ir_actions_report_substitution_rule__action_report_id
msgid "Report Action"
msgstr "Informar Acción"

#. module: report_substitute
#: model:ir.model.fields,field_description:report_substitute.field_ir_actions_report_substitution_rule__sequence
msgid "Sequence"
msgstr "Secuencia"

#. module: report_substitute
#: model:ir.actions.report,name:report_substitute.substitution_report_print_2
msgid "Substitution 2 For Technical guide"
msgstr "Sustitución 2 Para Guía técnica"

#. module: report_substitute
#: model:ir.actions.report,name:report_substitute.substitution_report_print
msgid "Substitution For Technical guide"
msgstr "Sustitución Para Guía técnica"

#. module: report_substitute
#: model_terms:ir.ui.view,arch_db:report_substitute.substitution_report
msgid "Substitution Report"
msgstr "Informe de sustitución"

#. module: report_substitute
#: model_terms:ir.ui.view,arch_db:report_substitute.substitution_report_2
msgid "Substitution Report 2"
msgstr "Informe de sustitución 2"

#. module: report_substitute
#: model:ir.model.fields,field_description:report_substitute.field_ir_actions_report_substitution_rule__substitution_action_report_id
msgid "Substitution Report Action"
msgstr "Acción del informe de sustitución"

#. module: report_substitute
#: model:ir.model.fields,field_description:report_substitute.field_ir_actions_report__action_report_substitution_rule_ids
#: model_terms:ir.ui.view,arch_db:report_substitute.ir_actions_report_form_view
msgid "Substitution Rules"
msgstr "Reglas de sustitución"

#. module: report_substitute
#. odoo-python
#: code:addons/report_substitute/models/ir_actions_report_substitution_rule.py:0
#, python-format
msgid "Substitution infinite loop detected"
msgstr "Detectado bucle infinito de sustitución"

#~ msgid "Email composition wizard"
#~ msgstr "Asistente de redacción de correo electrónico"

#~ msgid "Last Modified on"
#~ msgstr "Última Modificación el"
Loading
Loading