Work in progress on sample_data command.

remotes/origin/enhancement/email-actions
Andrey Antukh 2013-03-27 19:14:29 +01:00
parent 79c0630c3f
commit 64eb9bb3b3
2 changed files with 49 additions and 47 deletions

View File

@ -10,7 +10,7 @@ from django.utils.timezone import now
from django.contrib.webdesign import lorem_ipsum from django.contrib.webdesign import lorem_ipsum
from django.contrib.auth.models import User from django.contrib.auth.models import User
from greenmine.scrum.models import Project, Milestone, UserStory, Task from greenmine.scrum.models import *
subjects = [ subjects = [
"Fixing templates for Django 1.2.", "Fixing templates for Django 1.2.",
@ -31,44 +31,34 @@ subjects = [
class Command(BaseCommand): class Command(BaseCommand):
@transaction.commit_on_success @transaction.commit_on_success
def handle(self, *args, **options): def handle(self, *args, **options):
from django.core import management
management.call_command('loaddata', 'development_users')
users_counter = 0 users_counter = 0
def create_user(counter): def create_user(counter):
user = User.objects.create( user = User(
username='foouser%d' % (counter), username='user%d' % (counter),
first_name='foouser%d' % (counter), first_name='user%d' % (counter),
email='foouser%d@foodomain.com' % (counter), email='foouser%d@domain.com' % (counter),
) )
user.set_password('user%d' % (counter))
user.save()
return user return user
users = []
for x in range(10):
users.append(create_user(x))
# projects # projects
for x in xrange(3): for x in xrange(3):
# create project # create project
project = Project.objects.create( project = Project(
name='Project Example %s' % (x), name='Project Example 1 %s' % (x),
description='Project example %s description' % (x), description='Project example %s description' % (x),
owner=random.choice(list(User.objects.all()[:1])), owner=random.choice(users),
public=True, public=True,
) )
project.add_user(project.owner, "developer") project.save()
extras = project.get_extras()
extras.show_burndown = True
extras.show_sprint_burndown = True
extras.sprints = 4
extras.save()
# add random participants to project
participants = []
for t in xrange(random.randint(1, 2)):
participant = create_user(users_counter)
participants.append(participant)
project.add_user(participant, "developer")
users_counter += 1
now_date = now() - datetime.timedelta(30) now_date = now() - datetime.timedelta(30)
@ -81,7 +71,8 @@ class Command(BaseCommand):
created_date=now_date, created_date=now_date,
modified_date=now_date, modified_date=now_date,
estimated_start=now_date, estimated_start=now_date,
estimated_finish=now_date + datetime.timedelta(15) estimated_finish=now_date + datetime.timedelta(15),
order=10
) )
now_date = now_date + datetime.timedelta(15) now_date = now_date + datetime.timedelta(15)
@ -90,54 +81,65 @@ class Command(BaseCommand):
for z in xrange(5): for z in xrange(5):
us = UserStory.objects.create( us = UserStory.objects.create(
subject=lorem_ipsum.words(random.randint(4, 9), common=False), subject=lorem_ipsum.words(random.randint(4, 9), common=False),
priority=6,
points=3,
project=project, project=project,
owner=random.choice(participants), owner=random.choice(users),
description=lorem_ipsum.words(30, common=False), description=lorem_ipsum.words(30, common=False),
milestone=milestone, milestone=milestone,
status='completed', status=UserStoryStatus.objects.get(project=project, order=2),
points=Points.objects.get(project=project, order=3),
tags = []
) )
for tag in lorem_ipsum.words(random.randint(1, 5), common=True).split(" "): for tag in lorem_ipsum.words(random.randint(1, 5), common=True).split(" "):
us.tags.add(tag) us.tags.append(tag)
us.save()
for w in xrange(3): for w in xrange(3):
Task.objects.create( Task.objects.create(
subject="Task %s" % (w), subject="Task %s" % (w),
description=lorem_ipsum.words(30, common=False), description=lorem_ipsum.words(30, common=False),
project=project, project=project,
owner=random.choice(participants), owner=random.choice(users),
milestone=milestone, milestone=milestone,
user_story=us, user_story=us,
status='completed', severity=Severity.objects.get(project=project, order=2),
status=TaskStatus.objects.get(project=project, order=4),
) )
# created unassociated uss. # created unassociated uss.
for y in xrange(10): for y in xrange(10):
us = UserStory.objects.create( us = UserStory.objects.create(
subject=lorem_ipsum.words(random.randint(4, 9), common=False), subject=lorem_ipsum.words(random.randint(4, 9), common=False),
priority=3,
points=3, points=3,
status='open', status='open',
owner=random.choice(participants), status=UserStoryStatus.objects.get(project=project, order=2),
points=Points.objects.get(project=project, order=3),
owner=random.choice(users),
description=lorem_ipsum.words(30, common=False), description=lorem_ipsum.words(30, common=False),
milestone=None, milestone=None,
project=project, project=project,
tags = [],
) )
for tag in lorem_ipsum.words(random.randint(1, 5), common=True).split(" "): for tag in lorem_ipsum.words(random.randint(1, 5), common=True).split(" "):
us.tags.add(tag) us.tags.append(tag)
us.save()
# create bugs. # create bugs.
for y in xrange(20): for y in xrange(20):
bug = Task.objects.create( bug = Issue.objects.create(
project=project, project=project,
type="bug",
severity=random.randint(1, 5), severity=random.randint(1, 5),
subject=lorem_ipsum.words(random.randint(1, 5), common=False), subject=lorem_ipsum.words(random.randint(1, 5), common=False),
description=lorem_ipsum.words(random.randint(1, 15), common=False), description=lorem_ipsum.words(random.randint(1, 15), common=False),
owner=project.owner, owner=project.owner,
tags=[],
) )
for tag in lorem_ipsum.words(random.randint(1, 5), common=True).split(" "): for tag in lorem_ipsum.words(random.randint(1, 5), common=True).split(" "):
bug.tags.add(tag) bug.tags.append(tag)
bug.save()

View File

@ -19,7 +19,7 @@ from greenmine.scrum.choices import *
class Severity(models.Model): class Severity(models.Model):
name = models.CharField(max_length=255, unique=True) name = models.CharField(max_length=255)
order = models.IntegerField(default=10) order = models.IntegerField(default=10)
project = models.ForeignKey("Project", related_name="severities") project = models.ForeignKey("Project", related_name="severities")
@ -31,7 +31,7 @@ class Severity(models.Model):
class IssueStatus(models.Model): class IssueStatus(models.Model):
name = models.CharField(max_length=255, unique=True) name = models.CharField(max_length=255)
order = models.IntegerField(default=10) order = models.IntegerField(default=10)
is_closed = models.BooleanField(default=False) is_closed = models.BooleanField(default=False)
project = models.ForeignKey("Project", related_name="issuestatuses") project = models.ForeignKey("Project", related_name="issuestatuses")
@ -44,7 +44,7 @@ class IssueStatus(models.Model):
class TaskStatus(models.Model): class TaskStatus(models.Model):
name = models.CharField(max_length=255, unique=True) name = models.CharField(max_length=255)
order = models.IntegerField(default=10) order = models.IntegerField(default=10)
is_closed = models.BooleanField(default=False) is_closed = models.BooleanField(default=False)
color = models.CharField(max_length=20, default="#999999") color = models.CharField(max_length=20, default="#999999")
@ -58,7 +58,7 @@ class TaskStatus(models.Model):
class UserStoryStatus(models.Model): class UserStoryStatus(models.Model):
name = models.CharField(max_length=255, unique=True) name = models.CharField(max_length=255)
order = models.IntegerField(default=10) order = models.IntegerField(default=10)
is_closed = models.BooleanField(default=False) is_closed = models.BooleanField(default=False)
project = models.ForeignKey("Project", related_name="usstatuses") project = models.ForeignKey("Project", related_name="usstatuses")
@ -205,7 +205,7 @@ class Milestone(models.Model):
closed = models.BooleanField(default=False) closed = models.BooleanField(default=False)
disponibility = models.FloatField(null=True, default=0.0) disponibility = models.FloatField(null=True, default=0.0)
order = models.PositiveSmallIntegerField("Order") order = models.PositiveSmallIntegerField("Order", default=1)
tags = DictField(blank=True, null=True) tags = DictField(blank=True, null=True)
@ -245,8 +245,8 @@ class UserStory(models.Model):
owner = models.ForeignKey("base.User", null=True, default=None, owner = models.ForeignKey("base.User", null=True, default=None,
related_name="user_stories") related_name="user_stories")
status = models.ForeignKey("UserStoryStatus", related_name="userstories", default=1) status = models.ForeignKey("UserStoryStatus", related_name="userstories")
points = models.ForeignKey("Points", related_name="userstories", default= -1) points = models.ForeignKey("Points", related_name="userstories")
order = models.PositiveSmallIntegerField(default=100) order = models.PositiveSmallIntegerField(default=100)
created_date = models.DateTimeField(auto_now_add=True) created_date = models.DateTimeField(auto_now_add=True)