diff --git a/greenmine/scrum/management/commands/sample_data.py b/greenmine/scrum/management/commands/sample_data.py index 9014b19a..e72ca0db 100644 --- a/greenmine/scrum/management/commands/sample_data.py +++ b/greenmine/scrum/management/commands/sample_data.py @@ -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() diff --git a/greenmine/scrum/models.py b/greenmine/scrum/models.py index 879133a7..6b42d5c5 100644 --- a/greenmine/scrum/models.py +++ b/greenmine/scrum/models.py @@ -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)