EDIT: Thanks to Christoph for the answer, post refactored with the solution
Using Odoo 18 Entreprise, the goal is to modify the 'documents.FileViewer' QWeb template of Odoo Documents module, simply by adding the content 'TEST !' in the file viewer.
The QWeb template is present in 'addons/documents/static/src/attachments/document_file_viewer.xml', and inherits from 'web.FileViewer' using 'primary' inheritance mode.
In order to validate that we can effectively extend this template, the aim is to add a simple text as a proof of success. The 'documents.FileViewer' template inherit from 'web.FileViewer' template available in 'odoo/addons/web/static/src/core/file_viewer/file_viewer.xml', which contains the div below
<div class="flex-grow-1"/>
Then our goal is to add the sequence below after the div above
<span>TEST !</span>
Thus, our QWeb template is as below
<?xml version="1.0" encoding="UTF-8"?>
<templates>
<t-inherit="documents.FileViewer" t-inherit-mode="extension" t-name="al_documents.FileViewer">
<xpath expr="//div[contains(@class, 'flex-grow-1')]" position="after">
<span>TEST !</span>
</xpath>
</t>
</templates>
As can be read in the QWeb documentation, an in-place transformation (extension inheritance) will be applied on the existing 'documents.FileViewer' template. In this context 't-name' is not the name of a new template ! It is an optional reference added as a comment in the transformed template to retrace inheritance.
As the Odoo Documents module manifest specifies 'documents/static/src/attachments/**/*' in the 'web.assets_backend', we will add our template in the same asset.
'assets': {
'web.assets_backend': [
'al_documents/static/src/xml/patch_document_file_viewer.xml',
],
},
'depends':['base', 'web', 'documents'],