Browse Source

Merge pull request #54 from syleam/9.0-migrate-report_qweb_element_page_visibility

9.0 migrate report_qweb_element_page_visibility module
pull/77/head
Alexandre Fayolle 8 years ago
committed by GitHub
parent
commit
6420ea98fa
  1. 77
      report_qweb_element_page_visibility/README.rst
  2. 3
      report_qweb_element_page_visibility/__init__.py
  3. 20
      report_qweb_element_page_visibility/__openerp__.py
  4. BIN
      report_qweb_element_page_visibility/static/description/icon.png
  5. 46
      report_qweb_element_page_visibility/views/layouts.xml

77
report_qweb_element_page_visibility/README.rst

@ -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.

3
report_qweb_element_page_visibility/__init__.py

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
# Copyright 2015 Agile Business Group
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

20
report_qweb_element_page_visibility/__openerp__.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Copyright 2015 Agile Business Group
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
'name': 'Report Qweb Element Page Visibility',
'version': '9.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',
],
}

BIN
report_qweb_element_page_visibility/static/description/icon.png

After

Width: 300  |  Height: 300  |  Size: 17 KiB

46
report_qweb_element_page_visibility/views/layouts.xml

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<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('&amp;');
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&lt;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&lt;y.length; ++j)
operations[klass](y[j]);
}
}
</script>
</t>
</xpath>
</template>
</odoo>
Loading…
Cancel
Save