diff --git a/arkindex/documents/tasks.py b/arkindex/documents/tasks.py index c73f7db481033c2ddf771e28b868a847042ee290..7d7e7a4ccbbc5d0b5d1ec6762ea20ebaf9e8af3f 100644 --- a/arkindex/documents/tasks.py +++ b/arkindex/documents/tasks.py @@ -103,6 +103,7 @@ def worker_results_delete(corpus_id: str, version_id: str, parent_id: str) -> No ) ) metadata = MetaData.objects.filter(worker_version_id=version_id, element__corpus_id=corpus_id) + worker_activities = WorkerActivity.objects.filter(worker_version_id=version_id, element__corpus_id=corpus_id) if parent_id: elements = elements.filter(Q(id=parent_id) | Q(paths__path__overlap=[parent_id])) @@ -112,6 +113,7 @@ def worker_results_delete(corpus_id: str, version_id: str, parent_id: str) -> No transcription_entities = transcription_entities.filter(transcription_entities_filter) worker_transcription_entities = worker_transcription_entities.filter(transcription_entities_filter) metadata = metadata.filter(Q(element_id=parent_id) | Q(element__paths__path__overlap=[parent_id])) + worker_activities = worker_activities.filter(Q(element_id=parent_id) | Q(element__paths__path__overlap=[parent_id])) elements.trash() classifications.delete() @@ -119,6 +121,7 @@ def worker_results_delete(corpus_id: str, version_id: str, parent_id: str) -> No worker_transcription_entities.delete() transcriptions._raw_delete(using='default') metadata.delete() + worker_activities.delete() @job('high', timeout=settings.RQ_TIMEOUTS['move_element']) diff --git a/arkindex/sql_validation/worker_results_delete_in_corpus.sql b/arkindex/sql_validation/worker_results_delete_in_corpus.sql index 99a3e2a40f473016f63e7893c8b8b49b053c69b6..9824e0642df2a86ec221a0979a42d71f21b7aa7a 100644 --- a/arkindex/sql_validation/worker_results_delete_in_corpus.sql +++ b/arkindex/sql_validation/worker_results_delete_in_corpus.sql @@ -266,4 +266,13 @@ WHERE "documents_metadata"."id" IN FROM "documents_metadata" U0 INNER JOIN "documents_element" U1 ON (U0."element_id" = U1."id") WHERE (U1."corpus_id" = '{corpus_id}'::uuid - AND U0."worker_version_id" = '{version_id}'::uuid)) + AND U0."worker_version_id" = '{version_id}'::uuid)); + +DELETE +FROM "dataimport_workeractivity" +WHERE "dataimport_workeractivity"."id" IN + (SELECT U0."id" + FROM "dataimport_workeractivity" U0 + INNER JOIN "documents_element" U1 ON (U0."element_id" = U1."id") + WHERE (U1."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid)) diff --git a/arkindex/sql_validation/worker_results_delete_under_parent.sql b/arkindex/sql_validation/worker_results_delete_under_parent.sql index 948a2e7f6397d2b1ea2eac30d52fcfb5785b816d..0edaccee15929eaf0a1748a290dbd74d8f557cd3 100644 --- a/arkindex/sql_validation/worker_results_delete_under_parent.sql +++ b/arkindex/sql_validation/worker_results_delete_under_parent.sql @@ -186,6 +186,18 @@ WHERE "documents_metadata"."id" IN FROM "documents_metadata" U0 INNER JOIN "documents_element" U1 ON (U0."element_id" = U1."id") LEFT OUTER JOIN "documents_elementpath" U4 ON (U1."id" = U4."element_id") + WHERE (U1."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND (U0."element_id" = '{parent_id}'::uuid + OR U4."path" && ARRAY['{parent_id}'::uuid]::uuid[]))); + +DELETE +FROM "dataimport_workeractivity" +WHERE "dataimport_workeractivity"."id" IN + (SELECT U0."id" + FROM "dataimport_workeractivity" U0 + INNER JOIN "documents_element" U1 ON (U0."element_id" = U1."id") + LEFT OUTER JOIN "documents_elementpath" U4 ON (U1."id" = U4."element_id") WHERE (U1."corpus_id" = '{corpus_id}'::uuid AND U0."worker_version_id" = '{version_id}'::uuid AND (U0."element_id" = '{parent_id}'::uuid diff --git a/arkindex/sql_validation/worker_results_delete_under_parent_included.sql b/arkindex/sql_validation/worker_results_delete_under_parent_included.sql index 4796cae3dbf85b57379399c10afcfef3d12051cd..2fd8bed67ad83a2582eae5ed7cd8923a42365211 100644 --- a/arkindex/sql_validation/worker_results_delete_under_parent_included.sql +++ b/arkindex/sql_validation/worker_results_delete_under_parent_included.sql @@ -341,6 +341,18 @@ WHERE "documents_metadata"."id" IN FROM "documents_metadata" U0 INNER JOIN "documents_element" U1 ON (U0."element_id" = U1."id") LEFT OUTER JOIN "documents_elementpath" U4 ON (U1."id" = U4."element_id") + WHERE (U1."corpus_id" = '{corpus_id}'::uuid + AND U0."worker_version_id" = '{version_id}'::uuid + AND (U0."element_id" = '{parent_id}'::uuid + OR U4."path" && ARRAY['{parent_id}'::uuid]::uuid[]))); + +DELETE +FROM "dataimport_workeractivity" +WHERE "dataimport_workeractivity"."id" IN + (SELECT U0."id" + FROM "dataimport_workeractivity" U0 + INNER JOIN "documents_element" U1 ON (U0."element_id" = U1."id") + LEFT OUTER JOIN "documents_elementpath" U4 ON (U1."id" = U4."element_id") WHERE (U1."corpus_id" = '{corpus_id}'::uuid AND U0."worker_version_id" = '{version_id}'::uuid AND (U0."element_id" = '{parent_id}'::uuid