summaryrefslogtreecommitdiff
path: root/addons/web/controllers/main.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/controllers/main.py')
-rw-r--r--addons/web/controllers/main.py35
1 files changed, 21 insertions, 14 deletions
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index 9ed3e06026e..f1d44b0c885 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -437,18 +437,21 @@ class Database(openerpweb.Controller):
@openerpweb.httprequest
def backup(self, req, backup_db, backup_pwd, token):
- db_dump = base64.b64decode(
- req.session.proxy("db").dump(backup_pwd, backup_db))
- filename = "%(db)s_%(timestamp)s.dump" % {
- 'db': backup_db,
- 'timestamp': datetime.datetime.utcnow().strftime(
- "%Y-%m-%d_%H-%M-%SZ")
- }
- return req.make_response(db_dump,
- [('Content-Type', 'application/octet-stream; charset=binary'),
- ('Content-Disposition', 'attachment; filename="' + filename + '"')],
- {'fileToken': int(token)}
- )
+ try:
+ db_dump = base64.b64decode(
+ req.session.proxy("db").dump(backup_pwd, backup_db))
+ filename = "%(db)s_%(timestamp)s.dump" % {
+ 'db': backup_db,
+ 'timestamp': datetime.datetime.utcnow().strftime(
+ "%Y-%m-%d_%H-%M-%SZ")
+ }
+ return req.make_response(db_dump,
+ [('Content-Type', 'application/octet-stream; charset=binary'),
+ ('Content-Disposition', 'attachment; filename="' + filename + '"')],
+ {'fileToken': int(token)}
+ )
+ except xmlrpclib.Fault, e:
+ return simplejson.dumps([[],[{'error': e.faultCode, 'title': 'backup Database'}]])
@openerpweb.httprequest
def restore(self, req, db_file, restore_pwd, new_db):
@@ -1521,8 +1524,12 @@ class Action(openerpweb.Controller):
@openerpweb.jsonrequest
def run(self, req, action_id):
- return clean_action(req, req.session.model('ir.actions.server').run(
- [action_id], req.session.eval_context(req.context)))
+ return_action = req.session.model('ir.actions.server').run(
+ [action_id], req.session.eval_context(req.context))
+ if return_action:
+ return clean_action(req, return_action)
+ else:
+ return False
class Export(View):
_cp_path = "/web/export"