Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
40ab5ac
[ADD] - report substitute
sbejaoui Jul 11, 2019
b15d39d
[ADD] - Add readme
sbejaoui Jul 22, 2019
006b034
[ADD] - Add unit tests
sbejaoui Jul 22, 2019
24991f0
[FIX] - missing method param
sbejaoui Jul 23, 2019
fa31c9d
[FIX] - prevent substitution loop
sbejaoui Jul 23, 2019
6f8b341
[IMP] - manage subtitute report for multi-action
sbejaoui Jul 25, 2019
5f4c892
[IMP] - manage substitution for mail.thread message_post_with_template
sbejaoui Jul 25, 2019
c1aa1d0
[IMP] - add unit tests
sbejaoui Jul 26, 2019
c1e11ac
[FIX] - manage the case where mail.compose.message is triggered from …
sbejaoui Aug 2, 2019
c184e2b
[FIX] - Fix typo
sbejaoui Oct 1, 2019
e23f5f1
[12.0][IMP] - Add check for substitution infinite loop
sbejaoui Oct 1, 2019
5a60e34
[UPD] Update report_substitute.pot
oca-travis Oct 21, 2019
b3f5a97
[UPD] README.rst
OCA-git-bot Oct 21, 2019
e9ba970
[ADD] icon.png
OCA-git-bot Oct 21, 2019
b093d77
[13.0][MIG] - report_substitute migration
sbejaoui Nov 6, 2020
a741b34
[ADD] - add sbejaoui as maintainer for report_substitute
sbejaoui Nov 6, 2020
d4232c2
[MIG] report_substitute: Migration to 15.0
matiasperalta1 Sep 12, 2022
c9fc169
[MIG] report_substitute: Migration to 16.0
matiasperalta1 Dec 14, 2022
942b494
[UPD] Update report_substitute.pot
May 11, 2023
8becf88
[UPD] README.rst
OCA-git-bot May 11, 2023
cea4e21
[UPD] README.rst
OCA-git-bot Sep 3, 2023
a2c93d3
Added translation using Weblate (Spanish)
Ivorra78 Sep 7, 2023
49741a6
Translated using Weblate (Spanish)
Ivorra78 Sep 7, 2023
fe405aa
[FIX] report_substitute: support for email
SodexisTeam Oct 12, 2023
f08e818
[BOT] post-merge updates
OCA-git-bot Dec 8, 2023
6cfd093
[IMP] report_substitute: pre-commit auto fixes
lef-adhoc Dec 15, 2023
5a20fe1
[MIG] report_substitute: Migration to 17.0
lef-adhoc Dec 15, 2023
3c7e961
[UPD] Update report_substitute.pot
May 23, 2024
70e32a0
[BOT] post-merge updates
OCA-git-bot May 23, 2024
5ca1c66
Update translation files
weblate May 23, 2024
60a291d
Added translation using Weblate (Italian)
mymage May 24, 2024
2231a45
Translated using Weblate (Italian)
mymage May 24, 2024
58e5b56
[MIG] report_substitute: Migration to 18.0
matiasperalta1 Oct 28, 2024
e0b446b
[FIX] report_substitute: handle substitution report with non-qweb-pdf…
samirGuesmi Jun 12, 2025
73629a4
[FIX] report_substitute: ensure substitution_handler returns the corr…
sbejaoui Jun 13, 2025
db4145f
[FIX] report_substitute: avoid write over the mail template
augusto-weiss Mar 17, 2025
4c3f0ff
[UPD] Update report_substitute.pot
Sep 10, 2025
beb43d8
[BOT] post-merge updates
OCA-git-bot Sep 10, 2025
d7ce58b
[UPD] Update report_substitute.pot
Dec 16, 2025
f4d789c
Update translation files
weblate Dec 16, 2025
5f44e12
[IMP] report_substitute: pre-commit auto fixes
domenicostragapede Aug 5, 2026
86f382b
[19.0][MIG] report_substitute: Migration to 19.0
domenicostragapede Aug 5, 2026
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/19.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-19-0/reporting-engine-19-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=19.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:%2019.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/19.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"],
}
32 changes: 32 additions & 0 deletions report_substitute/demo/action_report.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template id="substitution_report">
<div class="page">Substitution Report</div>
</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">
<div class="page">Substitution Report 2</div>
</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:ir.model.fields,field_description:report_substitute.field_report_pdf_form__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
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