Issue #3886: Fix empty full_names in Story and Issues filter lists

remotes/origin/logger
David Barragán Merino 2016-02-08 17:39:12 +01:00
parent e26189bf64
commit c3c06bebe5
2 changed files with 152 additions and 140 deletions

View File

@ -155,6 +155,7 @@ def _get_issues_statuses(project, queryset):
WHERE {where} WHERE {where}
GROUP BY status_id GROUP BY status_id
) )
SELECT "projects_issuestatus"."id", SELECT "projects_issuestatus"."id",
"projects_issuestatus"."name", "projects_issuestatus"."name",
"projects_issuestatus"."color", "projects_issuestatus"."color",
@ -196,6 +197,7 @@ def _get_issues_types(project, queryset):
WHERE {where} WHERE {where}
GROUP BY type_id GROUP BY type_id
) )
SELECT "projects_issuetype"."id", SELECT "projects_issuetype"."id",
"projects_issuetype"."name", "projects_issuetype"."name",
"projects_issuetype"."color", "projects_issuetype"."color",
@ -237,6 +239,7 @@ def _get_issues_priorities(project, queryset):
WHERE {where} WHERE {where}
GROUP BY priority_id GROUP BY priority_id
) )
SELECT "projects_priority"."id", SELECT "projects_priority"."id",
"projects_priority"."name", "projects_priority"."name",
"projects_priority"."color", "projects_priority"."color",
@ -278,6 +281,7 @@ def _get_issues_severities(project, queryset):
WHERE {where} WHERE {where}
GROUP BY severity_id GROUP BY severity_id
) )
SELECT "projects_severity"."id", SELECT "projects_severity"."id",
"projects_severity"."name", "projects_severity"."name",
"projects_severity"."color", "projects_severity"."color",
@ -319,9 +323,10 @@ def _get_issues_assigned_to(project, queryset):
WHERE {where} AND "issues_issue"."assigned_to_id" IS NOT NULL WHERE {where} AND "issues_issue"."assigned_to_id" IS NOT NULL
GROUP BY assigned_to_id GROUP BY assigned_to_id
) )
SELECT
"projects_membership"."user_id" user_id, SELECT "projects_membership"."user_id" user_id,
"users_user"."full_name", "users_user"."full_name",
"users_user"."username",
COALESCE("counters".count, 0) count COALESCE("counters".count, 0) count
FROM projects_membership FROM projects_membership
LEFT OUTER JOIN counters ON ("projects_membership"."user_id" = "counters"."assigned_to_id") LEFT OUTER JOIN counters ON ("projects_membership"."user_id" = "counters"."assigned_to_id")
@ -330,7 +335,8 @@ def _get_issues_assigned_to(project, queryset):
-- unassigned issues -- unassigned issues
UNION UNION
SELECT NULL user_id, NULL, count(coalesce(assigned_to_id, -1)) count
SELECT NULL user_id, NULL, NULL, count(coalesce(assigned_to_id, -1)) count
FROM "issues_issue" FROM "issues_issue"
INNER JOIN "projects_project" ON ("issues_issue"."project_id" = "projects_project"."id") INNER JOIN "projects_project" ON ("issues_issue"."project_id" = "projects_project"."id")
WHERE {where} AND "issues_issue"."assigned_to_id" IS NULL WHERE {where} AND "issues_issue"."assigned_to_id" IS NULL
@ -343,10 +349,10 @@ def _get_issues_assigned_to(project, queryset):
result = [] result = []
none_valued_added = False none_valued_added = False
for id, full_name, count in rows: for id, full_name, username, count in rows:
result.append({ result.append({
"id": id, "id": id,
"full_name": full_name or "", "full_name": full_name or username or "",
"count": count, "count": count,
}) })
@ -378,9 +384,10 @@ def _get_issues_owners(project, queryset):
WHERE {where} WHERE {where}
GROUP BY "issues_issue"."owner_id" GROUP BY "issues_issue"."owner_id"
) )
SELECT
"projects_membership"."user_id" id, SELECT "projects_membership"."user_id" id,
"users_user"."full_name", "users_user"."full_name",
"users_user"."username",
COALESCE("counters".count, 0) count COALESCE("counters".count, 0) count
FROM projects_membership FROM projects_membership
LEFT OUTER JOIN counters ON ("projects_membership"."user_id" = "counters"."owner_id") LEFT OUTER JOIN counters ON ("projects_membership"."user_id" = "counters"."owner_id")
@ -389,9 +396,10 @@ def _get_issues_owners(project, queryset):
-- System users -- System users
UNION UNION
SELECT
"users_user"."id" user_id, SELECT "users_user"."id" user_id,
"users_user"."full_name" full_name, "users_user"."full_name" full_name,
"users_user"."username",
COALESCE("counters".count, 0) count COALESCE("counters".count, 0) count
FROM users_user FROM users_user
LEFT OUTER JOIN counters ON ("users_user"."id" = "counters"."owner_id") LEFT OUTER JOIN counters ON ("users_user"."id" = "counters"."owner_id")
@ -403,11 +411,11 @@ def _get_issues_owners(project, queryset):
rows = cursor.fetchall() rows = cursor.fetchall()
result = [] result = []
for id, full_name, count in rows: for id, full_name, username, count in rows:
if count > 0: if count > 0:
result.append({ result.append({
"id": id, "id": id,
"full_name": full_name, "full_name": full_name or username or "",
"count": count, "count": count,
}) })
return sorted(result, key=itemgetter("full_name")) return sorted(result, key=itemgetter("full_name"))

View File

@ -264,9 +264,10 @@ def _get_userstories_assigned_to(project, queryset):
WHERE {where} AND "userstories_userstory"."assigned_to_id" IS NOT NULL WHERE {where} AND "userstories_userstory"."assigned_to_id" IS NOT NULL
GROUP BY assigned_to_id GROUP BY assigned_to_id
) )
SELECT
"projects_membership"."user_id" user_id, SELECT "projects_membership"."user_id" user_id,
"users_user"."full_name", "users_user"."full_name",
"users_user"."username",
COALESCE("counters".count, 0) count COALESCE("counters".count, 0) count
FROM projects_membership FROM projects_membership
LEFT OUTER JOIN counters ON ("projects_membership"."user_id" = "counters"."assigned_to_id") LEFT OUTER JOIN counters ON ("projects_membership"."user_id" = "counters"."assigned_to_id")
@ -275,7 +276,8 @@ def _get_userstories_assigned_to(project, queryset):
-- unassigned userstories -- unassigned userstories
UNION UNION
SELECT NULL user_id, NULL, count(coalesce(assigned_to_id, -1)) count
SELECT NULL user_id, NULL, NULL, count(coalesce(assigned_to_id, -1)) count
FROM "userstories_userstory" FROM "userstories_userstory"
INNER JOIN "projects_project" ON ("userstories_userstory"."project_id" = "projects_project"."id") INNER JOIN "projects_project" ON ("userstories_userstory"."project_id" = "projects_project"."id")
WHERE {where} AND "userstories_userstory"."assigned_to_id" IS NULL WHERE {where} AND "userstories_userstory"."assigned_to_id" IS NULL
@ -288,10 +290,10 @@ def _get_userstories_assigned_to(project, queryset):
result = [] result = []
none_valued_added = False none_valued_added = False
for id, full_name, count in rows: for id, full_name, username, count in rows:
result.append({ result.append({
"id": id, "id": id,
"full_name": full_name or "", "full_name": full_name or username or "",
"count": count, "count": count,
}) })
@ -323,9 +325,10 @@ def _get_userstories_owners(project, queryset):
WHERE {where} WHERE {where}
GROUP BY "userstories_userstory"."owner_id" GROUP BY "userstories_userstory"."owner_id"
) )
SELECT
"projects_membership"."user_id" id, SELECT "projects_membership"."user_id" id,
"users_user"."full_name", "users_user"."full_name",
"users_user"."username",
COALESCE("counters".count, 0) count COALESCE("counters".count, 0) count
FROM projects_membership FROM projects_membership
LEFT OUTER JOIN counters ON ("projects_membership"."user_id" = "counters"."owner_id") LEFT OUTER JOIN counters ON ("projects_membership"."user_id" = "counters"."owner_id")
@ -334,9 +337,10 @@ def _get_userstories_owners(project, queryset):
-- System users -- System users
UNION UNION
SELECT
"users_user"."id" user_id, SELECT "users_user"."id" user_id,
"users_user"."full_name" full_name, "users_user"."full_name" full_name,
"users_user"."username" username,
COALESCE("counters".count, 0) count COALESCE("counters".count, 0) count
FROM users_user FROM users_user
LEFT OUTER JOIN counters ON ("users_user"."id" = "counters"."owner_id") LEFT OUTER JOIN counters ON ("users_user"."id" = "counters"."owner_id")
@ -348,11 +352,11 @@ def _get_userstories_owners(project, queryset):
rows = cursor.fetchall() rows = cursor.fetchall()
result = [] result = []
for id, full_name, count in rows: for id, full_name, username, count in rows:
if count > 0: if count > 0:
result.append({ result.append({
"id": id, "id": id,
"full_name": full_name, "full_name": full_name or username or "",
"count": count, "count": count,
}) })
return sorted(result, key=itemgetter("full_name")) return sorted(result, key=itemgetter("full_name"))