diff options
| author | Fabien Meghazi <fme@openerp.com> | 2011-05-26 23:06:41 +0200 |
|---|---|---|
| committer | Fabien Meghazi <fme@openerp.com> | 2011-05-26 23:06:41 +0200 |
| commit | e3eb23b96c478f4e2aaf8ed34513b5e7d2aa37c7 (patch) | |
| tree | 35b9fd8049a4b91624316aeed2d25193bc9a7395 | |
| parent | 91e65e8f00933a6e357e7c0b639a25261caea9d9 (diff) | |
[ADD] Added Binary#upload_attachment controller
bzr revid: fme@openerp.com-20110526210641-geszqjfcw3vx0vq8
| -rw-r--r-- | addons/base/controllers/main.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index 0a5b3ba64b0..3462efd656e 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -414,6 +414,11 @@ class DataSet(openerpweb.Controller): 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) r = getattr(m, method)(ids, *args) @@ -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" |
