Different footer in first page odoo report

753 views Asked by At

How to keep condition for different footer in odoo qweb reports for v9 ?

I want to keep <div> on first page only instead of all the pages.

1

There are 1 answers

0
Naitik On

Just add the below code into your report <template> code file.

<template id="report_custom_invoice" inherit_id="account.external_layout_footer">
... your custom report code
</template>

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