[ADD] Translation helper controllers for client's Translator

bzr revid: fme@openerp.com-20130923120058-x84yd7hjr3ssxs9x
This commit is contained in:
Fabien Meghazi 2013-09-23 14:00:58 +02:00
parent 8075b1f65c
commit 5fc4037ae7
1 changed files with 38 additions and 0 deletions

View File

@ -160,6 +160,44 @@ class Website(openerp.addons.web.controllers.main.Home):
})
return result
@website.route('/website/get_view_translations', type='json', auth='admin')
def get_view_translations(self, xml_id, optional=False):
view = request.registry.get("ir.ui.view")
views = view._views_get(request.cr, request.uid, xml_id, request.context)
return []
@website.route('/website/set_translations', type='json', auth='admin')
def set_translations(self, data, lang):
irt = request.registry.get('ir.translation')
for view_id, trans in data.items():
view_id = int(view_id)
for t in trans:
initial_content = t['initial_content'].strip()
new_content = t['new_content'].strip()
old_trans = irt.search_read(
request.cr, request.uid,
[
('type', '=', 'view'),
('res_id', '=', view_id),
('lang', '=', lang),
('src', '=', initial_content),
])
if old_trans:
vals = {'value': new_content}
irt.write(request.cr, request.uid, [old_trans[0]['id']], vals)
else:
new_trans = {
'name': 'website',
'res_id': view_id,
'lang': lang,
'type': 'view',
'source': initial_content,
'value': new_content,
}
irt.create(request.cr, request.uid, new_trans)
irt._get_source.clear_cache(irt) # FIXME: find why ir.translation does not invalidate
return True
# # FIXME: auth, anybody can upload an attachment if URL known/found
@website.route('/website/attach', type='http', auth='admin')
def attach(self, func, upload):