From 63adeefce18eed2c5e203b62687a875cf510a792 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89lie=20Bouttier?= Date: Tue, 5 Aug 2014 23:30:06 -0700 Subject: [PATCH] use signal for default label creation --- issue/__init__.py | 1 + issue/apps.py | 10 ++++++++++ issue/models.py | 6 ------ issue/signals.py | 13 +++++++++++++ issue/views.py | 2 -- 5 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 issue/apps.py create mode 100644 issue/signals.py diff --git a/issue/__init__.py b/issue/__init__.py index e69de29..f001650 100644 --- a/issue/__init__.py +++ b/issue/__init__.py @@ -0,0 +1 @@ +default_app_config = 'issue.apps.IssueConfig' diff --git a/issue/apps.py b/issue/apps.py new file mode 100644 index 0000000..7035865 --- /dev/null +++ b/issue/apps.py @@ -0,0 +1,10 @@ +from django.apps import AppConfig + + +class IssueConfig(AppConfig): + + name = 'issue' + verbose_name = "Issue Tracker" + + def ready(self): + import issue.signals diff --git a/issue/models.py b/issue/models.py index 4acce90..9fe0c33 100644 --- a/issue/models.py +++ b/issue/models.py @@ -27,12 +27,6 @@ class Project(models.Model): description = models.TextField(blank=True, default="", verbose_name="Description") - def create_default_labels(self): - - Label(project=self, name='bug', color='#FF0000').save() - Label(project=self, name='feature', color='#00A000').save() - Label(project=self, name='documentation', color='#1D3DBE').save() - def __str__(self): return self.display_name diff --git a/issue/signals.py b/issue/signals.py new file mode 100644 index 0000000..01e9859 --- /dev/null +++ b/issue/signals.py @@ -0,0 +1,13 @@ +from django.db.models.signals import post_save +from django.dispatch import receiver + +from issue.models import Project, Label + + +@receiver(post_save, sender=Project, dispatch_uid="Create default project labels.") +def create_default_project_labels(sender, **kwargs): + if kwargs['created']: + project = kwargs['instance'] + Label(project=project, name='bug', color='#FF0000').save() + Label(project=project, name='feature', color='#00A000').save() + Label(project=project, name='documentation', color='#1D3DBE').save() diff --git a/issue/views.py b/issue/views.py index c8334dd..e0e7c1d 100644 --- a/issue/views.py +++ b/issue/views.py @@ -46,8 +46,6 @@ def project_add(request): project = form.save() - project.create_default_labels() - messages.success(request, 'Project added successfully.') return redirect('list-issue', project.name)