trytond: Allow to get fuzzy translation (issue243004)

1 view
Skip to first unread message

cedric...@b2ck.com

unread,
Feb 22, 2012, 5:23:08 AM2/22/12
to cedric...@b2ck.com, re...@tryton-rietveld.appspotmail.com, tryto...@googlegroups.com
Reviewers: ,

Please review this at http://codereview.tryton.org/243004/

Affected files:
M trytond/ir/translation.py


Index: trytond/ir/translation.py
===================================================================

--- a/trytond/ir/translation.py
+++ b/trytond/ir/translation.py
@@ -181,14 +181,24 @@
name = record.model + ',' + field_name
translations[record.id] = self.get_source(name, ttype,
lang)
return translations
- for obj_id in ids:
- trans = self.get((lang, ttype, name, obj_id))
- if trans is not None:
- translations[obj_id] = trans
- else:
- to_fetch.append(obj_id)
+ # Don't use cache for fuzzy translation
+ if not Transaction().context.get(
+ 'fuzzy_translation', False):
+ for obj_id in ids:
+ trans = self.get((lang, ttype, name, obj_id))
+ if trans is not None:
+ translations[obj_id] = trans
+ else:
+ to_fetch.append(obj_id)
+ else:
+ to_fetch = ids
if to_fetch:
cursor = Transaction().cursor
+ fuzzy_sql = 'AND fuzzy = %s '
+ fuzzy = [False]
+ if Transaction().context.get('fuzzy_translation', False):
+ fuzzy_sql = ''
+ fuzzy = []
for i in range(0, len(to_fetch), cursor.IN_MAX):
sub_to_fetch = to_fetch[i:i + cursor.IN_MAX]
red_sql, red_ids = reduce_ids('res_id', sub_to_fetch)
@@ -199,11 +209,14 @@
'AND name = %s ' \
'AND value != \'\' ' \
'AND value IS NOT NULL ' \
- 'AND fuzzy = %s ' \
+ + fuzzy_sql + \
'AND ' + red_sql,
- [lang, ttype, name, False] + red_ids)
+ [lang, ttype, name] + fuzzy + red_ids)
for res_id, value in cursor.fetchall():
- self.add((lang, ttype, name, res_id), value)
+ # Don't store fuzzy translation in cache
+ if not Transaction().context.get(
+ 'fuzzy_translation', False):
+ self.add((lang, ttype, name, res_id), value)
translations[res_id] = value
for res_id in ids:
if res_id not in translations:

Reply all
Reply to author
Forward
0 new messages