Set dafault values for attachments in sample data and generate first history entries

remotes/origin/enhancement/email-actions
David Barragán Merino 2014-07-28 21:49:25 +02:00
parent b0bc546706
commit 7df2b50d90
1 changed files with 95 additions and 76 deletions

View File

@ -33,6 +33,8 @@ from taiga.projects.issues.models import *
from taiga.projects.wiki.models import * from taiga.projects.wiki.models import *
from taiga.projects.attachments.models import * from taiga.projects.attachments.models import *
from taiga.projects.history.services import take_snapshot
import random import random
import datetime import datetime
@ -188,65 +190,77 @@ class Command(BaseCommand):
project.save() project.save()
def create_attachment(self, object): def create_attachment(self, object, order):
attachment = Attachment.objects.create( attachment = Attachment.objects.create(project=object.project,
project=object.project, content_type=ContentType.objects.get_for_model(object.__class__),
content_type=ContentType.objects.get_for_model(object.__class__), content_object=object,
content_object=object, order=order,
object_id=object.id, is_deprecated=self.sd.boolean(),
owner=self.sd.db_object_from_queryset( description=self.sd.words(3, 12).split(" "),
object.project.memberships.filter(user__isnull=False)).user, object_id=object.id,
attached_file=self.sd.image_from_directory(*ATTACHMENT_SAMPLE_DATA)) owner=self.sd.db_object_from_queryset(
object.project.memberships.filter(user__isnull=False)).user,
attached_file=self.sd.image_from_directory(
*ATTACHMENT_SAMPLE_DATA))
return attachment return attachment
def create_wiki(self, project, slug): def create_wiki(self, project, slug):
wiki_page = WikiPage.objects.create( wiki_page = WikiPage.objects.create(project=project,
project=project, slug=slug,
slug=slug, content=self.sd.paragraphs(3,15),
content=self.sd.paragraphs(3,15), owner=self.sd.db_object_from_queryset(
owner=self.sd.db_object_from_queryset(project.memberships.filter(user__isnull=False)).user) project.memberships.filter(user__isnull=False)).user)
for i in range(self.sd.int(*NUM_ATTACHMENTS)): for i in range(self.sd.int(*NUM_ATTACHMENTS)):
attachment = self.create_attachment(wiki_page) attachment = self.create_attachment(wiki_page, i)
take_snapshot(wiki_page,
comment=self.sd.paragraph(),
user=wiki_page.owner)
return wiki_page return wiki_page
def create_bug(self, project): def create_bug(self, project):
bug = Issue.objects.create( bug = Issue.objects.create(project=project,
project=project, subject=self.sd.choice(SUBJECT_CHOICES),
subject=self.sd.choice(SUBJECT_CHOICES), description=self.sd.paragraph(),
description=self.sd.paragraph(), owner=self.sd.db_object_from_queryset(
owner=self.sd.db_object_from_queryset(project.memberships.filter(user__isnull=False)).user, project.memberships.filter(user__isnull=False)).user,
severity=self.sd.db_object_from_queryset(Severity.objects.filter( severity=self.sd.db_object_from_queryset(Severity.objects.filter(
project=project)), project=project)),
status=self.sd.db_object_from_queryset(IssueStatus.objects.filter( status=self.sd.db_object_from_queryset(IssueStatus.objects.filter(
project=project)), project=project)),
priority=self.sd.db_object_from_queryset(Priority.objects.filter( priority=self.sd.db_object_from_queryset(Priority.objects.filter(
project=project)), project=project)),
type=self.sd.db_object_from_queryset(IssueType.objects.filter( type=self.sd.db_object_from_queryset(IssueType.objects.filter(
project=project)), project=project)),
tags=self.sd.words(1, 5).split(" ")) tags=self.sd.words(1, 5).split(" "))
for i in range(self.sd.int(*NUM_ATTACHMENTS)): for i in range(self.sd.int(*NUM_ATTACHMENTS)):
attachment = self.create_attachment(bug) attachment = self.create_attachment(bug, i)
if bug.status.order != 1: if bug.status.order != 1:
bug.assigned_to = self.sd.db_object_from_queryset(project.memberships.filter(user__isnull=False)).user bug.assigned_to = self.sd.db_object_from_queryset(project.memberships.filter(
user__isnull=False)).user
bug.save() bug.save()
take_snapshot(bug,
comment=self.sd.paragraph(),
user=bug.owner)
return bug return bug
def create_task(self, project, milestone, us, min_date, max_date, closed=False): def create_task(self, project, milestone, us, min_date, max_date, closed=False):
task = Task( task = Task(subject=self.sd.choice(SUBJECT_CHOICES),
subject=self.sd.choice(SUBJECT_CHOICES), description=self.sd.paragraph(),
description=self.sd.paragraph(), project=project,
project=project, owner=self.sd.db_object_from_queryset(project.memberships.filter(user__isnull=False)).user,
owner=self.sd.db_object_from_queryset(project.memberships.filter(user__isnull=False)).user, milestone=milestone,
milestone=milestone, user_story=us,
user_story=us, finished_date=None,
finished_date=None, assigned_to = self.sd.db_object_from_queryset(
assigned_to = self.sd.db_object_from_queryset(project.memberships.filter(user__isnull=False)).user) project.memberships.filter(user__isnull=False)).user)
if closed: if closed:
task.status = project.task_statuses.get(order=4) task.status = project.task_statuses.get(order=4)
@ -259,21 +273,24 @@ class Command(BaseCommand):
task.save() task.save()
for i in range(self.sd.int(*NUM_ATTACHMENTS)): for i in range(self.sd.int(*NUM_ATTACHMENTS)):
attachment = self.create_attachment(task) attachment = self.create_attachment(task, i)
take_snapshot(task,
comment=self.sd.paragraph(),
user=task.owner)
return task return task
def create_us(self, project, milestone=None, computable_project_roles=list(Role.objects.all())): def create_us(self, project, milestone=None, computable_project_roles=list(Role.objects.all())):
us = UserStory.objects.create( us = UserStory.objects.create(subject=self.sd.choice(SUBJECT_CHOICES),
subject=self.sd.choice(SUBJECT_CHOICES), project=project,
project=project, owner=self.sd.db_object_from_queryset(
owner=self.sd.db_object_from_queryset(project.memberships.filter(user__isnull=False)).user, project.memberships.filter(user__isnull=False)).user,
description=self.sd.paragraph(), description=self.sd.paragraph(),
milestone=milestone, milestone=milestone,
status=self.sd.db_object_from_queryset(project.us_statuses.filter( status=self.sd.db_object_from_queryset(project.us_statuses.filter(
is_closed=False)), is_closed=False)),
tags=self.sd.words(1, 3).split(" ") tags=self.sd.words(1, 3).split(" "))
)
for role_points in us.role_points.filter(role__in=computable_project_roles): for role_points in us.role_points.filter(role__in=computable_project_roles):
if milestone: if milestone:
@ -286,37 +303,40 @@ class Command(BaseCommand):
role_points.save() role_points.save()
for i in range(self.sd.int(*NUM_ATTACHMENTS)): for i in range(self.sd.int(*NUM_ATTACHMENTS)):
attachment = self.create_attachment(us) attachment = self.create_attachment(us, i)
if self.sd.choice([True, True, False, True, True]): if self.sd.choice([True, True, False, True, True]):
us.assigned_to = self.sd.db_object_from_queryset(project.memberships.filter(user__isnull=False)).user us.assigned_to = self.sd.db_object_from_queryset(project.memberships.filter(user__isnull=False)).user
us.save() us.save()
take_snapshot(us,
comment=self.sd.paragraph(),
user=us.owner)
return us return us
def create_milestone(self, project, start_date, end_date): def create_milestone(self, project, start_date, end_date):
milestone = Milestone.objects.create( milestone = Milestone.objects.create(project=project,
project=project, name='Sprint {0}-{1}-{2}'.format(start_date.year,
name='Sprint {0}-{1}-{2}'.format(start_date.year, start_date.month,
start_date.month, start_date.day),
start_date.day), owner=self.sd.db_object_from_queryset(
owner=self.sd.db_object_from_queryset(project.memberships.filter(user__isnull=False)).user, project.memberships.filter(user__isnull=False)).user,
created_date=start_date, created_date=start_date,
modified_date=start_date, modified_date=start_date,
estimated_start=start_date, estimated_start=start_date,
estimated_finish=end_date, estimated_finish=end_date,
order=10) order=10)
return milestone return milestone
def create_project(self, counter): def create_project(self, counter):
project = Project.objects.create( project = Project.objects.create(name='Project Example {0}'.format(counter),
name='Project Example {0}'.format(counter), description='Project example {0} description'.format(counter),
description='Project example {0} description'.format(counter), owner=random.choice(self.users),
owner=random.choice(self.users), public=True,
public=True, total_story_points=self.sd.int(600, 3000),
total_story_points=self.sd.int(600, 3000), total_milestones=self.sd.int(5,10))
total_milestones=self.sd.int(5,10))
return project return project
@ -326,12 +346,11 @@ class Command(BaseCommand):
full_name = full_name or "{} {}".format(self.sd.name('es'), self.sd.surname('es', number=1)) full_name = full_name or "{} {}".format(self.sd.name('es'), self.sd.surname('es', number=1))
email = email or self.sd.email() email = email or self.sd.email()
user = User.objects.create( user = User.objects.create(username=username,
username=username, full_name=full_name,
full_name=full_name, email=email,
email=email, token=''.join(random.sample('abcdef0123456789', 10)),
token=''.join(random.sample('abcdef0123456789', 10)), color=self.sd.choice(COLOR_CHOICES))
color=self.sd.choice(COLOR_CHOICES))
user.set_password('123123') user.set_password('123123')
user.save() user.save()