Change assigned_users us_counter to include assigned_users and assigned_to

remotes/origin/3.4.0rc
Álex Hermida 2018-06-28 13:38:26 +02:00
parent 7bec90f59c
commit 006bc72e67
1 changed files with 12 additions and 10 deletions

View File

@ -439,10 +439,12 @@ def _get_userstories_assigned_users(project, queryset):
extra_sql = """ extra_sql = """
WITH "us_counters" AS ( WITH "us_counters" AS (
SELECT "userstories_userstory_assigned_users"."user_id" SELECT DISTINCT COALESCE("userstories_userstory_assigned_users"."user_id",
FROM "userstories_userstory_assigned_users" "userstories_userstory"."assigned_to_id") as "assigned_user_id",
INNER JOIN "userstories_userstory" "userstories_userstory"."id" "us_id"
ON "userstories_userstory"."id" = "userstories_userstory_assigned_users"."userstory_id" FROM "userstories_userstory"
LEFT JOIN "userstories_userstory_assigned_users"
ON "userstories_userstory_assigned_users"."userstory_id" = "userstories_userstory"."id"
INNER JOIN "projects_project" INNER JOIN "projects_project"
ON ("userstories_userstory"."project_id" = "projects_project"."id") ON ("userstories_userstory"."project_id" = "projects_project"."id")
LEFT OUTER JOIN "epics_relateduserstory" LEFT OUTER JOIN "epics_relateduserstory"
@ -451,10 +453,10 @@ def _get_userstories_assigned_users(project, queryset):
), ),
"counters" AS ( "counters" AS (
SELECT "user_id", SELECT "assigned_user_id",
COUNT("user_id") COUNT("assigned_user_id")
FROM "us_counters" FROM "us_counters"
GROUP BY "user_id" GROUP BY "assigned_user_id"
) )
SELECT "projects_membership"."user_id" "user_id", SELECT "projects_membership"."user_id" "user_id",
@ -463,7 +465,7 @@ def _get_userstories_assigned_users(project, queryset):
COALESCE("counters".count, 0) "count" COALESCE("counters".count, 0) "count"
FROM "projects_membership" FROM "projects_membership"
LEFT OUTER JOIN "counters" LEFT OUTER JOIN "counters"
ON ("projects_membership"."user_id" = "counters"."user_id") ON ("projects_membership"."user_id" = "counters"."assigned_user_id")
INNER JOIN "users_user" INNER JOIN "users_user"
ON ("projects_membership"."user_id" = "users_user"."id") 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
@ -483,8 +485,8 @@ def _get_userstories_assigned_users(project, queryset):
WHERE {where} AND "userstories_userstory"."id" NOT IN ( WHERE {where} AND "userstories_userstory"."id" NOT IN (
SELECT "userstories_userstory_assigned_users"."userstory_id" FROM SELECT "userstories_userstory_assigned_users"."userstory_id" FROM
"userstories_userstory_assigned_users" "userstories_userstory_assigned_users"
) ) AND "userstories_userstory"."assigned_to_id" IS NULL
GROUP BY "assigned_to_id"; GROUP BY "username";
""".format(where=where) """.format(where=where)
with closing(connection.cursor()) as cursor: with closing(connection.cursor()) as cursor: