I'm using background layout template and I have a requirement to show different header in all reports (PDF) depend on groups.
By the way: HTML Report is working..
So I did the below:
- I have created two security groups (base.group_header1 and base.group_header2), these group doesn't have any special access, I just only imported them and assigned user to them as per requirements.
- I have create a new custom module to inherit external_layout_boxed and applied the below code:
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<template id="external_layout_background_inherited" inherit_id="web.external_layout_background">
<!-- Header for group header1-->
<xpath expr="//div[@class='header o_background_header']" position="replace">
<div class="header o_background_header" groups="base.group_header1">
<div class="pull-right">
<h3 class="mt0 text-right" t-field="company.report_header"/>
</div>
<img t-if="company.logo" src="/show_different_header/static/src/img/logo1.png"
class="pull-left"/>
<div class="pull-left company_address">
<div>
<strong t-field="company.partner_id.name"/>
</div>
<span t-field="company.partner_id"
t-field-options='{"widget": "contact", "fields": ["address"], "no_marker": true}'/>
</div>
<div class="clearfix mb8"/>
</div>
<!-- Header for group header2-->
<div class="header o_background_header" groups="base.group_header2">
<div class="pull-right">
<h3 class="mt0 text-right" t-field="company.report_header"/>
</div>
<img t-if="company.logo" t-att-src="'data:image/png;base64,%s' % to_text(company.logo)"
class="pull-left"/>
<div class="pull-left company_address">
<div>
<strong t-field="company.partner_id.name"/>
</div>
<span t-field="company.partner_id"
t-field-options='{"widget": "contact", "fields": ["address"], "no_marker": true}'/>
</div>
<div class="clearfix mb8"/>
</div>
</xpath>
</template>
</data>
</odoo>
I have installed my module successfully but I can't see any header in any printed report so I checked the current user and it was added into header1 group.
I tried to remove the groups attribute (groups="base.group_header1") from first div and I was able to see the changes but it's applied to all users.
I tried to create a security group (group_header3) from my custom module and applied it to the first div
<div class="header o_background_header" groups="show_different_header.group_header3">
and assigned current user to the new created group but when I print any report, I can't see the header but once I removed the groups I was able to see the changes but it applied to all users.
I want to know how to use groups in inherited external_layout_boxed.