Work in progress on sample_data command.
parent
79c0630c3f
commit
64eb9bb3b3
|
@ -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()
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue