From 0e5d32cb249c29d8318f367db8d0b2f309b4ab9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 7 Apr 2009 18:33:48 +0200 Subject: [PATCH] Move check of deleting workflow.instance on ModelWorkflow --- trytond/model/modelsql.py | 11 ----------- trytond/model/modelworkflow.py | 12 ++++++++++++ 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/trytond/model/modelsql.py b/trytond/model/modelsql.py index 179f39e122..ce15d98c09 100644 --- a/trytond/model/modelsql.py +++ b/trytond/model/modelsql.py @@ -915,17 +915,6 @@ class ModelSQL(ModelStorage): if context['_timestamp'].get(self._name + ',' + str(i)): del context['_timestamp'][self._name + ',' +str(i)] - - #TODO use search - cursor.execute( - "SELECT id FROM wkf_instance "\ - "WHERE res_id IN (" + ",".join(["%s" for i in ids]) + ") "\ - "AND res_type = %s AND state != 'complete'", - ids + [self._name]) - if cursor.rowcount != 0: - self.raise_user_error(cursor, 'delete_workflow_record', - context=context) - tree_ids = {} for k in self._columns: field = self._columns[k] diff --git a/trytond/model/modelworkflow.py b/trytond/model/modelworkflow.py index 93aea60400..eb43dfd616 100644 --- a/trytond/model/modelworkflow.py +++ b/trytond/model/modelworkflow.py @@ -28,6 +28,18 @@ class ModelWorkflow(ModelStorage): return res def delete(self, cursor, user, ids, context=None): + instance_obj = self.pool.get('workflow.instance') + + if isinstance(ids, (int, long)): + ids = [ids] + + if instance_obj.search(cursor, 0, [ + ('res_id', 'in', ids), + ('res_type', '=', self._name), + ('state', '!=', 'complete'), + ], context=context): + self.raise_user_error(cursor, 'delete_workflow_record', + context=context) res = super(ModelWorkflow, self).delete(cursor, user, ids, context=context) self.workflow_trigger_delete(cursor, user, ids, context=context)