diff --git a/taiga/projects/epics/services.py b/taiga/projects/epics/services.py index f953a574..bf0edff5 100644 --- a/taiga/projects/epics/services.py +++ b/taiga/projects/epics/services.py @@ -136,11 +136,12 @@ def update_epic_related_userstories_order_in_bulk(bulk_data: list, epic: object) [{'us_id': , 'order': }, ...] """ related_user_stories = epic.relateduserstory_set.all() + # select_related rus_orders = {rus.id: rus.order for rus in related_user_stories} rus_conversion = {rus.user_story_id: rus.id for rus in related_user_stories} new_rus_orders = {rus_conversion[e["us_id"]]: e["order"] for e in bulk_data - if e["us_id"] in rus_conversion} + if e["us_id"] in rus_conversion} apply_order_updates(rus_orders, new_rus_orders) @@ -274,7 +275,8 @@ def _get_epics_assigned_to(project, queryset): FROM projects_membership LEFT OUTER JOIN counters ON ("projects_membership"."user_id" = "counters"."assigned_to_id") INNER JOIN "users_user" ON ("projects_membership"."user_id" = "users_user"."id") - WHERE "projects_membership"."project_id" = %s AND "projects_membership"."user_id" IS NOT NULL + WHERE "projects_membership"."project_id" = %s + AND "projects_membership"."user_id" IS NOT NULL -- unassigned epics UNION @@ -336,7 +338,8 @@ def _get_epics_owners(project, queryset): FROM projects_membership LEFT OUTER JOIN counters ON ("projects_membership"."user_id" = "counters"."owner_id") INNER JOIN "users_user" ON ("projects_membership"."user_id" = "users_user"."id") - WHERE "projects_membership"."project_id" = %s AND "projects_membership"."user_id" IS NOT NULL + WHERE "projects_membership"."project_id" = %s + AND "projects_membership"."user_id" IS NOT NULL -- System users UNION diff --git a/tests/integration/resources_permissions/test_epics_resources.py b/tests/integration/resources_permissions/test_epics_resources.py index 9183df1c..0becda53 100644 --- a/tests/integration/resources_permissions/test_epics_resources.py +++ b/tests/integration/resources_permissions/test_epics_resources.py @@ -675,34 +675,6 @@ def test_epic_action_bulk_create(client, data): assert results == [401, 403, 403, 451, 451] -def test_bulk_create_related_userstories(client, data): - public_url = reverse('epics-related-userstories-bulk-create', args=[data.public_epic.pk]) - private_url1 = reverse('epics-related-userstories-bulk-create', args=[data.private_epic1.pk]) - private_url2 = reverse('epics-related-userstories-bulk-create', args=[data.private_epic2.pk]) - blocked_url = reverse('epics-related-userstories-bulk-create', args=[data.blocked_epic.pk]) - - users = [ - None, - data.registered_user, - data.project_member_without_perms, - data.project_member_with_perms, - data.project_owner - ] - - bulk_data = json.dumps({ - "userstories": "test1\ntest2", - }) - - results = helper_test_http_method(client, 'post', public_url, bulk_data, users) - assert results == [401, 403, 403, 200, 200] - results = helper_test_http_method(client, 'post', private_url1, bulk_data, users) - assert results == [401, 403, 403, 200, 200] - results = helper_test_http_method(client, 'post', private_url2, bulk_data, users) - assert results == [401, 403, 403, 200, 200] - results = helper_test_http_method(client, 'post', blocked_url, bulk_data, users) - assert results == [401, 403, 403, 451, 451] - - def test_epic_action_upvote(client, data): public_url = reverse('epics-upvote', kwargs={"pk": data.public_epic.pk}) private_url1 = reverse('epics-upvote', kwargs={"pk": data.private_epic1.pk})