Fixing commits related to Task #439
parent
7af5f6e368
commit
2ca0039852
|
@ -26,7 +26,7 @@ from taiga.base import exceptions as exc
|
||||||
from taiga.base.decorators import list_route
|
from taiga.base.decorators import list_route
|
||||||
from taiga.base.permissions import has_project_perm
|
from taiga.base.permissions import has_project_perm
|
||||||
from taiga.base.api import ModelCrudViewSet
|
from taiga.base.api import ModelCrudViewSet
|
||||||
from taiga.projects.models import Project
|
from taiga.projects.models import Project, TaskStatus
|
||||||
from taiga.projects.milestones.models import Milestone
|
from taiga.projects.milestones.models import Milestone
|
||||||
from taiga.projects.userstories.models import UserStory
|
from taiga.projects.userstories.models import UserStory
|
||||||
|
|
||||||
|
@ -91,10 +91,15 @@ class TaskViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin,
|
||||||
|
|
||||||
project = get_object_or_404(Project, id=project_id)
|
project = get_object_or_404(Project, id=project_id)
|
||||||
user_story = get_object_or_404(UserStory, id=us_id)
|
user_story = get_object_or_404(UserStory, id=us_id)
|
||||||
status = get_object_or_404(request.DATA.get('statusId', project.default_task_status.id))
|
|
||||||
|
|
||||||
self.check_permissions(request, 'bulk_create', project)
|
self.check_permissions(request, 'bulk_create', project)
|
||||||
|
|
||||||
|
status_id = request.DATA.get('statusId', None)
|
||||||
|
if status_id:
|
||||||
|
status = get_object_or_404(TaskStatus, id=status_id)
|
||||||
|
else:
|
||||||
|
status = project.default_us_status
|
||||||
|
|
||||||
tasks = services.create_tasks_in_bulk(bulk_tasks, callback=self.post_save, project=project,
|
tasks = services.create_tasks_in_bulk(bulk_tasks, callback=self.post_save, project=project,
|
||||||
user_story=user_story, owner=request.user,
|
user_story=user_story, owner=request.user,
|
||||||
milestone=milestone, status=status)
|
milestone=milestone, status=status)
|
||||||
|
|
|
@ -33,7 +33,7 @@ from taiga.projects.notifications import WatchedResourceMixin
|
||||||
from taiga.projects.history import HistoryResourceMixin
|
from taiga.projects.history import HistoryResourceMixin
|
||||||
from taiga.projects.occ import OCCResourceMixin
|
from taiga.projects.occ import OCCResourceMixin
|
||||||
|
|
||||||
from taiga.projects.models import Project
|
from taiga.projects.models import Project, UserStoryStatus
|
||||||
from taiga.projects.history.services import take_snapshot
|
from taiga.projects.history.services import take_snapshot
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
|
@ -77,7 +77,12 @@ class UserStoryViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMi
|
||||||
raise exc.BadRequest(_('projectId parameter is mandatory'))
|
raise exc.BadRequest(_('projectId parameter is mandatory'))
|
||||||
|
|
||||||
project = get_object_or_404(Project, id=project_id)
|
project = get_object_or_404(Project, id=project_id)
|
||||||
status = get_object_or_404(request.DATA.get('statusId', project.default_us_status.id))
|
|
||||||
|
status_id = request.DATA.get('statusId', None)
|
||||||
|
if status_id:
|
||||||
|
status = get_object_or_404(UserStoryStatus, id=status_id)
|
||||||
|
else:
|
||||||
|
status = project.default_us_status
|
||||||
|
|
||||||
self.check_permissions(request, 'bulk_create', project)
|
self.check_permissions(request, 'bulk_create', project)
|
||||||
|
|
||||||
|
|
|
@ -367,11 +367,12 @@ def create_invitation(**kwargs):
|
||||||
|
|
||||||
def create_userstory(**kwargs):
|
def create_userstory(**kwargs):
|
||||||
"Create an user story along with its dependencies"
|
"Create an user story along with its dependencies"
|
||||||
project = kwargs.pop("project", ProjectFactory())
|
project = kwargs.pop("project", create_project())
|
||||||
|
|
||||||
defaults = {
|
defaults = {
|
||||||
"project": project,
|
"project": project,
|
||||||
"owner": project.owner
|
"owner": project.owner,
|
||||||
|
"milestone": MilestoneFactory.create(project=project, owner=project.owner)
|
||||||
}
|
}
|
||||||
defaults.update(kwargs)
|
defaults.update(kwargs)
|
||||||
|
|
||||||
|
@ -388,6 +389,9 @@ def create_project(**kwargs):
|
||||||
project.default_severity = SeverityFactory.create(project=project)
|
project.default_severity = SeverityFactory.create(project=project)
|
||||||
project.default_priority = PriorityFactory.create(project=project)
|
project.default_priority = PriorityFactory.create(project=project)
|
||||||
project.default_issue_type = IssueTypeFactory.create(project=project)
|
project.default_issue_type = IssueTypeFactory.create(project=project)
|
||||||
|
project.default_us_status = UserStoryStatusFactory.create(project=project)
|
||||||
|
project.default_task_status = TaskStatusFactory.create(project=project)
|
||||||
|
|
||||||
project.save()
|
project.save()
|
||||||
|
|
||||||
return project
|
return project
|
||||||
|
|
|
@ -43,3 +43,21 @@ def test_api_update_task_tags(client):
|
||||||
response = client.json.patch(url, data)
|
response = client.json.patch(url, data)
|
||||||
|
|
||||||
assert response.status_code == 200, response.data
|
assert response.status_code == 200, response.data
|
||||||
|
|
||||||
|
|
||||||
|
def test_api_create_in_bulk_with_status(client):
|
||||||
|
us = f.create_userstory()
|
||||||
|
url = reverse("tasks-bulk-create")
|
||||||
|
data = {
|
||||||
|
"bulkTasks": "Story #1\nStory #2",
|
||||||
|
"usId": us.id,
|
||||||
|
"projectId": us.project.id,
|
||||||
|
"sprintId": us.milestone.id,
|
||||||
|
"statusId": us.project.default_task_status.id
|
||||||
|
}
|
||||||
|
|
||||||
|
client.login(us.owner)
|
||||||
|
response = client.json.post(url, data)
|
||||||
|
|
||||||
|
assert response.status_code == 200
|
||||||
|
assert response.data[0]["status"] == us.project.default_task_status.id
|
||||||
|
|
|
@ -64,3 +64,19 @@ def test_api_filter_by_subject(client):
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
assert number_of_stories == 1, number_of_stories
|
assert number_of_stories == 1, number_of_stories
|
||||||
|
|
||||||
|
|
||||||
|
def test_api_create_in_bulk_with_status(client):
|
||||||
|
project = f.create_project()
|
||||||
|
url = reverse("userstories-bulk-create")
|
||||||
|
data = {
|
||||||
|
"bulkStories": "Story #1\nStory #2",
|
||||||
|
"projectId": project.id,
|
||||||
|
"statusId": project.default_us_status.id
|
||||||
|
}
|
||||||
|
|
||||||
|
client.login(project.owner)
|
||||||
|
response = client.json.post(url, data)
|
||||||
|
|
||||||
|
assert response.status_code == 200
|
||||||
|
assert response.data[0]["status"] == project.default_us_status.id
|
||||||
|
|
Loading…
Reference in New Issue