summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorrga <rga@rga-desktop>2010-05-19 18:45:36 +0530
committerrga <rga@rga-desktop>2010-05-19 18:45:36 +0530
commit8e08985eea847f8e7bbad5e33ba5fb87caf00a3c (patch)
treecfafb82b3177f3ed9aed33c7c4281b235c198f89 /bin
parent321c9415ab209ddb32a8f5fe7c6128fd57d80d65 (diff)
Improve integrity error message
bzr revid: rga@rga-desktop-20100519131536-s82lok98qtrvu2ab
Diffstat (limited to 'bin')
-rw-r--r--bin/osv/osv.py11
1 files changed, 10 insertions, 1 deletions
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