Fixed sample_data generation

remotes/origin/enhancement/email-actions
Jesús Espino 2013-03-28 11:03:54 +01:00
parent 765802e84a
commit 705cbeefc7
3 changed files with 15 additions and 11 deletions

View File

@ -28,15 +28,15 @@ def ref_uniquely(p, seq_field, model, field='ref'):
"""
Returns a unique reference code based on base64 and time.
"""
project = project.__class__.objects.select_for_update().get(pk=p.pk)
project = p.__class__.objects.select_for_update().get(pk=p.pk)
ref = getattr(project, seq_field) + 1
while True:
params = {field: ref, 'project': _project}
params = {field: ref, 'project': project}
if not model.objects.filter(**params).exists():
setattr(_project, seq_field, ref)
_project.save(update_fields=[seq_field])
setattr(project, seq_field, ref)
project.save(update_fields=[seq_field])
return ref
time.sleep(0.0002)

View File

@ -103,6 +103,7 @@ class Command(BaseCommand):
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.
@ -127,7 +128,9 @@ class Command(BaseCommand):
for y in xrange(20):
bug = Issue.objects.create(
project=project,
severity=random.randint(1, 5),
severity=Severity.objects.get(project=project, order=2),
priority=Priority.objects.get(project=project, order=3),
type=IssueType.objects.get(project=project, order=1),
subject=lorem_ipsum.words(random.randint(1, 5), common=False),
description=lorem_ipsum.words(random.randint(1, 15), common=False),
owner=project.owner,

View File

@ -1,8 +1,5 @@
# -*- coding: utf-8 -*-
import re
from django.conf import settings
from django.db import models
from django.utils import timezone
@ -273,7 +270,7 @@ class UserStory(models.Model):
return u"{0} ({1})".format(self.subject, self.ref)
def save(self, *args, **kwargs):
if not self.ref:
if not self.ref and self.project:
self.ref = ref_uniquely(self.project, "last_us_ref", self.__class__)
super(UserStory, self).save(*args, **kwargs)
@ -313,6 +310,7 @@ class Task(models.Model):
severity = models.ForeignKey("Severity", related_name="tasks")
priority = models.ForeignKey("Priority", related_name="tasks")
status = models.ForeignKey("TaskStatus", related_name="tasks")
milestone = models.ForeignKey('Milestone', related_name='tasks', null=True,
default=None, blank=True)
@ -395,10 +393,10 @@ class Issue(models.Model):
if not self.ref:
self.ref = ref_uniquely(self.project, "last_issue_ref", self.__class__)
super(Task, self).save(*args, **kwargs)
super(Issue, self).save(*args, **kwargs)
# Model related signals handlers
@receiver(models.signals.post_save, sender=Project, dispatch_uid="project_post_save")
def project_post_save(sender, instance, created, **kwargs):
from greenmine.base.services import RoleGroupsService
@ -431,6 +429,9 @@ def project_post_save(sender, instance, created, **kwargs):
for order, name in POINTS_CHOICES:
Points.objects.create(project=instance, name=name, order=order)
for order, name in ISSUETYPES:
IssueType.objects.create(project=instance, name=name, order=order)
# Email alerts signals handlers
# TODO: temporary commented (Pending refactor)