Allow setting project when creating related user stories for epics in bulk mode

remotes/origin/issue/4795/notification_even_they_are_disabled
Alejandro Alonso 2016-09-05 09:56:12 +02:00 committed by David Barragán Merino
parent 68f6cf08b2
commit b975a22859
3 changed files with 10 additions and 8 deletions

View File

@ -263,7 +263,6 @@ class EpicRelatedUserStoryViewSet(NestedViewSetMixin, BlockedByProjectMixin, Mod
return services.update_epic_related_userstories_order_in_bulk(data, epic=obj.epic) return services.update_epic_related_userstories_order_in_bulk(data, epic=obj.epic)
def post_save(self, obj, created=False): def post_save(self, obj, created=False):
if not created: if not created:
# Let's reorder the related stuff after edit the element # Let's reorder the related stuff after edit the element
@ -276,21 +275,21 @@ class EpicRelatedUserStoryViewSet(NestedViewSetMixin, BlockedByProjectMixin, Mod
@list_route(methods=["POST"]) @list_route(methods=["POST"])
def bulk_create(self, request, **kwargs): def bulk_create(self, request, **kwargs):
validator = validators.CrateRelatedUserStoriesBulkValidator(data=request.DATA) validator = validators.CreateRelatedUserStoriesBulkValidator(data=request.DATA)
if not validator.is_valid(): if not validator.is_valid():
return response.BadRequest(validator.errors) return response.BadRequest(validator.errors)
data = validator.data data = validator.data
epic = get_object_or_404(models.Epic, id=kwargs["epic"]) epic = get_object_or_404(models.Epic, id=kwargs["epic"])
project = epic.project project = Project.objects.get(pk=data.get('project_id'))
self.check_permissions(request, 'bulk_create', project) self.check_permissions(request, 'bulk_create', project)
if project.blocked_code is not None: if project.blocked_code is not None:
raise exc.Blocked(_("Blocked element")) raise exc.Blocked(_("Blocked element"))
services.create_related_userstories_in_bulk( services.create_related_userstories_in_bulk(
data["userstories"], data["bulk_userstories"],
epic, epic,
project=project, project=project,
owner=request.user owner=request.user

View File

@ -55,9 +55,11 @@ class EpicsBulkValidator(ProjectExistsValidator, EpicExistsValidator,
bulk_epics = serializers.CharField() bulk_epics = serializers.CharField()
class CrateRelatedUserStoriesBulkValidator(ProjectExistsValidator, EpicExistsValidator, class CreateRelatedUserStoriesBulkValidator(ProjectExistsValidator, EpicExistsValidator,
validators.Validator): validators.Validator):
userstories = serializers.CharField() project_id = serializers.IntegerField()
bulk_userstories = serializers.CharField()
class EpicRelatedUserStoryValidator(validators.ModelValidator): class EpicRelatedUserStoryValidator(validators.ModelValidator):

View File

@ -101,7 +101,8 @@ def test_bulk_create_related_userstories(client):
url = reverse('epics-related-userstories-bulk-create', args=[epic.pk]) url = reverse('epics-related-userstories-bulk-create', args=[epic.pk])
data = { data = {
"userstories": "test1\ntest2" "bulk_userstories": "test1\ntest2",
"project_id": project.id
} }
client.login(user) client.login(user)
response = client.json.post(url, json.dumps(data)) response = client.json.post(url, json.dumps(data))