Merge pull request #831 from taigaio/filter_fixes

Fix userstories filter data counters
remotes/origin/issue/4795/notification_even_they_are_disabled
Alejandro 2016-09-29 07:53:16 +02:00 committed by GitHub
commit 2ac242795a
1 changed files with 34 additions and 28 deletions

View File

@ -277,7 +277,9 @@ def _get_userstories_statuses(project, queryset):
SELECT DISTINCT "userstories_userstory"."status_id" "status_id", SELECT DISTINCT "userstories_userstory"."status_id" "status_id",
"userstories_userstory"."id" "us_id" "userstories_userstory"."id" "us_id"
FROM "userstories_userstory" FROM "userstories_userstory"
LEFT JOIN "epics_relateduserstory" INNER JOIN "projects_project"
ON ("userstories_userstory"."project_id" = "projects_project"."id")
LEFT OUTER JOIN "epics_relateduserstory"
ON "userstories_userstory"."id" = "epics_relateduserstory"."user_story_id" ON "userstories_userstory"."id" = "epics_relateduserstory"."user_story_id"
WHERE {where} WHERE {where}
), ),
@ -294,7 +296,7 @@ def _get_userstories_statuses(project, queryset):
"projects_userstorystatus"."order", "projects_userstorystatus"."order",
COALESCE("counters"."count", 0) COALESCE("counters"."count", 0)
FROM "projects_userstorystatus" FROM "projects_userstorystatus"
LEFT JOIN "counters" LEFT OUTER JOIN "counters"
ON "counters"."status_id" = "projects_userstorystatus"."id" ON "counters"."status_id" = "projects_userstorystatus"."id"
WHERE "projects_userstorystatus"."project_id" = %s WHERE "projects_userstorystatus"."project_id" = %s
ORDER BY "projects_userstorystatus"."order"; ORDER BY "projects_userstorystatus"."order";
@ -327,7 +329,9 @@ def _get_userstories_assigned_to(project, queryset):
SELECT DISTINCT "userstories_userstory"."assigned_to_id" "assigned_to_id", SELECT DISTINCT "userstories_userstory"."assigned_to_id" "assigned_to_id",
"userstories_userstory"."id" "us_id" "userstories_userstory"."id" "us_id"
FROM "userstories_userstory" FROM "userstories_userstory"
LEFT JOIN "epics_relateduserstory" INNER JOIN "projects_project"
ON ("userstories_userstory"."project_id" = "projects_project"."id")
LEFT OUTER JOIN "epics_relateduserstory"
ON "userstories_userstory"."id" = "epics_relateduserstory"."user_story_id" ON "userstories_userstory"."id" = "epics_relateduserstory"."user_story_id"
WHERE {where} WHERE {where}
), ),
@ -360,7 +364,7 @@ def _get_userstories_assigned_to(project, queryset):
FROM "userstories_userstory" FROM "userstories_userstory"
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 JOIN "epics_relateduserstory" LEFT OUTER JOIN "epics_relateduserstory"
ON ("userstories_userstory"."id" = "epics_relateduserstory"."user_story_id") ON ("userstories_userstory"."id" = "epics_relateduserstory"."user_story_id")
WHERE {where} AND "userstories_userstory"."assigned_to_id" IS NULL WHERE {where} AND "userstories_userstory"."assigned_to_id" IS NULL
GROUP BY "assigned_to_id" GROUP BY "assigned_to_id"
@ -404,6 +408,8 @@ def _get_userstories_owners(project, queryset):
SELECT DISTINCT "userstories_userstory"."owner_id" "owner_id", SELECT DISTINCT "userstories_userstory"."owner_id" "owner_id",
"userstories_userstory"."id" "us_id" "userstories_userstory"."id" "us_id"
FROM "userstories_userstory" FROM "userstories_userstory"
INNER JOIN "projects_project"
ON ("userstories_userstory"."project_id" = "projects_project"."id")
LEFT OUTER JOIN "epics_relateduserstory" LEFT OUTER JOIN "epics_relateduserstory"
ON ("userstories_userstory"."id" = "epics_relateduserstory"."user_story_id") ON ("userstories_userstory"."id" = "epics_relateduserstory"."user_story_id")
WHERE {where} WHERE {where}
@ -462,31 +468,31 @@ def _get_userstories_tags(project, queryset):
where_params = queryset_where_tuple[1] where_params = queryset_where_tuple[1]
extra_sql = """ extra_sql = """
WITH "userstories_tags" AS ( WITH "userstories_tags" AS (
SELECT "tag", SELECT "tag",
COUNT("tag") "counter" COUNT("tag") "counter"
FROM ( FROM (
SELECT DISTINCT "userstories_userstory"."id" "us_id", SELECT DISTINCT "userstories_userstory"."id" "us_id",
UNNEST("userstories_userstory"."tags") "tag" UNNEST("userstories_userstory"."tags") "tag"
FROM "userstories_userstory" FROM "userstories_userstory"
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 JOIN "epics_relateduserstory" LEFT OUTER JOIN "epics_relateduserstory"
ON ("userstories_userstory"."id" = "epics_relateduserstory"."user_story_id") ON ("userstories_userstory"."id" = "epics_relateduserstory"."user_story_id")
WHERE {where} WHERE {where}
) "tags" ) "tags"
GROUP BY "tag"), GROUP BY "tag"),
"project_tags" AS ( "project_tags" AS (
SELECT reduce_dim("tags_colors") "tag_color" SELECT reduce_dim("tags_colors") "tag_color"
FROM "projects_project" FROM "projects_project"
WHERE "id"=%s) WHERE "id"=%s)
SELECT "tag_color"[1] "tag", COALESCE("userstories_tags"."counter", 0) "counter" SELECT "tag_color"[1] "tag", COALESCE("userstories_tags"."counter", 0) "counter"
FROM "project_tags" FROM "project_tags"
LEFT JOIN "userstories_tags" LEFT OUTER JOIN "userstories_tags"
ON "project_tags"."tag_color"[1] = "userstories_tags"."tag" ON "project_tags"."tag_color"[1] = "userstories_tags"."tag"
ORDER BY "tag" ORDER BY "tag"
""".format(where=where) """.format(where=where)
with closing(connection.cursor()) as cursor: with closing(connection.cursor()) as cursor: