38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
import urlparse
|
|
|
|
import cherrypy
|
|
|
|
from openobject import rpc
|
|
from openobject.tools import expose
|
|
|
|
import openerp.controllers
|
|
from openerp.utils import TinyDict
|
|
|
|
class Piratepad(openerp.controllers.SecuredController):
|
|
_cp_path = "/piratepad"
|
|
|
|
def get_root(self):
|
|
return rpc.RPCProxy('res.company').read(
|
|
[rpc.get_session().company_id], ['pad_index'])[0]['pad_index']
|
|
|
|
def make_url(self, pad_name):
|
|
return urlparse.urljoin(
|
|
self.get_root(), '-'.join(pad_name.split())
|
|
)
|
|
|
|
@expose('json', methods=('POST',))
|
|
def link(self, pad_name):
|
|
params, data = TinyDict.split(cherrypy.session['params'])
|
|
ctx = dict(rpc.get_session().context,
|
|
default_res_model=params.model, default_res_id=params.id,
|
|
active_id=False, active_ids=[])
|
|
|
|
pad_name = pad_name.decode('utf8')
|
|
pad_link = self.make_url(pad_name)
|
|
attachment_id = rpc.RPCProxy('ir.attachment').create({
|
|
'name': pad_name,
|
|
'url': pad_link,
|
|
'type': 'url'
|
|
}, ctx)
|
|
return {'id': attachment_id, 'name': pad_name, 'url': pad_link}
|