اگر تا حالا با قالب های ایمیل در Odoo کار کرده باشی، میدونی که همه چیز از طریق QWeb template ها کنترل میشه. ماجرای من دقیقا همین بود: میخواستم فونت همه ایمیل ها رو از ریشه تغییر بدم و به جای فونت پیش فرض، فونت Tahoma استفاده کنم.
برای این کار باید سراغ فایل اصلی یعنی mail_templates_email_layouts.xml بری. این فایل داخل ماژول mail هست و تمام ایمیل ها از همین layout استفاده میکنن. پس اگر اینجا تغییر بدی، همه ایمیل ها تحت تاثیر قرار میگیرن.
مرحله ۱: ساخت ماژول سفارشی
یک ماژول جدید بساز و در فایل manifest ماژول بنویس:
'depends': ['mail'], 'data': ['views/mail_templates_email_layouts.xml'],
این باعث میشه ماژولت بعد از ماژول mail لود بشه.
مرحله ۲: override کردن قالب
داخل فایل views/mail_templates_email_layouts.xml کدی مثل این بذار:
<odoo>
<template id="custom_mail_layout_rtl" inherit_id="mail.mail_notification_layout">
<xpath expr="//html/body" position="attributes">
<attribute name="style">font-family: Tahoma, sans-serif, Arial; color:#454748;</attribute>
<attribute name="dir">RTL</attribute>
</xpath>
<xpath expr="//div[@t-out='message.body']" position="attributes">
<attribute name="style">font-family: Tahoma, sans-serif, Arial;</attribute>
</xpath>
</template>
</odoo>
این کد کاری میکنه که فونت Tahoma به صورت ریشه ای روی همه ایمیل ها اعمال بشه و حتی جهت متن هم راست به چپ بشه.
مرحله ۳: تست تغییرات
یک ایمیل جدید بساز و بفرست. اگر تغییرات رو دیدی، یعنی override درست اعمال شده. برای اطمینان میتونی اول رنگ یا سایز فونت رو تغییر بدی تا مطمئن بشی تغییرات واقعا اعمال شدن.