From 8d56f7efc84ede56addc0dcffacb234380a55d7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Mon, 11 Nov 2013 18:23:54 +0100 Subject: [PATCH] Updated the closed signal in the task model to open/close the milestone of the saved task --- greenmine/projects/tasks/models.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/greenmine/projects/tasks/models.py b/greenmine/projects/tasks/models.py index 7a2e5c46..142c7e13 100644 --- a/greenmine/projects/tasks/models.py +++ b/greenmine/projects/tasks/models.py @@ -97,6 +97,7 @@ def task_ref_handler(sender, instance, **kwargs): @receiver(models.signals.pre_save, sender=Task, dispatch_uid="tasks_close_handler") def tasks_close_handler(sender, instance, **kwargs): + # USs if instance.id: # Edit task if (sender.objects.get(id=instance.id).status.is_closed == False and instance.status.is_closed == True): # Close task @@ -142,3 +143,13 @@ def tasks_close_handler(sender, instance, **kwargs): instance.user_story.status = us_opened_status instance.user_story.finish_date = None instance.user_story.save() + + # Milestone + if instance.milestone: + if instance.status.is_closed and not instance.milestone.closed and all([ + t.status.is_closed for t in instance.milestone.tasks.all()]): + instance.milestone.closed = True + instance.milestone.save() + elif not instance.status.is_closed and instance.milestone.closed: + instance.milestone.closed = False + instance.milestone.save()