From c332dd141ab3a80f266fada05eba7a63174df025 Mon Sep 17 00:00:00 2001 From: Galen Date: Sun, 9 Feb 2025 21:08:05 -0800 Subject: [PATCH] update post_tile_save to only apply to updated, non-deleted resource-instance tiles, re #11730 --- arches/app/datatypes/datatypes.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/arches/app/datatypes/datatypes.py b/arches/app/datatypes/datatypes.py index 4f53450345..b3400ea187 100644 --- a/arches/app/datatypes/datatypes.py +++ b/arches/app/datatypes/datatypes.py @@ -2099,20 +2099,22 @@ def post_tile_save(self, tile, nodeid, request): """ % ( tile.pk ) - delete_sql = """ - DELETE FROM resource_x_resource WHERE tileid = '%s' AND resourcexid NOT IN (%s); - """ % ( - tile.pk, - ",".join( - [ - "'%s'" % relationship["resourceXresourceId"] - for relationship in tile.data[nodeid] - ] - ), - ) + if tile.data[nodeid] and len(tile.data[nodeid]) > 0: + delete_sql = """ + DELETE FROM resource_x_resource WHERE tileid = '%s' AND resourcexid NOT IN (%s); + """ % ( + tile.pk, + ",".join( + [ + "'%s'" % relationship["resourceXresourceId"] + for relationship in tile.data[nodeid] + ] + ), + ) with connection.cursor() as cursor: - cursor.execute(delete_sql) + if tile.data[nodeid] and len(tile.data[nodeid]) > 0: + cursor.execute(delete_sql) cursor.execute(create_sql) ret = cursor.fetchone() return ret