[ADD] Added Binary#upload_attachment controller

bzr revid: fme@openerp.com-20110526210641-geszqjfcw3vx0vq8
This commit is contained in:
Fabien Meghazi 2011-05-26 23:06:41 +02:00
parent 91e65e8f00
commit e3eb23b96c
1 changed files with 31 additions and 0 deletions

View File

@ -413,6 +413,11 @@ class DataSet(openerpweb.Controller):
r = m.write([id], data, context)
return {'result': r}
@openerpweb.jsonrequest
def unlink(self, request, model, ids=[]):
Model = request.session.model(model)
return Model.unlink(ids)
@openerpweb.jsonrequest
def call(self, req, model, method, ids, args):
m = req.session.model(model)
@ -722,6 +727,32 @@ class Binary(openerpweb.Controller):
args = [False, e.message]
return out % (simplejson.dumps(callback), simplejson.dumps(args))
@openerpweb.httprequest
def upload_attachment(self, request, session_id, callback, model, id, ufile=None):
cherrypy.response.timeout = 500
Model = request.session.model('ir.attachment')
try:
out = """<script language="javascript" type="text/javascript">
var win = window.top.window,
callback = win[%s];
if (typeof(callback) === 'function') {
callback.call(this, %s);
}
</script>"""
attachment_id = Model.create({
'name': ufile.filename,
'datas': base64.encodestring(ufile.file.read()),
'res_model': model,
'res_id': int(id)
})
args = {
'filename': ufile.filename,
'id': attachment_id
}
except Exception, e:
args = { 'error': e.message }
return out % (simplejson.dumps(callback), simplejson.dumps(args))
class Action(openerpweb.Controller):
_cp_path = "/base/action"