Allow default status, priority, severity and type in issues and tasks
parent
b22c5a671f
commit
c32d505b96
|
@ -0,0 +1,38 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('issues', '0004_auto_20150114_0954'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='issue',
|
||||
name='priority',
|
||||
field=models.ForeignKey(blank=True, null=True, to='projects.Priority', related_name='issues', verbose_name='priority'),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='issue',
|
||||
name='severity',
|
||||
field=models.ForeignKey(blank=True, null=True, to='projects.Severity', related_name='issues', verbose_name='severity'),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='issue',
|
||||
name='status',
|
||||
field=models.ForeignKey(blank=True, null=True, to='projects.IssueStatus', related_name='issues', verbose_name='status'),
|
||||
preserve_default=True,
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='issue',
|
||||
name='type',
|
||||
field=models.ForeignKey(blank=True, null=True, to='projects.IssueType', related_name='issues', verbose_name='type'),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
|
@ -36,13 +36,13 @@ class Issue(OCCModelMixin, WatchedModelMixin, BlockedMixin, TaggedMixin, models.
|
|||
verbose_name=_("ref"))
|
||||
owner = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True, default=None,
|
||||
related_name="owned_issues", verbose_name=_("owner"))
|
||||
status = models.ForeignKey("projects.IssueStatus", null=False, blank=False,
|
||||
status = models.ForeignKey("projects.IssueStatus", null=True, blank=True,
|
||||
related_name="issues", verbose_name=_("status"))
|
||||
severity = models.ForeignKey("projects.Severity", null=False, blank=False,
|
||||
severity = models.ForeignKey("projects.Severity", null=True, blank=True,
|
||||
related_name="issues", verbose_name=_("severity"))
|
||||
priority = models.ForeignKey("projects.Priority", null=False, blank=False,
|
||||
priority = models.ForeignKey("projects.Priority", null=True, blank=True,
|
||||
related_name="issues", verbose_name=_("priority"))
|
||||
type = models.ForeignKey("projects.IssueType", null=False, blank=False,
|
||||
type = models.ForeignKey("projects.IssueType", null=True, blank=True,
|
||||
related_name="issues", verbose_name=_("type"))
|
||||
milestone = models.ForeignKey("milestones.Milestone", null=True, blank=True,
|
||||
default=None, related_name="issues",
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import models, migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('tasks', '0005_auto_20150114_0954'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='task',
|
||||
name='status',
|
||||
field=models.ForeignKey(blank=True, null=True, to='projects.TaskStatus', related_name='tasks', verbose_name='status'),
|
||||
preserve_default=True,
|
||||
),
|
||||
]
|
|
@ -35,7 +35,7 @@ class Task(OCCModelMixin, WatchedModelMixin, BlockedMixin, TaggedMixin, models.M
|
|||
verbose_name=_("ref"))
|
||||
owner = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True, default=None,
|
||||
related_name="owned_tasks", verbose_name=_("owner"))
|
||||
status = models.ForeignKey("projects.TaskStatus", null=False, blank=False,
|
||||
status = models.ForeignKey("projects.TaskStatus", null=True, blank=True,
|
||||
related_name="tasks", verbose_name=_("status"))
|
||||
project = models.ForeignKey("projects.Project", null=False, blank=False,
|
||||
related_name="tasks", verbose_name=_("project"))
|
||||
|
|
|
@ -46,6 +46,31 @@ def test_update_issues_order_in_bulk():
|
|||
model=models.Issue)
|
||||
|
||||
|
||||
def test_create_issue_without_status(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
status = f.IssueStatusFactory.create(project=project)
|
||||
priority = f.PriorityFactory.create(project=project)
|
||||
severity = f.SeverityFactory.create(project=project)
|
||||
type = f.IssueTypeFactory.create(project=project)
|
||||
project.default_issue_status = status
|
||||
project.default_priority = priority
|
||||
project.default_severity = severity
|
||||
project.default_issue_type = type
|
||||
project.save()
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
url = reverse("issues-list")
|
||||
|
||||
data = {"subject": "Test user story", "project": project.id}
|
||||
client.login(user)
|
||||
response = client.json.post(url, json.dumps(data))
|
||||
assert response.status_code == 201
|
||||
assert response.data['status'] == project.default_issue_status.id
|
||||
assert response.data['severity'] == project.default_severity.id
|
||||
assert response.data['priority'] == project.default_priority.id
|
||||
assert response.data['type'] == project.default_issue_type.id
|
||||
|
||||
|
||||
def test_api_create_issues_in_bulk(client):
|
||||
project = f.create_project()
|
||||
f.MembershipFactory(project=project, user=project.owner, is_owner=True)
|
||||
|
|
|
@ -36,6 +36,23 @@ Task #2
|
|||
db.save_in_bulk.assert_called_once_with(tasks, None, None)
|
||||
|
||||
|
||||
def test_create_task_without_status(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
status = f.TaskStatusFactory.create(project=project)
|
||||
project.default_task_status = status
|
||||
project.save()
|
||||
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
url = reverse("tasks-list")
|
||||
|
||||
data = {"subject": "Test user story", "project": project.id}
|
||||
client.login(user)
|
||||
response = client.json.post(url, json.dumps(data))
|
||||
assert response.status_code == 201
|
||||
assert response.data['status'] == project.default_task_status.id
|
||||
|
||||
|
||||
def test_api_update_task_tags(client):
|
||||
task = f.create_task()
|
||||
f.MembershipFactory.create(project=task.project, user=task.owner, is_owner=True)
|
||||
|
|
|
@ -45,6 +45,23 @@ def test_update_userstories_order_in_bulk():
|
|||
model=models.UserStory)
|
||||
|
||||
|
||||
def test_create_userstory_without_status(client):
|
||||
user = f.UserFactory.create()
|
||||
project = f.ProjectFactory.create(owner=user)
|
||||
status = f.UserStoryStatusFactory.create(project=project)
|
||||
project.default_us_status = status
|
||||
project.save()
|
||||
|
||||
f.MembershipFactory.create(project=project, user=user, is_owner=True)
|
||||
url = reverse("userstories-list")
|
||||
|
||||
data = {"subject": "Test user story", "project": project.id}
|
||||
client.login(user)
|
||||
response = client.json.post(url, json.dumps(data))
|
||||
assert response.status_code == 201
|
||||
assert response.data['status'] == project.default_us_status.id
|
||||
|
||||
|
||||
def test_api_delete_userstory(client):
|
||||
us = f.UserStoryFactory.create()
|
||||
f.MembershipFactory.create(project=us.project, user=us.owner, is_owner=True)
|
||||
|
|
Loading…
Reference in New Issue