145 lines
5.4 KiB
Python
145 lines
5.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
import random
|
|
import datetime
|
|
|
|
from django.core.management.base import BaseCommand
|
|
from django.db import transaction
|
|
from django.utils.timezone import now
|
|
|
|
from django.contrib.webdesign import lorem_ipsum
|
|
|
|
from greenmine.base.models import User
|
|
from greenmine.scrum.models import *
|
|
|
|
subjects = [
|
|
"Fixing templates for Django 1.2.",
|
|
"get_actions() does not check for 'delete_selected' in actions",
|
|
"Experimental: modular file types",
|
|
"Add setting to allow regular users to create folders at the root level.",
|
|
"add tests for bulk operations",
|
|
"create testsuite with matrix builds",
|
|
"Lighttpd support",
|
|
"Lighttpd x-sendfile support",
|
|
"Added file copying and processing of images (resizing)",
|
|
"Exception is thrown if trying to add a folder with existing name",
|
|
"Feature/improved image admin",
|
|
"Support for bulk actions",
|
|
]
|
|
|
|
|
|
class Command(BaseCommand):
|
|
def create_user(self, counter):
|
|
user = User.objects.create(
|
|
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
|
|
|
|
@transaction.commit_on_success
|
|
def handle(self, *args, **options):
|
|
users = []
|
|
for x in range(10):
|
|
users.append(self.create_user(x))
|
|
|
|
# projects
|
|
for x in xrange(3):
|
|
# create project
|
|
project = Project(
|
|
name='Project Example 1 %s' % (x),
|
|
description='Project example %s description' % (x),
|
|
owner=random.choice(users),
|
|
public=True,
|
|
)
|
|
|
|
project.save()
|
|
|
|
now_date = now() - datetime.timedelta(30)
|
|
|
|
# create random milestones
|
|
for y in xrange(2):
|
|
milestone = Milestone.objects.create(
|
|
project=project,
|
|
name='Sprint %s' % (y),
|
|
owner=project.owner,
|
|
created_date=now_date,
|
|
modified_date=now_date,
|
|
estimated_start=now_date,
|
|
estimated_finish=now_date + datetime.timedelta(15),
|
|
order=10
|
|
)
|
|
|
|
now_date = now_date + datetime.timedelta(15)
|
|
|
|
# create uss asociated to milestones
|
|
for z in xrange(5):
|
|
us = UserStory.objects.create(
|
|
subject=lorem_ipsum.words(random.randint(4, 9), common=False),
|
|
project=project,
|
|
owner=random.choice(users),
|
|
description=lorem_ipsum.words(30, common=False),
|
|
milestone=milestone,
|
|
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.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(users),
|
|
milestone=milestone,
|
|
user_story=us,
|
|
severity=Severity.objects.get(project=project, order=2),
|
|
status=TaskStatus.objects.get(project=project, order=4),
|
|
priority=Priority.objects.get(project=project, order=3),
|
|
)
|
|
|
|
# created unassociated uss.
|
|
for y in xrange(10):
|
|
us = UserStory.objects.create(
|
|
subject=lorem_ipsum.words(random.randint(4, 9), common=False),
|
|
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.append(tag)
|
|
|
|
us.save()
|
|
|
|
# create bugs.
|
|
for y in xrange(20):
|
|
bug = Issue.objects.create(
|
|
project=project,
|
|
subject=lorem_ipsum.words(random.randint(1, 5), common=False),
|
|
description=lorem_ipsum.words(random.randint(1, 15), common=False),
|
|
owner=project.owner,
|
|
severity=Severity.objects.get(project=project, order=2),
|
|
status=IssueStatus.objects.get(project=project, order=4),
|
|
priority=Priority.objects.get(project=project, order=3),
|
|
type=IssueType.objects.get(project=project, order=1),
|
|
tags=[],
|
|
)
|
|
|
|
for tag in lorem_ipsum.words(random.randint(1, 5), common=True).split(" "):
|
|
bug.tags.append(tag)
|
|
|
|
bug.save()
|