R T
R T

Reputation: 75

Checking for Last Page in QWeb Reports in Odoo

Odoo v8 uses Qweb and we need to print the terms and conditions of sale on the last page of the invoice.

As I understand we need to test that it is the last page of the report and print some static HTML on this page.

Does anyone know how to test the last page and remove the header and footer from it to achieve what I am trying.

Or even another way of doing it.

Upvotes: 3

Views: 6059

Answers (1)

vaab
vaab

Reputation: 10122

In last version of odoo, version 8 (or saas-6), to enable special class names to do special things (as for instance a 'last-page' class name to trigger visibility), you should only modify report module, in static/src/js/subst.js, and add this code to the subst function:

var operations = {
    '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]);
}

In the QWEB ir.ui.views used by your report, you can then add anywhere (header, body, footer), code with:

<div class="last-page">
    My content only displayed if on last page.
<div>

EDIT: An OpenERP/Odoo addon to add this magic class last-page easily was implemented as an example: https://github.com/0k/report_extended

Upvotes: 0

Related Questions