Add colors in tags for yhr filter data endpoints

remotes/origin/issue/4795/notification_even_they_are_disabled
David Barragán Merino 2016-09-29 14:24:43 +02:00
parent 2ac242795a
commit 5472c993f8
4 changed files with 37 additions and 23 deletions

View File

@ -394,7 +394,9 @@ def _get_epics_tags(project, queryset):
FROM projects_project
WHERE id=%s)
SELECT tag_color[1] tag, COALESCE(epics_tags.counter, 0) counter
SELECT tag_color[1] tag,
tag_color[2] color,
COALESCE(epics_tags.counter, 0) counter
FROM project_tags
LEFT JOIN epics_tags ON project_tags.tag_color[1] = epics_tags.tag
ORDER BY tag
@ -405,9 +407,10 @@ def _get_epics_tags(project, queryset):
rows = cursor.fetchall()
result = []
for name, count in rows:
for name, color, count in rows:
result.append({
"name": name,
"color": color,
"count": count,
})
return sorted(result, key=itemgetter("name"))

View File

@ -427,24 +427,28 @@ def _get_issues_tags(project, queryset):
where_params = queryset_where_tuple[1]
extra_sql = """
WITH issues_tags AS (
SELECT tag,
COUNT(tag) counter FROM (
SELECT UNNEST(issues_issue.tags) tag
FROM issues_issue
INNER JOIN projects_project
ON (issues_issue.project_id = projects_project.id)
WHERE {where}) tags
GROUP BY tag),
project_tags AS (
SELECT reduce_dim(tags_colors) tag_color
FROM projects_project
WHERE id=%s)
WITH "issues_tags" AS (
SELECT "tag",
COUNT("tag") "counter"
FROM (
SELECT UNNEST("issues_issue"."tags") "tag"
FROM "issues_issue"
INNER JOIN "projects_project"
ON ("issues_issue"."project_id" = "projects_project"."id")
WHERE {where}
) "tags"
GROUP BY "tag"),
"project_tags" AS (
SELECT reduce_dim("tags_colors") "tag_color"
FROM "projects_project"
WHERE "id"=%s)
SELECT tag_color[1] tag, COALESCE(issues_tags.counter, 0) counter
SELECT "tag_color"[1] "tag",
"tag_color"[2] "color",
COALESCE("issues_tags"."counter", 0) "counter"
FROM project_tags
LEFT JOIN issues_tags ON project_tags.tag_color[1] = issues_tags.tag
ORDER BY tag
LEFT JOIN "issues_tags" ON "project_tags"."tag_color"[1] = "issues_tags"."tag"
ORDER BY "tag"
""".format(where=where)
with closing(connection.cursor()) as cursor:
@ -452,9 +456,10 @@ def _get_issues_tags(project, queryset):
rows = cursor.fetchall()
result = []
for name, count in rows:
for name, color, count in rows:
result.append({
"name": name,
"color": color,
"count": count,
})
return sorted(result, key=itemgetter("name"))

View File

@ -352,7 +352,9 @@ def _get_tasks_tags(project, queryset):
FROM projects_project
WHERE id=%s)
SELECT tag_color[1] tag, COALESCE(tasks_tags.counter, 0) counter
SELECT tag_color[1] tag,
tag_color[2] color,
COALESCE(tasks_tags.counter, 0) counter
FROM project_tags
LEFT JOIN tasks_tags ON project_tags.tag_color[1] = tasks_tags.tag
ORDER BY tag
@ -363,9 +365,10 @@ def _get_tasks_tags(project, queryset):
rows = cursor.fetchall()
result = []
for name, count in rows:
for name, color, count in rows:
result.append({
"name": name,
"color": color,
"count": count,
})
return sorted(result, key=itemgetter("name"))

View File

@ -488,7 +488,9 @@ def _get_userstories_tags(project, queryset):
FROM "projects_project"
WHERE "id"=%s)
SELECT "tag_color"[1] "tag", COALESCE("userstories_tags"."counter", 0) "counter"
SELECT "tag_color"[1] "tag",
"tag_color"[2] "color",
COALESCE("userstories_tags"."counter", 0) "counter"
FROM "project_tags"
LEFT OUTER JOIN "userstories_tags"
ON "project_tags"."tag_color"[1] = "userstories_tags"."tag"
@ -500,9 +502,10 @@ LEFT OUTER JOIN "userstories_tags"
rows = cursor.fetchall()
result = []
for name, count in rows:
for name, color, count in rows:
result.append({
"name": name,
"color": color,
"count": count,
})
return sorted(result, key=itemgetter("name"))