From d3eda0a5cfeb15acdbdb4c7b30cd2e7861919c77 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Sat, 30 Mar 2013 14:57:32 +0100 Subject: [PATCH] Minor fixes on ref handling. --- greenmine/scrum/models.py | 23 +++++++++++++++++------ greenmine/scrum/serializers.py | 2 +- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/greenmine/scrum/models.py b/greenmine/scrum/models.py index 0bf7eb40..93094906 100644 --- a/greenmine/scrum/models.py +++ b/greenmine/scrum/models.py @@ -273,12 +273,6 @@ class UserStory(models.Model): def is_closed(self): return self.status.is_closed - def save(self, *args, **kwargs): - if self.ref is None and self.project: - self.ref = ref_uniquely(self.project, "last_us_ref", self.__class__) - - super(UserStory, self).save(*args, **kwargs) - class Change(models.Model): change_type = models.IntegerField(choices=TASK_CHANGE_CHOICES) @@ -403,8 +397,14 @@ class Issue(models.Model): # Model related signals handlers + @receiver(models.signals.post_save, sender=Project, dispatch_uid="project_post_save") def project_post_save(sender, instance, created, **kwargs): + """ + Create all project model depences on project is + created. + """ + from greenmine.base.services import RoleGroupsService if not created: @@ -439,6 +439,17 @@ def project_post_save(sender, instance, created, **kwargs): IssueType.objects.create(project=instance, name=name, order=order) +@receiver(models.signals.pre_save, sender=UserStory, dispatch_uid="user_story_ref_handler") +def user_story_ref_handler(sender, instance, **kwargs): + """ + Automatically assignes a seguent reference code to a + user story if that is not created. + """ + + if not instance.id and instance.project: + instance.ref = ref_uniquely(instance.project, "last_us_ref", instance.__class__) + + # Email alerts signals handlers # TODO: temporary commented (Pending refactor) # from . import sigdispatch diff --git a/greenmine/scrum/serializers.py b/greenmine/scrum/serializers.py index 691de5ab..eef2b442 100644 --- a/greenmine/scrum/serializers.py +++ b/greenmine/scrum/serializers.py @@ -26,7 +26,7 @@ class ProjectSerializer(serializers.ModelSerializer): class UserStorySerializer(serializers.ModelSerializer): tags = PickleField() - is_closed = serializers.BooleanField() + is_closed = serializers.Field(source='is_closed') class Meta: model = UserStory