Solved warning problem
bzr revid: nicolas.vanhoren@openerp.com-20130130152552-l07fk2lahfnb9ckx
This commit is contained in:
parent
79f7eaf08c
commit
4776ea75eb
|
@ -232,12 +232,21 @@ class JsonRequest(WebRequest):
|
|||
return r
|
||||
|
||||
def serialize_exception(e):
|
||||
return {
|
||||
tmp = {
|
||||
"name": type(e).__module__ + "." + type(e).__name__ if type(e).__module__ else type(e).__name__,
|
||||
"debug": traceback.format_exc(),
|
||||
"message": u"%s" % e,
|
||||
"arguments": to_jsonable(e.args),
|
||||
}
|
||||
if isinstance(e, openerp.osv.osv.except_osv):
|
||||
tmp["exception_type"] = "except_osv"
|
||||
elif isinstance(e, openerp.exceptions.Warning):
|
||||
tmp["exception_type"] = "warning"
|
||||
elif isinstance(e, openerp.exceptions.AccessError):
|
||||
tmp["exception_type"] = "access_error"
|
||||
elif isinstance(e, openerp.exceptions.AccessDenied):
|
||||
tmp["exception_type"] = "access_denied"
|
||||
return tmp
|
||||
|
||||
def to_jsonable(o):
|
||||
if isinstance(o, str) or isinstance(o,unicode) or isinstance(o, int) or isinstance(o, long) \
|
||||
|
|
|
@ -247,19 +247,12 @@ instance.web.CrashManager = instance.web.Class.extend({
|
|||
if (!this.active) {
|
||||
return;
|
||||
}
|
||||
// yes, exception handling is shitty
|
||||
if (error.code === 300 && error.data && error.data.type == "client_exception" && error.data.debug.match("SessionExpiredException")) {
|
||||
this.show_warning({type: "Session Expired", data: { fault_code: "Your OpenERP session expired. Please refresh the current web page." }});
|
||||
if (error.data.name === "openerp.addons.web.session SessionExpiredException") {
|
||||
this.show_warning({type: "Session Expired", data: { message: "Your OpenERP session expired. Please refresh the current web page." }});
|
||||
return;
|
||||
}
|
||||
if (error.data.fault_code) {
|
||||
var split = ("" + error.data.fault_code).split('\n')[0].split(' -- ');
|
||||
if (split.length > 1) {
|
||||
error.type = split.shift();
|
||||
error.data.fault_code = error.data.fault_code.substr(error.type.length + 4);
|
||||
}
|
||||
}
|
||||
if (error.code === 200 && error.type) {
|
||||
if (error.data.exception_type === "except_osv" || error.data.exception_type === "warning"
|
||||
|| error.data.exception_type === "access_error") {
|
||||
this.show_warning(error);
|
||||
} else {
|
||||
this.show_error(error);
|
||||
|
@ -269,8 +262,11 @@ instance.web.CrashManager = instance.web.Class.extend({
|
|||
if (!this.active) {
|
||||
return;
|
||||
}
|
||||
if (error.data.exception_type === "except_osv") {
|
||||
error = _.extend({}, error, {data: _.extend({}, error.data, {message: error.data.arguments[0] + "\n\n" + error.data.arguments[1]})});
|
||||
}
|
||||
instance.web.dialog($('<div>' + QWeb.render('CrashManager.warning', {error: error}) + '</div>'), {
|
||||
title: "OpenERP " + _.str.capitalize(error.type),
|
||||
title: "OpenERP " + (_.str.capitalize(error.type) || "Warning"),
|
||||
buttons: [
|
||||
{text: _t("Ok"), click: function() { $(this).dialog("close"); }}
|
||||
]
|
||||
|
@ -650,7 +646,7 @@ instance.web.Login = instance.web.Widget.extend({
|
|||
}
|
||||
},
|
||||
on_db_failed: function (error, event) {
|
||||
if (error.data.fault_code === 'AccessDenied') {
|
||||
if (error.data.name === 'openerp.exceptions.AccessDenied') {
|
||||
event.preventDefault();
|
||||
}
|
||||
},
|
||||
|
|
|
@ -72,7 +72,7 @@ openerp.test_support = {
|
|||
}
|
||||
return;
|
||||
}
|
||||
fn(e.data.fault_code);
|
||||
fn(e.data.name);
|
||||
})
|
||||
}
|
||||
};
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
<td>
|
||||
<p>
|
||||
<t t-js="d">
|
||||
var message = d.message ? d.message : d.error.data.fault_code;
|
||||
var message = d.message ? d.message : d.error.data.message;
|
||||
d.html_error = context.engine.tools.html_escape(message)
|
||||
.replace(/\n/g, '<br/>');
|
||||
</t>
|
||||
|
|
|
@ -415,7 +415,7 @@ instance.web_kanban.KanbanView = instance.web.View.extend({
|
|||
new_group.do_save_sequences();
|
||||
}).fail(function(error, evt) {
|
||||
evt.preventDefault();
|
||||
alert(_t("An error has occured while moving the record to this group: ") + data.fault_code);
|
||||
alert(_t("An error has occured while moving the record to this group: ") + data.message);
|
||||
self.do_reload(); // TODO: use draggable + sortable in order to cancel the dragging when the rcp fails
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue