[ADD] report_display_name_in_footer

This commit is contained in:
Eduardo De Miguel
2024-06-13 13:19:47 +02:00
parent 45a5a018ae
commit 718b32087d
16 changed files with 864 additions and 0 deletions

View File

@@ -0,0 +1,160 @@
=============================
Report Display Name in Footer
=============================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:377040a7fd82c8e62b3a5e6c20ce1456bc7fe3976f52e826b2f197c64c3d5487
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
:target: https://odoo-community.org/page/development-status
:alt: Alpha
.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
:alt: License: LGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github
:target: https://github.com/OCA/reporting-engine/tree/16.0/report_display_name_in_footer
: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-16-0/reporting-engine-16-0-report_display_name_in_footer
: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=16.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
This module extends the pagination functionality in reports to display
the name of the document on each page of PDFs, allowing you to know
which document each page belongs to and in what order they should
appear.
Pagination will appear on the left side and document name on the right
side of the footer.
.. IMPORTANT::
This is an alpha version, the data model and design can change at any time without warning.
Only for development or testing purpose, do not use in production.
`More details on development status <https://odoo-community.org/page/development-status>`_
**Table of contents**
.. contents::
:local:
Use Cases / Context
===================
Printing the name of the document on footer is only allowed by default
to invoices by setting ``account.display_name_in_footer_models`` to
True.
This module was developed because there is no way to print other
document names on each page of reports.
It will be useful for you if you want to print the name of the document
in the footer pages to quickly know what page belongs to what document.
Also you can define what documents will have the document name in its
footer.
Configuration
=============
To configure this module, you need to:
1. Go to System parameters and create or edit
``report.display_name_in_footer_models`` parameter.
2. Add desired model names separated by comma.
- If you want to print name on all reports, just write 'all' on the
value.
- If you want to exclude certain models, add '-' before model name.
3. Examples:
- Only few models: sale.order,purchase.order,stock.picking
- All models: all
- All models except two: all,-sale.order,-purchase.order
4. The field printed in the report will be *name* for any type of
document. If your document doesn't have this field, please exclude
from the list with '-' and the name of the model.
5. Compatible document layout:
- Light
- Boxed
- Striped
6. Compatible report types:
- PDF
Usage
=====
To use this module, you need to:
1. Go to System Parameters.
2. Add your desired models or use 'all' to show document name on all
type of documents.
3. Print a report for you desired model.
4. Check Footer to see document name.
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_display_name_in_footer%0Aversion:%2016.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
-------
* Moduon
Contributors
------------
- Eduardo de Miguel (`Moduon <https://www.moduon.team/>`__)
- Rafael Blasco (`Moduon <https://www.moduon.team/>`__)
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-Shide| image:: https://github.com/Shide.png?size=40px
:target: https://github.com/Shide
:alt: Shide
.. |maintainer-rafaelbn| image:: https://github.com/rafaelbn.png?size=40px
:target: https://github.com/rafaelbn
:alt: rafaelbn
Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-Shide| |maintainer-rafaelbn|
This module is part of the `OCA/reporting-engine <https://github.com/OCA/reporting-engine/tree/16.0/report_display_name_in_footer>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -0,0 +1 @@
from . import models

View File

@@ -0,0 +1,23 @@
# Copyright 2024 Moduon Team S.L.
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl-3.0)
{
"name": "Report Display Name in Footer",
"summary": "Show document name in report footer",
"version": "16.0.1.0.0",
"development_status": "Alpha",
"category": "Tools",
"website": "https://github.com/OCA/reporting-engine",
"author": "Moduon, Odoo Community Association (OCA)",
"maintainers": ["Shide", "rafaelbn"],
"license": "LGPL-3",
"application": False,
"installable": True,
"depends": [
"web",
],
"data": [
"data/report_data.xml",
"views/report_templates.xml",
],
}

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="0">
<record id="display_name_in_footer_models_param" model="ir.config_parameter">
<field name="key">report.display_name_in_footer_models</field>
<field name="value">all</field>
</record>
</odoo>

View File

@@ -0,0 +1 @@
from . import ir_actions_report

View File

@@ -0,0 +1,21 @@
from odoo import models
class IrActionsReport(models.Model):
_inherit = "ir.actions.report"
def _render_qweb_pdf(self, report_ref, res_ids=None, data=None):
dnf_models = set(
self.env["ir.config_parameter"]
.sudo()
.get_param("report.display_name_in_footer_models", default="")
.replace(" ", "")
.split(",")
)
report_model = self._get_report(report_ref).model
if (
report_model in dnf_models or "all" in dnf_models
) and f"-{report_model}" not in dnf_models:
data = data and dict(data) or {}
data.update({"display_name_in_footer": True})
return super()._render_qweb_pdf(report_ref, res_ids=res_ids, data=data)

View File

@@ -0,0 +1,29 @@
To configure this module, you need to:
1. Go to System parameters and create or edit `report.display_name_in_footer_models`
parameter.
2. Add desired model names separated by comma.
- If you want to print name on all reports, just write 'all' on the value.
- If you want to exclude certain models, add '-' before model name.
3. Examples:
- Only few models: sale.order,purchase.order,stock.picking
- All models: all
- All models except two: all,-sale.order,-purchase.order
4. The field printed in the report will be _name_ for any type of document. If your
document doesn't have this field, please exclude from the list with '-' and the name
of the model.
5. Compatible document layout:
- Light
- Boxed
- Striped
6. Compatible report types:
- PDF

View File

@@ -0,0 +1,10 @@
Printing the name of the document on footer is only allowed by default to invoices by
setting `account.display_name_in_footer_models` to True.
This module was developed because there is no way to print other document names on each
page of reports.
It will be useful for you if you want to print the name of the document in the footer
pages to quickly know what page belongs to what document.
Also you can define what documents will have the document name in its footer.

View File

@@ -0,0 +1,2 @@
- Eduardo de Miguel ([Moduon](https://www.moduon.team/))
- Rafael Blasco ([Moduon](https://www.moduon.team/))

View File

@@ -0,0 +1,6 @@
This module extends the pagination functionality in reports to display the name of the
document on each page of PDFs, allowing you to know which document each page belongs to
and in what order they should appear.
Pagination will appear on the left side and document name on the right side of the
footer.

View File

@@ -0,0 +1,6 @@
To use this module, you need to:
1. Go to System Parameters.
2. Add your desired models or use 'all' to show document name on all type of documents.
3. Print a report for you desired model.
4. Check Footer to see document name.

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,496 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
<title>Report Display Name in Footer</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic, pre.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="report-display-name-in-footer">
<h1 class="title">Report Display Name in Footer</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:377040a7fd82c8e62b3a5e6c20ce1456bc7fe3976f52e826b2f197c64c3d5487
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Alpha" src="https://img.shields.io/badge/maturity-Alpha-red.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/licence-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/reporting-engine/tree/16.0/report_display_name_in_footer"><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-16-0/reporting-engine-16-0-report_display_name_in_footer"><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=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module extends the pagination functionality in reports to display
the name of the document on each page of PDFs, allowing you to know
which document each page belongs to and in what order they should
appear.</p>
<p>Pagination will appear on the left side and document name on the right
side of the footer.</p>
<div class="admonition important">
<p class="first admonition-title">Important</p>
<p class="last">This is an alpha version, the data model and design can change at any time without warning.
Only for development or testing purpose, do not use in production.
<a class="reference external" href="https://odoo-community.org/page/development-status">More details on development status</a></p>
</div>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#use-cases-context" id="toc-entry-1">Use Cases / Context</a></li>
<li><a class="reference internal" href="#configuration" id="toc-entry-2">Configuration</a></li>
<li><a class="reference internal" href="#usage" id="toc-entry-3">Usage</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-4">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-5">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-6">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-7">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-8">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="use-cases-context">
<h1><a class="toc-backref" href="#toc-entry-1">Use Cases / Context</a></h1>
<p>Printing the name of the document on footer is only allowed by default
to invoices by setting <tt class="docutils literal">account.display_name_in_footer_models</tt> to
True.</p>
<p>This module was developed because there is no way to print other
document names on each page of reports.</p>
<p>It will be useful for you if you want to print the name of the document
in the footer pages to quickly know what page belongs to what document.</p>
<p>Also you can define what documents will have the document name in its
footer.</p>
</div>
<div class="section" id="configuration">
<h1><a class="toc-backref" href="#toc-entry-2">Configuration</a></h1>
<p>To configure this module, you need to:</p>
<ol class="arabic simple">
<li>Go to System parameters and create or edit
<tt class="docutils literal">report.display_name_in_footer_models</tt> parameter.</li>
<li>Add desired model names separated by comma.<ul>
<li>If you want to print name on all reports, just write all on the
value.</li>
<li>If you want to exclude certain models, add - before model name.</li>
</ul>
</li>
<li>Examples:<ul>
<li>Only few models: sale.order,purchase.order,stock.picking</li>
<li>All models: all</li>
<li>All models except two: all,-sale.order,-purchase.order</li>
</ul>
</li>
<li>The field printed in the report will be <em>name</em> for any type of
document. If your document doesnt have this field, please exclude
from the list with - and the name of the model.</li>
<li>Compatible document layout:<ul>
<li>Light</li>
<li>Boxed</li>
<li>Striped</li>
</ul>
</li>
<li>Compatible report types:<ul>
<li>PDF</li>
</ul>
</li>
</ol>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#toc-entry-3">Usage</a></h1>
<p>To use this module, you need to:</p>
<ol class="arabic simple">
<li>Go to System Parameters.</li>
<li>Add your desired models or use all to show document name on all
type of documents.</li>
<li>Print a report for you desired model.</li>
<li>Check Footer to see document name.</li>
</ol>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-4">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/reporting-engine/issues">GitHub Issues</a>.
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
<a class="reference external" href="https://github.com/OCA/reporting-engine/issues/new?body=module:%20report_display_name_in_footer%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#toc-entry-5">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#toc-entry-6">Authors</a></h2>
<ul class="simple">
<li>Moduon</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-7">Contributors</a></h2>
<ul class="simple">
<li>Eduardo de Miguel (<a class="reference external" href="https://www.moduon.team/">Moduon</a>)</li>
<li>Rafael Blasco (<a class="reference external" href="https://www.moduon.team/">Moduon</a>)</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-8">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<p>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.</p>
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainers</a>:</p>
<p><a class="reference external image-reference" href="https://github.com/Shide"><img alt="Shide" src="https://github.com/Shide.png?size=40px" /></a> <a class="reference external image-reference" href="https://github.com/rafaelbn"><img alt="rafaelbn" src="https://github.com/rafaelbn.png?size=40px" /></a></p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/reporting-engine/tree/16.0/report_display_name_in_footer">OCA/reporting-engine</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,95 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template
id="external_layout_striped_display_name_on_footer"
inherit_id="web.external_layout_striped"
priority="999"
>
<xpath
expr="//div[@t-field='company.report_footer']/../..//span[hasclass('topage')]/.."
position="attributes"
>
<attribute name="class" add="float-start" separator=" " />
</xpath>
<xpath
expr="//div[@t-field='company.report_footer']/../..//span[@t-field='o.name']/.."
position="attributes"
>
<attribute name="class" add="float-end" separator=" " />
</xpath>
<xpath expr="//div[@t-field='company.report_footer']/.." position="after">
<div>
<xpath
expr="//div[@t-field='company.report_footer']/../..//span[hasclass('topage')]/.."
position="move"
/>
<xpath
expr="//div[@t-field='company.report_footer']/../..//span[@t-field='o.name']/.."
position="move"
/>
</div>
</xpath>
</template>
<template
id="external_layout_boxed_display_name_on_footer"
inherit_id="web.external_layout_boxed"
priority="999"
>
<xpath
expr="//div[@t-field='company.report_footer']/..//span[hasclass('topage')]/.."
position="attributes"
>
<attribute name="class" add="float-start" separator=" " />
</xpath>
<xpath
expr="//div[@t-field='company.report_footer']/..//span[@t-field='o.name']/.."
position="attributes"
>
<attribute name="class" add="float-end" separator=" " />
</xpath>
<xpath expr="//div[@t-field='company.report_footer']/.." position="inside">
<div>
<xpath
expr="//div[@t-field='company.report_footer']/..//span[hasclass('topage')]/.."
position="move"
/>
<xpath
expr="//div[@t-field='company.report_footer']/..//span[@t-field='o.name']/.."
position="move"
/>
</div>
</xpath>
</template>
<template
id="external_layout_standard_display_name_on_footer"
inherit_id="web.external_layout_standard"
priority="999"
>
<xpath
expr="//div[@t-field='company.report_footer']/../..//span[hasclass('topage')]/.."
position="attributes"
>
<attribute name="class" add="float-start" separator=" " />
</xpath>
<xpath
expr="//div[@t-field='company.report_footer']/../..//span[@t-field='o.name']/.."
position="attributes"
>
<attribute name="class" add="float-end" separator=" " />
</xpath>
<xpath expr="//div[@t-field='company.report_footer']/.." position="after">
<div>
<xpath
expr="//div[@t-field='company.report_footer']/../..//span[hasclass('topage')]/.."
position="move"
/>
<xpath
expr="//div[@t-field='company.report_footer']/../..//span[@t-field='o.name']/.."
position="move"
/>
</div>
</xpath>
</template>
</odoo>

View File

@@ -0,0 +1 @@
../../../../report_display_name_in_footer

View File

@@ -0,0 +1,6 @@
import setuptools
setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)