Language path mixin
Setting the partner's language in RML reports
Language path mixin
This is a technical module to restore the possibility of Odoo to print RML reports in other languages than the user's language (for instance, the customer's language in the case of a sale order).
Odoo 8.0 has lost that capability due to an unlucky combination of technical aspects of the deprecated RML report functionality and the new API. While the static content of the report is translated fine, any translatable fields will still be rendered in the language of the user.
See https://github.com/odoo/odoo/issues/7301 for the original bug report.
This module provides a tool for developers to work around this bug in their Python code.
Configuration
With a dependency on this module, you can have any model inherit from the mixin model in your python class definition. You can then assign your class a _language_path member to indicate where to find the language into which its reports are to be translated. See the following code example:
class SaleOrder(models.Model): _name = 'sale.order' _inherit = ['sale.order', 'language.path.mixin'] _language_path = 'partner_id.lang'
In RML reports for such a model, you can then iterate over the records in the correct language using
[[ repeatIn(objects.with_language_path(), 'o') ]]
Known issues / Roadmap
- Kudos if you find a way to do this more elegantly, preferably with a simple bugfix in the Odoo core
Bug Tracker
Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback here.
Credits
Contributors
- Stefan Rijnhart <stefan@therp.nl>
- Holger Brunn <hbrunn@therp.nl>
Maintainer
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.
To contribute to this module, please visit http://odoo-community.org.
Once the user has seen at least one product this snippet will be visible.