From 780c9f1114014e9142069e09fd3609fcf746a4b3 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Tue, 8 Oct 2024 21:53:00 -0700 Subject: [PATCH] Fix the removal business --- src/documents/signals/handlers.py | 56 ++++++++++++++++++------------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/src/documents/signals/handlers.py b/src/documents/signals/handlers.py index 2c29545e9..7d1d5cebf 100644 --- a/src/documents/signals/handlers.py +++ b/src/documents/signals/handlers.py @@ -711,12 +711,14 @@ def run_workflows( ) ): document.correspondent = None - elif ( - use_overrides - and overrides.correspondent_id is not None - and action.remove_correspondents.filter( - pk=overrides.correspondent_id, - ).exists() + elif use_overrides and ( + action.remove_all_correspondents + or ( + overrides.correspondent_id is not None + and action.remove_correspondents.filter( + pk=overrides.correspondent_id, + ).exists() + ) ): overrides.correspondent_id = None @@ -733,12 +735,14 @@ def run_workflows( ) ): document.document_type = None - elif ( - use_overrides - and overrides.document_type_id is not None - and action.remove_document_types.filter( - pk=overrides.document_type_id, - ).exists() + elif use_overrides and ( + action.remove_all_document_types + or ( + overrides.document_type_id is not None + and action.remove_document_types.filter( + pk=overrides.document_type_id, + ).exists() + ) ): overrides.document_type_id = None @@ -755,12 +759,14 @@ def run_workflows( ) ): document.storage_path = None - elif ( - use_overrides - and overrides.storage_path_id is not None - and action.remove_storage_paths.filter( - pk=overrides.storage_path_id, - ).exists() + elif use_overrides and ( + action.remove_all_storage_paths + or ( + overrides.storage_path_id is not None + and action.remove_storage_paths.filter( + pk=overrides.storage_path_id, + ).exists() + ) ): overrides.storage_path_id = None @@ -773,12 +779,14 @@ def run_workflows( ) ): document.owner = None - elif ( - use_overrides - and overrides.owner_id is not None - and action.remove_owners.filter( - pk=overrides.owner_id, - ).exists() + elif use_overrides and ( + action.remove_all_owners + or ( + overrides.owner_id is not None + and action.remove_owners.filter( + pk=overrides.owner_id, + ).exists() + ) ): overrides.owner_id = None