=== modified file 'bin/addons/base/ir/ir_translation.py' --- bin/addons/base/ir/ir_translation.py 2011-01-07 15:17:35 +0000 +++ bin/addons/base/ir/ir_translation.py 2012-04-08 23:43:27 +0000 @@ -155,23 +155,25 @@ if isinstance(types, basestring): types = (types,) if source: - query = """SELECT value + query = """SELECT value, + CASE WHEN type in %s THEN 1 ELSE 0 END as priority FROM ir_translation WHERE lang=%s - AND type in %s AND src=%s""" - params = (lang or '', types, tools.ustr(source)) + params = (types, lang or '', tools.ustr(source)) if name: query += " AND name=%s" params += (tools.ustr(name),) + query += " ORDER BY priority " cr.execute(query, params) else: - cr.execute("""SELECT value + cr.execute("""SELECT value, + CASE WHEN type in %s THEN 1 ELSE 0 END as priority FROM ir_translation WHERE lang=%s - AND type in %s - AND name=%s""", - (lang or '', types, tools.ustr(name))) + AND name=%s + ORDER BY priority""", + (types, lang or '', tools.ustr(name))) res = cr.fetchone() trad = res and res[0] or u'' if source and not trad: