This commit is contained in:
2026-05-21 14:20:51 +02:00
parent 900d733fcd
commit 4b9621a5f0
2 changed files with 16 additions and 0 deletions

View File

@@ -31,6 +31,16 @@ Derniere mise a jour: `2026-04-07`
- `modules/account_invoice/invoice.fodt` - `modules/account_invoice/invoice.fodt`
- `modules/sale/sale.fodt` - `modules/sale/sale.fodt`
- Reprendre en priorite la syntaxe Relatorio deja validee dans ces templates. - Reprendre en priorite la syntaxe Relatorio deja validee dans ces templates.
- Pour creer un nouveau report `.fodt`, copier d'abord un template voisin qui
fonctionne deja dans le meme module, puis remplacer uniquement les blocs
metier necessaires. Ne pas demarrer avec un FODT minimal construit a la main:
Relatorio et LibreOffice attendent une enveloppe ODT complete (`office:meta`,
settings, namespaces `draw`/`xlink`, styles, master pages, header/footer). Un
XML valide peut quand meme echouer au parsing Relatorio ou produire un rendu
inutilisable.
- Exemple: pour `account/general_ledger_detail.fodt`, partir de
`account/general_ledger.fodt` et adapter les colonnes plutot que reconstruire
la structure ODT.
### TR-002 - Eviter les expressions Genshi trop complexes dans le `.fodt` ### TR-002 - Eviter les expressions Genshi trop complexes dans le `.fodt`

View File

@@ -16,6 +16,12 @@ Scope: templates Relatorio + ponts `report_*` Python.
## 2) Pratiques templates Relatorio ## 2) Pratiques templates Relatorio
- Preferer des proprietes Python `report_*` stables sur le modele plutot que des expressions Genshi complexes. - Preferer des proprietes Python `report_*` stables sur le modele plutot que des expressions Genshi complexes.
- Pour creer un nouveau report `.fodt`, partir d'un template voisin qui fonctionne
deja dans le meme module, puis remplacer seulement le contenu metier
necessaire. Eviter les FODT minimaux faits a la main: Relatorio et
LibreOffice attendent une enveloppe ODT complete (`office:meta`, settings,
namespaces comme `draw`/`xlink`, styles, master pages), sinon le parsing ou le
rendu peut casser.
- Pour `stock.shipment.in`, privilegier `records[0].report_*` dans le template. - Pour `stock.shipment.in`, privilegier `records[0].report_*` dans le template.
- Si un placeholder s'affiche en brut dans le PDF: - Si un placeholder s'affiche en brut dans le PDF:
- verifier que c'est un vrai `text:placeholder` ODF et pas du texte simple. - verifier que c'est un vrai `text:placeholder` ODF et pas du texte simple.