Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

0

How to get the language of the current logged user in a qweb report ( odoo 8 )

By
Tarek Mohamed Ibrahim
on 8/31/15, 11:22 AM 1,832 views

I created a qweb report and it worked successfully. When I came to translate it I added this code:

<template id="my_report_id">
    <t t-call="report.html_container">
        <t t-foreach="doc_ids" t-as="doc_id">
        <t t-raw="translate_doc(doc_id, doc_model, 'lang' , 'my_module.my_report_id_document')"/>
        </t>
    </t>
</template>

When I tried to run it I got the following error 


QWebException: ""'my model name' object has no attribute 'lang'" while evaluating
'doc.lang'" while evaluating
"translate_doc(doc_id, doc_model, 'lang' , 'my_module.my_report_id_document')"

I changed it to several choices , for example:

'partner_id.lang'

user.lang

instance.session.user_context.lang, as per this link 

with no success. 

The module I'm working on I created it from scratch and it does not depend on any other module. How to resolve this issue.  

0

Jérémy Kersten (jke)

--Jérémy Kersten (jke)--
2993
| 3 2 5
Jodoigne, Belgium
--Jérémy Kersten (jke)--

Jérémy is a member of the core R&D team since september 2013. He developed several projects for OpenERP version 8 including the eCommerce, the Google Calendar synchronization and the new product variants/configurator. Now, he manages Odoo website and themes for saas.

Jérémy Kersten (jke)
On 8/31/15, 4:29 PM

Hi,


instance.session.user_context.lang is in webclient (javascript) 


You want probably use  "request.lang"

But the method translate_doc take a field to specify the lang, not a lang directly...


In your case you should browse yourself in the correct lang the doc (with request.lang) and set translatable to True in the context


That should works, here the code in odoo...


if ctx.get('translatable') is True:
    qcontext['o'] = doc
else:
    # Reach the lang we want to translate the doc into
    ctx['lang'] = eval('doc.%s' % lang_field, {'doc': doc})
    qcontext['o'] = self.pool[model].browse(cr, uid, doc_id, context=ctx)

 

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

2 follower(s)

Stats

Asked: 8/31/15, 11:22 AM
Seen: 1832 times
Last updated: 8/31/15, 4:39 PM