diff --git a/taiga/projects/tasks/signals.py b/taiga/projects/tasks/signals.py index 03e65ddd..bdc622e9 100644 --- a/taiga/projects/tasks/signals.py +++ b/taiga/projects/tasks/signals.py @@ -61,11 +61,12 @@ def _try_to_close_or_open_us_when_create_or_edit_task(instance): def _try_to_close_or_open_us_when_delete_task(instance): from taiga.projects.userstories import services as us_service - if instance.user_story_id: - if us_service.calculate_userstory_is_closed(instance.user_story): - us_service.close_userstory(instance.user_story) - else: - us_service.open_userstory(instance.user_story) + with suppress(ObjectDoesNotExist): + if instance.user_story_id: + if us_service.calculate_userstory_is_closed(instance.user_story): + us_service.close_userstory(instance.user_story) + else: + us_service.open_userstory(instance.user_story) # Milestone diff --git a/taiga/projects/userstories/signals.py b/taiga/projects/userstories/signals.py index c1b491a8..f728b372 100644 --- a/taiga/projects/userstories/signals.py +++ b/taiga/projects/userstories/signals.py @@ -14,6 +14,8 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . +from contextlib import suppress +from django.core.exceptions import ObjectDoesNotExist #################################### # Signals for cached prev US @@ -87,5 +89,6 @@ def _try_to_close_or_open_milestone_when_create_or_edit_us(instance): def _try_to_close_milestone_when_delete_us(instance): from taiga.projects.milestones import services as milestone_service - if instance.milestone_id and milestone_service.calculate_milestone_is_closed(instance.milestone): - milestone_service.close_milestone(instance.milestone) + with suppress(ObjectDoesNotExist): + if instance.milestone_id and milestone_service.calculate_milestone_is_closed(instance.milestone): + milestone_service.close_milestone(instance.milestone)