[ADD] Add Module report_qweb_element_page_visibility
parent
03d0839be5
commit
4cdf22a0fd
|
@ -0,0 +1,77 @@
|
|||
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
|
||||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||
:alt: License: AGPL-3
|
||||
|
||||
===================================
|
||||
Report Qweb Element Page Visibility
|
||||
===================================
|
||||
|
||||
This module allows you to use 4 classes in QWEB reports:
|
||||
|
||||
- not-first-page: shows element in every page but first
|
||||
- not-last-page: shows element in every page but last
|
||||
- first-page: shows element only on first page
|
||||
- last-page: shows element only on last page
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
To use this module, you need to:
|
||||
|
||||
In the QWEB ``ir.ui.views`` used by your report,
|
||||
you can add an element with css class with any of the classes described above.
|
||||
For example if you need to improve invoice report header with
|
||||
invoice's number in every page but first, and sale order report header
|
||||
with order's name in every page but last, add this code to external_layout_header::
|
||||
|
||||
<t t-if="o._table=='account_invoice'">
|
||||
<div class="not-first-page">
|
||||
<span t-esc="o.number"/>
|
||||
</div>
|
||||
</t>
|
||||
<t t-if="o._table=='sale_order'">
|
||||
<div class="not-last-page">
|
||||
<span t-esc="o.name"/>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
|
||||
:alt: Try me on Runbot
|
||||
:target: https://runbot.odoo-community.org/runbot/143/8.0
|
||||
|
||||
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 smashing it by providing a detailed and welcomed feedback `here <https://github.com/OCA/reporting-engine/issues/new?body=module:%20
|
||||
report_qweb_element_page_visibility%0Aversion:%20
|
||||
8.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Contributors
|
||||
------------
|
||||
|
||||
* Nicola Malcontenti <nicola.malcontenti@agilebg.com>
|
||||
* Lorenzo Battistini <lorenzo.battistini@agilebg.com>
|
||||
* Alessio Gerace <alessio.gerace@agilebg.com>
|
||||
* Alex Comba <alex.comba@agilebg.com>
|
||||
|
||||
Maintainer
|
||||
----------
|
||||
|
||||
.. image:: https://odoo-community.org/logo.png
|
||||
:alt: Odoo Community Association
|
||||
:target: https://odoo-community.org
|
||||
|
||||
This module is maintained by the OCA.
|
||||
|
||||
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.
|
||||
|
||||
To contribute to this module, please visit http://odoo-community.org.
|
|
@ -0,0 +1,20 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
#########################################################################
|
||||
# #
|
||||
# Copyright (C) 2015 Agile Business Group #
|
||||
# #
|
||||
# This program is free software: you can redistribute it and/or modify #
|
||||
# it under the terms of the GNU Affero General Public License as #
|
||||
# published by the Free Software Foundation, either version 3 of the #
|
||||
# License, or (at your option) any later version. #
|
||||
# #
|
||||
# This program is distributed in the hope that it will be useful, #
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
||||
# GNU Affero General Public Licensefor more details. #
|
||||
# #
|
||||
# You should have received a copy of the #
|
||||
# GNU Affero General Public License #
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
|
||||
# #
|
||||
#########################################################################
|
|
@ -0,0 +1,37 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
#########################################################################
|
||||
# #
|
||||
# Copyright (C) 2015 Agile Business Group #
|
||||
# #
|
||||
# This program is free software: you can redistribute it and/or modify #
|
||||
# it under the terms of the GNU Affero General Public License as #
|
||||
# published by the Free Software Foundation, either version 3 of the #
|
||||
# License, or (at your option) any later version. #
|
||||
# #
|
||||
# This program is distributed in the hope that it will be useful, #
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
|
||||
# GNU Affero General Public Licensefor more details. #
|
||||
# #
|
||||
# You should have received a copy of the #
|
||||
# GNU Affero General Public License #
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. #
|
||||
# #
|
||||
#########################################################################
|
||||
|
||||
{
|
||||
'name': 'Report Qweb Element Page Visibility',
|
||||
'version': '8.0.1.0.0',
|
||||
'author': 'Agile Business Group, Odoo Community Association (OCA)',
|
||||
'category': 'Tools',
|
||||
"website": "https://odoo-community.org/",
|
||||
"license": "AGPL-3",
|
||||
"application": False,
|
||||
"installable": True,
|
||||
'data': [
|
||||
'views/layouts.xml',
|
||||
],
|
||||
'depends': [
|
||||
'report',
|
||||
],
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<template id="minimal_layout" inherit_id="report.minimal_layout">
|
||||
<xpath expr="//t[@t-if='subst is True']" position="replace">
|
||||
<t t-if="subst is True">
|
||||
<script>
|
||||
function subst() {
|
||||
var vars = {};
|
||||
var x = document.location.search.substring(1).split('&');
|
||||
for (var i in x) {
|
||||
var z = x[i].split('=', 2);
|
||||
vars[z[0]] = unescape(z[1]);
|
||||
}
|
||||
var x=['frompage', 'topage', 'page', 'webpage', 'section', 'subsection', 'subsubsection'];
|
||||
for (var i in x) {
|
||||
var y = document.getElementsByClassName(x[i]);
|
||||
for (var j=0; j<y.length; ++j)
|
||||
y[j].textContent = vars[x[i]];
|
||||
}
|
||||
var operations = {
|
||||
'not-first-page': function (elt) {
|
||||
elt.style.visibility = (vars.page === vars.frompage) ? "hidden" : "visible";
|
||||
},
|
||||
'not-last-page': function (elt) {
|
||||
elt.style.visibility = (vars.page === vars.topage) ? "hidden" : "visible";
|
||||
},
|
||||
'first-page': function (elt) {
|
||||
elt.style.visibility = (vars.page === vars.frompage) ? "visible" : "hidden";
|
||||
},
|
||||
'last-page': function (elt) {
|
||||
elt.style.visibility = (vars.page === vars.topage) ? "visible" : "hidden";
|
||||
},
|
||||
};
|
||||
for (var klass in operations) {
|
||||
var y = document.getElementsByClassName(klass);
|
||||
for (var j=0; j<y.length; ++j)
|
||||
operations[klass](y[j]);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</t>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
</data>
|
||||
</openerp>
|
Loading…
Reference in New Issue