summaryrefslogtreecommitdiff
path: root/addons/website
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2013-09-23 14:00:58 +0200
committerFabien Meghazi <fme@openerp.com>2013-09-23 14:00:58 +0200
commit5fc4037ae709feea2334e4e7d51eba3bd19e67bd (patch)
treebe3cf1cca57e07e40409f331a6563d8fa74545ab /addons/website
parent8075b1f65c6ba2de84a38f0ad18b2ea6b43ea779 (diff)
[ADD] Translation helper controllers for client's Translator
bzr revid: fme@openerp.com-20130923120058-x84yd7hjr3ssxs9x
Diffstat (limited to 'addons/website')
-rw-r--r--addons/website/controllers/main.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py
index c5f069ce07a..8c3814735c7 100644
--- a/addons/website/controllers/main.py
+++ b/addons/website/controllers/main.py
@@ -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):