← Back to team overview

openerp-community team mailing list archive

Reclaiming context


Hello community,

While debugging yet another translation error in Odoo 7.0, I came up
with a simple way to reclaim lost contexts in functions.

The bug I was fighting is one where workflow actions do not pass any
contexts. This bug manifests as chattr messages in english when using
the workflows.

As I don't have the time to fix it in the server, nor am I ready to jump
through the hoops to get that fix integreated in the Odoo, I found a way
to fix this bug in my module.

The way I countered the bug in my module is in the write function where
I would usually start with

    if context is None:
        context = {}


    context = context or {}

In this case it was None since the workflow mechanism would not have a
context. I saw that since I have the user id, I can still get the
context for this user.

I replaced the familiar context check with:

    context = context or self.pool['res.users'].context_get(cr, uid)

I find this simple enough. The line is under 80 characters and it can
replace the usual context check.

Furthermore it assures that everything done within this function and its
parent functions have at least the language in the context, something I
have been struggling with a lot lately.

What does the community think of this as a possible standard for
modules, replacing the usual if context is None lines.

Are there possible drawbacks to using this line?

Thank you for you input!

Sandy Carter
Consultant en logiciel libre
Développeur OpenERP
Savoir-faire Linux Inc.
514-276-5468 poste 142

Attachment: signature.asc
Description: OpenPGP digital signature

Follow ups