Odoo bewaart de voor- en achternaam van een contactpersoon standaard in één veld. Soms wil je iemand in een mailtemplate juist alleen bij de voornaam aanspreken. Met een korte expressie in je QWeb-rapporten regel je dat.
De expressie
Splits het naam-veld op spaties en pak het eerste deel:
Variabele: ${object.partner_id.name.split()[0]}
QWeb-mailtemplate: <t t-out="object.partner_id.name.split()[0]"></t>
split() knipt de volledige naam op in losse woorden; [0] pakt het eerste woord, dus de voornaam.
Voorbeeld: aanhef in een offerte-mail
Onderstaand QWeb-blok zet “Beste [voornaam],” boven de tekst van een verkoopordermail:
<div style="margin: 0px; padding: 0px;">
<p style="box-sizing:border-box;margin: 0px; padding: 0px; font-size: 13px;">
<t t-set="doc_name" t-value="'offerte' if object.state in ('draft', 'sent') else 'order'"></t>
Beste <t t-out="object.partner_id.name.split()[0]"></t>,
<br><br>
Hierbij stuur ik je, zoals afgesproken, de link naar onze offerte toe.
<br>Deze kun je eenvoudig online inzien via de link in deze mail. In de PDF-versie van de offerte die je daar kunt downloaden zijn de uitgangspunten, de projectscope en de randvoorwaarden verder uitgewerkt.
<br><br>Is alles akkoord, dan bevestig je de offerte online.
<br><br>
Laat het me gerust weten als je nog vragen hebt.
<t t-if="not is_html_empty(object.user_id.signature)" data-oe-t-group-active="true">
<br><br>
<t t-out="object.user_id.signature or ''" data-oe-t-inline="true">--<br>Team Radical Fanatics</t>
</t>
<br><br>
</p>
</div>
Let op
- Werkt de voornaam uit meerdere woorden bestaat (bijvoorbeeld “Jan Willem”), dan krijg je alleen het eerste woord. Voor de meeste aanhefregels is dat prima.
- Heeft een contact geen naam, dan kan de expressie een fout geven. Vang dat in kritieke templates af met een fallback.
Ref: Odoo-forum: dynamic placeholder for only first name
Hulp nodig bij je Odoo-inrichting?
Loop je vast op mailtemplates of andere maatwerk-instellingen? Plan een Odoo-scan of neem contact op