Please review this at http://codereview.appspot.com/1615044/show

Affected files:
  M trytond/model/modelsql.py


Index: trytond/model/modelsql.py
===================================================================
--- a/trytond/model/modelsql.py
+++ b/trytond/model/modelsql.py
@@ -1118,6 +1118,18 @@
                 if model_ids:
                     model.delete(cursor, user, model_ids,
context=delete_ctx)

+            for model, field_name in foreign_keys_tocheck:
+                if model.search(cursor2, 0, [
+                    (field_name, 'in', sub_ids),
+                    ], order=[], context=context):
+                    error_args = []
+                    error_args.append(self._get_error_args(cursor2,
user, 'id',
+                        context=context)[1])
+                    error_args.extend(list(model._get_error_args( cursor2,
+                        user, field_name, context=context)))
+                    self.raise_user_error(cursor2, 'foreign_model_exist',
+                            error_args=tuple(error_args), context=context)
+
             super(ModelSQL, self).delete(cursor, user, sub_ids,
context=context)

             try:
@@ -1127,19 +1139,6 @@
                 database = Database(cursor.database_name).connect()
                 cursor2 = database.cursor()
                 try:
-                    for model, field_name in foreign_keys_tocheck:
-                        if model.search(cursor2, 0, [
-                            (field_name, 'in', sub_ids),
-                            ], order=[], context=context):
-                            error_args = []
-                            error_args.append(self._get_error_args(cursor2,
-                                user, 'id', context=context)[1])
-                            error_args.extend(list(model._get_error_args(
-                                cursor2, user, field_name,
context=context)))
-                            self.raise_user_error(cursor2,
-                                    'foreign_model_exist',
-                                    error_args=tuple(error_args),
-                                    context=context)
                     for name, _, error in self._sql_constraints:
                         if name in exception[0]:
                             self.raise_user_error(cursor2, error,



-- 
Cédric Krier

B2CK SPRL
Rue de Rotterdam, 4
4000 Liège
Belgium
Tel: +32 472 54 46 59
Email/Jabber: [email protected]
Website: http://www.b2ck.com/

Attachment: pgpSicmqDkUXp.pgp
Description: PGP signature

Reply via email to