[FIX] encoding error when using special characters in pad name
[odoo/odoo.git] / addons / pad / web / controllers.py
1 import urlparse
2
3 import cherrypy
4
5 from openobject.tools import expose
6
7 import openerp.controllers
8 from openerp.utils import rpc, TinyDict
9
10 class Piratepad(openerp.controllers.SecuredController):
11     _cp_path = "/piratepad"
12
13     def get_root(self):
14         return rpc.RPCProxy('res.company').read(
15                 [rpc.session.company_id], ['pad_index'])[0]['pad_index']
16
17     def make_url(self, pad_name):
18         return urlparse.urljoin(
19             self.get_root(), '-'.join(pad_name.split())
20         )
21
22     @expose('json', methods=('POST',))
23     def link(self, pad_name):
24         params, data = TinyDict.split(cherrypy.session['params'])
25         ctx = dict(rpc.session.context,
26                    default_res_model=params.model, default_res_id=params.id,
27                    active_id=False, active_ids=[])
28
29         pad_name = pad_name.decode('utf8')
30         pad_link = self.make_url(pad_name)
31         attachment_id = rpc.RPCProxy('ir.attachment').create({
32             'name': pad_name,
33             'url': pad_link,
34             'type': 'url'
35             }, ctx)
36         return {'id': attachment_id, 'name': pad_name, 'url': pad_link}