Allow setting project when creating related user stories for epics in bulk mode
parent
68f6cf08b2
commit
b975a22859
|
@ -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
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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))
|
||||||
|
|
Loading…
Reference in New Issue