use signal for default label creation

This commit is contained in:
Élie Bouttier 2014-08-05 23:30:06 -07:00
parent 7f06544ece
commit 63adeefce1
5 changed files with 24 additions and 8 deletions

View file

@ -0,0 +1 @@
default_app_config = 'issue.apps.IssueConfig'

10
issue/apps.py Normal file
View file

@ -0,0 +1,10 @@
from django.apps import AppConfig
class IssueConfig(AppConfig):
name = 'issue'
verbose_name = "Issue Tracker"
def ready(self):
import issue.signals

View file

@ -27,12 +27,6 @@ class Project(models.Model):
description = models.TextField(blank=True, default="", description = models.TextField(blank=True, default="",
verbose_name="Description") 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): def __str__(self):
return self.display_name return self.display_name

13
issue/signals.py Normal file
View file

@ -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()

View file

@ -46,8 +46,6 @@ def project_add(request):
project = form.save() project = form.save()
project.create_default_labels()
messages.success(request, 'Project added successfully.') messages.success(request, 'Project added successfully.')
return redirect('list-issue', project.name) return redirect('list-issue', project.name)