@@ -25,9 +25,7 @@ def handle(self, *args, **options):
25
25
)
26
26
27
27
28
- def callback (client_state , channel , method , properties , input_message ):
29
- collection_id = input_message ["collection_id" ]
30
-
28
+ def delete_collection (collection_id ):
31
29
tables = [
32
30
("record" , None ), # references collection_file_item
33
31
("release" , None ), # references collection_file_item
@@ -67,4 +65,20 @@ def callback(client_state, channel, method, properties, input_message):
67
65
68
66
Collection .objects .filter (pk = collection_id ).delete ()
69
67
68
+
69
+ def callback (client_state , channel , method , properties , input_message ):
70
+ collection_id = input_message ["collection_id" ]
71
+
72
+ try :
73
+ collection = Collection .objects .get (pk = collection_id )
74
+ except Collection .DoesNotExist :
75
+ pass
76
+ else :
77
+ if compiled_collection := collection .get_compiled_collection ():
78
+ delete_collection (compiled_collection .pk )
79
+ if upgraded_collection := collection .get_upgraded_collection ():
80
+ delete_collection (upgraded_collection .pk )
81
+
82
+ delete_collection (collection_id )
83
+
70
84
ack (client_state , channel , method .delivery_tag )
0 commit comments