Fixing commits related to Task #439

remotes/origin/enhancement/email-actions
Anler Hp 2014-07-30 11:43:38 +02:00
parent 7af5f6e368
commit 2ca0039852
5 changed files with 54 additions and 6 deletions

View File

@ -26,7 +26,7 @@ from taiga.base import exceptions as exc
from taiga.base.decorators import list_route
from taiga.base.permissions import has_project_perm
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.userstories.models import UserStory
@ -91,10 +91,15 @@ class TaskViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin,
project = get_object_or_404(Project, id=project_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)
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,
user_story=user_story, owner=request.user,
milestone=milestone, status=status)

View File

@ -33,7 +33,7 @@ from taiga.projects.notifications import WatchedResourceMixin
from taiga.projects.history import HistoryResourceMixin
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 . import models
@ -77,7 +77,12 @@ class UserStoryViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMi
raise exc.BadRequest(_('projectId parameter is mandatory'))
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)

View File

@ -367,11 +367,12 @@ def create_invitation(**kwargs):
def create_userstory(**kwargs):
"Create an user story along with its dependencies"
project = kwargs.pop("project", ProjectFactory())
project = kwargs.pop("project", create_project())
defaults = {
"project": project,
"owner": project.owner
"owner": project.owner,
"milestone": MilestoneFactory.create(project=project, owner=project.owner)
}
defaults.update(kwargs)
@ -388,6 +389,9 @@ def create_project(**kwargs):
project.default_severity = SeverityFactory.create(project=project)
project.default_priority = PriorityFactory.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()
return project

View File

@ -43,3 +43,21 @@ def test_api_update_task_tags(client):
response = client.json.patch(url, 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

View File

@ -64,3 +64,19 @@ def test_api_filter_by_subject(client):
assert response.status_code == 200
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