copy translation from template for issue1025

This commit is contained in:
Korbinian Preisler
2009-05-14 07:49:56 +02:00
parent c19eb81c45
commit 41a2986d88
2 changed files with 118 additions and 4 deletions
+47
View File
@@ -99,6 +99,7 @@ class TypeTemplate(ModelSQL, ModelView):
:return: id of the type created
'''
type_obj = self.pool.get('account.account.type')
lang_obj = self.pool.get('ir.lang')
if template2type is None:
template2type = {}
@@ -112,6 +113,17 @@ class TypeTemplate(ModelSQL, ModelView):
vals['parent'] = parent_id
new_id = type_obj.create(cursor, user, vals, context=context)
ctx = context.copy()
for lang in lang_obj.get_translatable_languages(cursor, user,
context=context):
ctx['language'] = lang
template.setLang(lang)
data = {}
for field in template._columns.keys():
if template._columns[field].translate:
data.update({field: template[field]})
if data:
type_obj.write(cursor, user, new_id, data, context=ctx)
template2type[template.id] = new_id
else:
new_id = template2type[template.id]
@@ -240,6 +252,7 @@ class Type(ModelSQL, ModelView):
into type. The dictionary is filled with new types
'''
template_obj = self.pool.get('account.account.type.template')
lang_obj = self.pool.get('ir.lang')
if template2type is None:
template2type = {}
@@ -252,6 +265,15 @@ class Type(ModelSQL, ModelView):
context=context, type=type)
if vals:
self.write(cursor, user, type.id, vals, context=context)
ctx = context.copy()
for lang in lang_obj.get_translatable_languages(cursor, user,
context=context):
ctx['language'] = lang
type.setLang(lang)
data = template_obj._get_type_value(cursor, user,
type.template, context=ctx, type=type)
if data:
self.write(cursor, user, type.id, data, context=ctx)
template2type[type.template.id] = type.id
for child in type.childs:
@@ -389,6 +411,7 @@ class AccountTemplate(ModelSQL, ModelView):
:return: id of the account created
'''
account_obj = self.pool.get('account.account')
lang_obj = self.pool.get('ir.lang')
if template2account is None:
template2account = {}
@@ -406,6 +429,17 @@ class AccountTemplate(ModelSQL, ModelView):
vals['type'] = template2type.get(template.type.id, False)
new_id = account_obj.create(cursor, user, vals, context=context)
ctx = context.copy()
for lang in lang_obj.get_translatable_languages(cursor, user,
context=context):
ctx['language'] = lang
template.setLang(lang)
data = {}
for field in template._columns.keys():
if template._columns[field].translate:
data.update({field: template[field]})
if data:
account_obj.write(cursor, user, new_id, data, context=ctx)
template2account[template.id] = new_id
else:
new_id = template2account[template.id]
@@ -872,6 +906,7 @@ class Account(ModelSQL, ModelView):
into type.
'''
template_obj = self.pool.get('account.account.template')
lang_obj = self.pool.get('ir.lang')
if template2account is None:
template2account = {}
@@ -891,6 +926,15 @@ class Account(ModelSQL, ModelView):
False)
if vals:
self.write(cursor, user, account.id, vals, context=context)
ctx = context.copy()
for lang in lang_obj.get_translatable_languages(cursor, user,
context=context):
ctx['language'] = lang
account.setLang(lang)
data = template_obj._get_account_value(cursor, user,
account.template, context=ctx, account=account)
if data:
self.write(cursor, user, account.id, data, context=ctx)
template2account[account.template.id] = account.id
for child in account.childs:
@@ -1747,6 +1791,9 @@ class CreateChartAccount(Wizard):
tax_rule_line_template_obj = \
self.pool.get('account.tax.rule.line.template')
context=context.copy()
context['language'] = 'en_US'
account_template = account_template_obj.browse(cursor, user,
datas['form']['account_template'], context=context)
+71 -4
View File
@@ -30,7 +30,7 @@ class CodeTemplate(ModelSQL, ModelView):
_name = 'account.tax.code.template'
_description = __doc__
name = fields.Char('Name', required=True)
name = fields.Char('Name', required=True, translate=True)
code = fields.Char('Code')
parent = fields.Many2One('account.tax.code.template', 'Parent')
childs = fields.One2Many('account.tax.code.template', 'parent', 'Children')
@@ -89,6 +89,7 @@ class CodeTemplate(ModelSQL, ModelView):
:return: id of the tax code created
'''
tax_code_obj = self.pool.get('account.tax.code')
lang_obj = self.pool.get('ir.lang')
if template2tax_code is None:
template2tax_code = {}
@@ -103,6 +104,17 @@ class CodeTemplate(ModelSQL, ModelView):
vals['parent'] = parent_id
new_id = tax_code_obj.create(cursor, user, vals, context=context)
ctx = context.copy()
for lang in lang_obj.get_translatable_languages(cursor, user,
context=context):
ctx['language'] = lang
template.setLang(lang)
data = {}
for field in template._columns.keys():
if template._columns[field].translate:
data.update({field: template[field]})
if data:
tax_code_obj.write(cursor, user, new_id, data, context=ctx)
template2tax_code[template.id] = new_id
else:
new_id = template2tax_code[template.id]
@@ -122,7 +134,8 @@ class Code(ModelSQL, ModelView):
_name = 'account.tax.code'
_description = __doc__
name = fields.Char('Name', size=None, required=True, select=1)
name = fields.Char('Name', size=None, required=True, select=1,
translate=True)
code = fields.Char('Code', size=None, select=1)
active = fields.Boolean('Active', select=2)
company = fields.Many2One('company.company', 'Company', required=True)
@@ -257,6 +270,7 @@ class Code(ModelSQL, ModelView):
tax code. The dictionary is filled with new tax codes
'''
template_obj = self.pool.get('account.tax.code.template')
lang_obj = self.pool.get('ir.lang')
if template2tax_code is None:
template2tax_code = {}
@@ -269,6 +283,15 @@ class Code(ModelSQL, ModelView):
code.template, context=context, code=code)
if vals:
self.write(cursor, user, code.id, vals, context=context)
ctx = context.copy()
for lang in lang_obj.get_translatable_languages(cursor, user,
context=context):
ctx['language'] = lang
code.setLang(lang)
data = template_obj._get_tax_code_value(cursor, user,
code.template, context=ctx, code=code)
if data:
self.write(cursor, user, code.id, data, context=ctx)
template2tax_code[code.template.id] = code.id
for child in code.childs:
@@ -466,6 +489,7 @@ class TaxTemplate(ModelSQL, ModelView):
:return: id of the tax created
'''
tax_obj = self.pool.get('account.tax')
lang_obj = self.pool.get('ir.lang')
if template2tax is None:
template2tax = {}
@@ -509,6 +533,17 @@ class TaxTemplate(ModelSQL, ModelView):
vals['credit_note_tax_code'] = False
new_id = tax_obj.create(cursor, user, vals, context=context)
ctx = context.copy()
for lang in lang_obj.get_translatable_languages(cursor, user,
context=context):
ctx['language'] = lang
template.setLang(lang)
data = {}
for field in template._columns.keys():
if template._columns[field].translate:
data.update({field: template[field]})
if data:
tax_obj.write(cursor, user, new_id, data, context=ctx)
template2tax[template.id] = new_id
else:
new_id = template2tax[template.id]
@@ -755,6 +790,7 @@ class Tax(ModelSQL, ModelView):
The dictionary is filled with new taxes
'''
template_obj = self.pool.get('account.tax.template')
lang_obj = self.pool.get('ir.lang')
if template2tax is None:
template2tax = {}
@@ -828,6 +864,15 @@ class Tax(ModelSQL, ModelView):
if vals:
self.write(cursor, user, tax.id, vals, context=context)
ctx = context.copy()
for lang in lang_obj.get_translatable_languages(cursor, user,
context=context):
ctx['language'] = lang
tax.setLang(lang)
data = template_obj._get_tax_value(cursor, user, tax.template,
context=ctx, tax=tax)
if data:
self.write(cursor, user, tax.id, data, context=ctx)
template2tax[tax.template.id] = tax.id
for child in tax.childs:
@@ -855,7 +900,7 @@ class RuleTemplate(ModelSQL, ModelView):
'Tax Rule Template'
_name = 'account.tax.rule.template'
_description = __doc__
name = fields.Char('Name', required=True)
name = fields.Char('Name', required=True, translate=True)
lines = fields.One2Many('account.tax.rule.line.template', 'rule', 'Lines')
account = fields.Many2One('account.account.template', 'Account Template',
domain=[('parent', '=', False)], required=True)
@@ -897,6 +942,7 @@ class RuleTemplate(ModelSQL, ModelView):
:return: id of the tax rule created
'''
rule_obj = self.pool.get('account.tax.rule')
lang_obj = self.pool.get('ir.lang')
if template2rule is None:
template2rule = {}
@@ -909,6 +955,17 @@ class RuleTemplate(ModelSQL, ModelView):
context=context)
vals['company'] = company_id
new_id = rule_obj.create(cursor, user, vals, context=context)
ctx = context.copy()
for lang in lang_obj.get_translatable_languages(cursor, user,
context=context):
ctx['language'] = lang
template.setLang(lang)
data = {}
for field in template._columns.keys():
if template._columns[field].translate:
data.update({field: template[field]})
if data:
rule_obj.write(cursor, user, new_id, data, context=ctx)
template2rule[template.id] = new_id
else:
new_id = template2rule[template.id]
@@ -921,7 +978,7 @@ class Rule(ModelSQL, ModelView):
'Tax Rule'
_name = 'account.tax.rule'
_description = __doc__
name = fields.Char('Name', required=True)
name = fields.Char('Name', required=True, translate=True)
company = fields.Many2One('company.company', 'Company', required=True,
select=1, domain="[('id', '=', context.get('company', 0))]")
lines = fields.One2Many('account.tax.rule.line', 'rule', 'Lines')
@@ -972,6 +1029,7 @@ class Rule(ModelSQL, ModelView):
tax rule. The dictionary is filled with new tax rules
'''
template_obj = self.pool.get('account.tax.rule.template')
lang_obj = self.pool.get('ir.lang')
if template2rule is None:
template2rule = {}
@@ -984,6 +1042,15 @@ class Rule(ModelSQL, ModelView):
rule.template, context=context, rule=rule)
if vals:
self.write(cursor, user, rule.id, vals, context=context)
ctx = context.copy()
for lang in lang_obj.get_translatable_languages(cursor, user,
context=context):
ctx['language'] = lang
rule.setLang(lang)
data = template_obj._get_tax_rule_value(cursor, user,
rule.template, context=ctx, rule=rule)
if data:
self.write(cursor, user, rule.id, data, context=ctx)
template2rule[rule.template.id] = rule.id
Rule()