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.auth.models import User
from greenmine.scrum.models import Project, Milestone, UserStory, Task
from greenmine.scrum.models import *
subjects = [
"Fixing templates for Django 1.2.",
@ -31,44 +31,34 @@ subjects = [
class Command(BaseCommand):
@transaction.commit_on_success
def handle(self, *args, **options):
from django.core import management
management.call_command('loaddata', 'development_users')
users_counter = 0
def create_user(counter):
user = User.objects.create(
username='foouser%d' % (counter),
first_name='foouser%d' % (counter),
email='foouser%d@foodomain.com' % (counter),
user = User(
username='user%d' % (counter),
first_name='user%d' % (counter),
email='foouser%d@domain.com' % (counter),
)
user.set_password('user%d' % (counter))
user.save()
return user
users = []
for x in range(10):
users.append(create_user(x))
# projects
for x in xrange(3):
# create project
project = Project.objects.create(
name='Project Example %s' % (x),
project = Project(
name='Project Example 1 %s' % (x),
description='Project example %s description' % (x),
owner=random.choice(list(User.objects.all()[:1])),
owner=random.choice(users),
public=True,
)
project.add_user(project.owner, "developer")
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
project.save()
now_date = now() - datetime.timedelta(30)
@ -81,7 +71,8 @@ class Command(BaseCommand):
created_date=now_date,
modified_date=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)
@ -90,54 +81,65 @@ class Command(BaseCommand):
for z in xrange(5):
us = UserStory.objects.create(
subject=lorem_ipsum.words(random.randint(4, 9), common=False),
priority=6,
points=3,
project=project,
owner=random.choice(participants),
owner=random.choice(users),
description=lorem_ipsum.words(30, common=False),
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(" "):
us.tags.add(tag)
us.tags.append(tag)
us.save()
for w in xrange(3):
Task.objects.create(
subject="Task %s" % (w),
description=lorem_ipsum.words(30, common=False),
project=project,
owner=random.choice(participants),
owner=random.choice(users),
milestone=milestone,
user_story=us,
status='completed',
severity=Severity.objects.get(project=project, order=2),
status=TaskStatus.objects.get(project=project, order=4),
)
# created unassociated uss.
for y in xrange(10):
us = UserStory.objects.create(
subject=lorem_ipsum.words(random.randint(4, 9), common=False),
priority=3,
points=3,
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),
milestone=None,
project=project,
tags = [],
)
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.
for y in xrange(20):
bug = Task.objects.create(
bug = Issue.objects.create(
project=project,
type="bug",
severity=random.randint(1, 5),
subject=lorem_ipsum.words(random.randint(1, 5), common=False),
description=lorem_ipsum.words(random.randint(1, 15), common=False),
owner=project.owner,
tags=[],
)
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):
name = models.CharField(max_length=255, unique=True)
name = models.CharField(max_length=255)
order = models.IntegerField(default=10)
project = models.ForeignKey("Project", related_name="severities")
@ -31,7 +31,7 @@ class Severity(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)
is_closed = models.BooleanField(default=False)
project = models.ForeignKey("Project", related_name="issuestatuses")
@ -44,7 +44,7 @@ class IssueStatus(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)
is_closed = models.BooleanField(default=False)
color = models.CharField(max_length=20, default="#999999")
@ -58,7 +58,7 @@ class TaskStatus(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)
is_closed = models.BooleanField(default=False)
project = models.ForeignKey("Project", related_name="usstatuses")
@ -205,7 +205,7 @@ class Milestone(models.Model):
closed = models.BooleanField(default=False)
disponibility = models.FloatField(null=True, default=0.0)
order = models.PositiveSmallIntegerField("Order")
order = models.PositiveSmallIntegerField("Order", default=1)
tags = DictField(blank=True, null=True)
@ -245,8 +245,8 @@ class UserStory(models.Model):
owner = models.ForeignKey("base.User", null=True, default=None,
related_name="user_stories")
status = models.ForeignKey("UserStoryStatus", related_name="userstories", default=1)
points = models.ForeignKey("Points", related_name="userstories", default= -1)
status = models.ForeignKey("UserStoryStatus", related_name="userstories")
points = models.ForeignKey("Points", related_name="userstories")
order = models.PositiveSmallIntegerField(default=100)
created_date = models.DateTimeField(auto_now_add=True)