Skip to content
Snippets Groups Projects
Commit fb7bca84 authored by Erwan Rouchet's avatar Erwan Rouchet Committed by Bastien Abadie
Browse files

Delete worker activities when using DestroyWorkerResults with a model version filter

parent e849b8e5
No related branches found
No related tags found
1 merge request!2247Delete worker activities when using DestroyWorkerResults with a model version filter
......@@ -185,6 +185,7 @@ def worker_results_delete(
# a worker version but without a worker run.)
# We use worker_version_id != None and not worker_version_id__isnull=False,
# because isnull would cause an unnecessary LEFT JOIN query.
# No extra filtering is needed on worker activities, since worker versions cannot be null there.
else:
elements = elements.exclude(worker_version_id=None)
classifications = classifications.exclude(worker_version_id=None)
......@@ -192,7 +193,6 @@ def worker_results_delete(
transcription_entities = transcription_entities.exclude(transcription__worker_version_id=None)
worker_transcription_entities = worker_transcription_entities.exclude(worker_version_id=None)
metadata = metadata.exclude(worker_version_id=None)
worker_activities = worker_activities.exclude(worker_version_id=None)
if element_id:
# include_children causes a deletion *only* on the element's descendants.
......@@ -227,8 +227,7 @@ def worker_results_delete(
transcription_entities = transcription_entities.filter(transcription__worker_run__model_version_id=model_version_id)
worker_transcription_entities = worker_transcription_entities.filter(worker_run__model_version_id=model_version_id)
metadata = metadata.filter(worker_run__model_version_id=model_version_id)
# Activities are not linked to a worker run and cannot be filtered by model version
worker_activities = worker_activities.none()
worker_activities = worker_activities.filter(model_version_id=model_version_id)
if not worker_run_id and configuration_id is not None:
if configuration_id is False:
......
......@@ -270,9 +270,7 @@ WHERE "documents_metadata"."id" IN
DELETE
FROM "process_workeractivity"
WHERE "process_workeractivity"."id" IN
(SELECT U0."id"
WHERE "process_workeractivity"."id" IN (SELECT U0."id"
FROM "process_workeractivity" U0
INNER JOIN "documents_element" U1 ON (U0."element_id" = U1."id")
WHERE (U1."corpus_id" = '{corpus_id}'::uuid
AND NOT (U0."worker_version_id" IS NULL)))
WHERE U1."corpus_id" = '{corpus_id}'::uuid)
......@@ -182,5 +182,4 @@ WHERE "process_workeractivity"."id" IN
FROM "process_workeractivity" U0
INNER JOIN "documents_element" U1 ON (U0."element_id" = U1."id")
WHERE (U1."corpus_id" = '{corpus_id}'::uuid
AND NOT (U0."worker_version_id" IS NULL)
AND U0."configuration_id" = '{configuration_id}'::uuid))
......@@ -207,6 +207,17 @@ WHERE "documents_metadata"."id" IN
AND U4."path" && (ARRAY['{element_id}'::uuid])::uuid[]
AND U5."model_version_id" = '{model_version_id}'::uuid));
DELETE
FROM "process_workeractivity"
WHERE "process_workeractivity"."id" IN
(SELECT U0."id"
FROM "process_workeractivity" U0
INNER JOIN "documents_element" U1 ON (U0."element_id" = U1."id")
INNER JOIN "documents_elementpath" U3 ON (U1."id" = U3."element_id")
WHERE (U1."corpus_id" = '{corpus_id}'::uuid
AND U3."path" && (ARRAY['{element_id}'::uuid])::uuid[]
AND U0."model_version_id" = '{model_version_id}'::uuid));
select min(length),
max(length)
FROM
......@@ -398,4 +409,14 @@ WHERE "documents_metadata"."id" IN
WHERE (U1."corpus_id" = '{corpus_id}'::uuid
AND NOT (U0."worker_version_id" IS NULL)
AND U0."element_id" = '{element_id}'::uuid
AND U4."model_version_id" = '{model_version_id}'::uuid))
AND U4."model_version_id" = '{model_version_id}'::uuid));
DELETE
FROM "process_workeractivity"
WHERE "process_workeractivity"."id" IN
(SELECT U0."id"
FROM "process_workeractivity" U0
INNER JOIN "documents_element" U1 ON (U0."element_id" = U1."id")
WHERE (U1."corpus_id" = '{corpus_id}'::uuid
AND U0."element_id" = '{element_id}'::uuid
AND U0."model_version_id" = '{model_version_id}'::uuid))
......@@ -213,10 +213,9 @@ WHERE "process_workeractivity"."id" IN
(SELECT U0."id"
FROM "process_workeractivity" U0
INNER JOIN "documents_element" U1 ON (U0."element_id" = U1."id")
INNER JOIN "documents_elementpath" U4 ON (U1."id" = U4."element_id")
INNER JOIN "documents_elementpath" U3 ON (U1."id" = U3."element_id")
WHERE (U1."corpus_id" = '{corpus_id}'::uuid
AND NOT (U0."worker_version_id" IS NULL)
AND U4."path" && (ARRAY['{element_id}'::uuid])::uuid[]
AND U3."path" && (ARRAY['{element_id}'::uuid])::uuid[]
AND U0."configuration_id" IS NULL));
select min(length),
......@@ -419,6 +418,5 @@ WHERE "process_workeractivity"."id" IN
FROM "process_workeractivity" U0
INNER JOIN "documents_element" U1 ON (U0."element_id" = U1."id")
WHERE (U1."corpus_id" = '{corpus_id}'::uuid
AND NOT (U0."worker_version_id" IS NULL)
AND U0."element_id" = '{element_id}'::uuid
AND U0."configuration_id" IS NULL))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment