From 8e08985eea847f8e7bbad5e33ba5fb87caf00a3c Mon Sep 17 00:00:00 2001 From: rga Date: Wed, 19 May 2010 18:45:36 +0530 Subject: [PATCH] Improve integrity error message bzr revid: rga@rga-desktop-20100519131536-s82lok98qtrvu2ab --- bin/osv/osv.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/bin/osv/osv.py b/bin/osv/osv.py index a528d418089..fb6a5066814 100644 --- a/bin/osv/osv.py +++ b/bin/osv/osv.py @@ -65,7 +65,16 @@ class osv_pool(netsvc.Service): for key in self._sql_error.keys(): if key in inst[0]: self.abortResponse(1, 'Constraint Error', 'warning', self._sql_error[key]) - self.abortResponse(1, 'Integrity Error', 'warning', inst[0]) + if inst.pgcode == "23502": + context = inst.pgerror.split('"public".')[1] + table = context.split('"')[1] + model = table.replace("_",".") + if not self.obj_pool.get(model,False): + model = table + msg = 'You can not delete current record because it refered by ' + model + self.abortResponse(1, 'Integrity Error', 'warning', msg) + else: + self.abortResponse(1, 'Integrity Error', 'warning', inst[0]) except Exception, e: self.logger.exception("Uncaught exception") raise