Add tags field to CSV Reports

remotes/origin/enhancement/email-actions
David Barragán Merino 2015-05-06 12:14:50 +02:00
parent 2b469c560c
commit 4e158810f4
7 changed files with 14 additions and 10 deletions

View File

@ -12,7 +12,7 @@
- Add catalan (ca) translation. - Add catalan (ca) translation.
- Add traditional chinese (zh-Hant) translation. - Add traditional chinese (zh-Hant) translation.
- Add Jitsi to our supported videoconference apps list - Add Jitsi to our supported videoconference apps list
- Add tags field to CSV reports.
### Misc ### Misc
- New contrib plugin for letschat (by Δndrea Stagi) - New contrib plugin for letschat (by Δndrea Stagi)

View File

@ -68,7 +68,7 @@ def issues_to_csv(project, queryset):
fieldnames = ["ref", "subject", "description", "milestone", "owner", fieldnames = ["ref", "subject", "description", "milestone", "owner",
"owner_full_name", "assigned_to", "assigned_to_full_name", "owner_full_name", "assigned_to", "assigned_to_full_name",
"status", "severity", "priority", "type", "is_closed", "status", "severity", "priority", "type", "is_closed",
"attachments", "external_reference"] "attachments", "external_reference", "tags"]
for custom_attr in project.issuecustomattributes.all(): for custom_attr in project.issuecustomattributes.all():
fieldnames.append(custom_attr.name) fieldnames.append(custom_attr.name)
@ -91,6 +91,7 @@ def issues_to_csv(project, queryset):
"is_closed": issue.is_closed, "is_closed": issue.is_closed,
"attachments": issue.attachments.count(), "attachments": issue.attachments.count(),
"external_reference": issue.external_reference, "external_reference": issue.external_reference,
"tags": ",".join(issue.tags or []),
} }
for custom_attr in project.issuecustomattributes.all(): for custom_attr in project.issuecustomattributes.all():

View File

@ -85,7 +85,7 @@ def tasks_to_csv(project, queryset):
fieldnames = ["ref", "subject", "description", "user_story", "milestone", "owner", fieldnames = ["ref", "subject", "description", "user_story", "milestone", "owner",
"owner_full_name", "assigned_to", "assigned_to_full_name", "owner_full_name", "assigned_to", "assigned_to_full_name",
"status", "is_iocaine", "is_closed", "us_order", "status", "is_iocaine", "is_closed", "us_order",
"taskboard_order", "attachments", "external_reference"] "taskboard_order", "attachments", "external_reference", "tags"]
for custom_attr in project.taskcustomattributes.all(): for custom_attr in project.taskcustomattributes.all():
fieldnames.append(custom_attr.name) fieldnames.append(custom_attr.name)
@ -109,6 +109,7 @@ def tasks_to_csv(project, queryset):
"taskboard_order": task.taskboard_order, "taskboard_order": task.taskboard_order,
"attachments": task.attachments.count(), "attachments": task.attachments.count(),
"external_reference": task.external_reference, "external_reference": task.external_reference,
"tags": ",".join(task.tags or []),
} }
for custom_attr in project.taskcustomattributes.all(): for custom_attr in project.taskcustomattributes.all():
value = task.custom_attributes_values.attributes_values.get(str(custom_attr.id), None) value = task.custom_attributes_values.attributes_values.get(str(custom_attr.id), None)

View File

@ -121,7 +121,8 @@ def userstories_to_csv(project,queryset):
fieldnames += ["backlog_order", "sprint_order", "kanban_order", fieldnames += ["backlog_order", "sprint_order", "kanban_order",
"created_date", "modified_date", "finish_date", "created_date", "modified_date", "finish_date",
"client_requirement", "team_requirement", "attachments", "client_requirement", "team_requirement", "attachments",
"generated_from_issue", "external_reference", "tasks"] "generated_from_issue", "external_reference", "tasks",
"tags"]
for custom_attr in project.userstorycustomattributes.all(): for custom_attr in project.userstorycustomattributes.all():
fieldnames.append(custom_attr.name) fieldnames.append(custom_attr.name)
@ -152,6 +153,7 @@ def userstories_to_csv(project,queryset):
"generated_from_issue": us.generated_from_issue.ref if us.generated_from_issue else None, "generated_from_issue": us.generated_from_issue.ref if us.generated_from_issue else None,
"external_reference": us.external_reference, "external_reference": us.external_reference,
"tasks": ",".join([str(task.ref) for task in us.tasks.all()]), "tasks": ",".join([str(task.ref) for task in us.tasks.all()]),
"tags": ",".join(us.tags or []),
} }
for role in us.project.roles.filter(computable=True).order_by('name'): for role in us.project.roles.filter(computable=True).order_by('name'):

View File

@ -195,6 +195,6 @@ def test_custom_fields_csv_generation():
data.seek(0) data.seek(0)
reader = csv.reader(data) reader = csv.reader(data)
row = next(reader) row = next(reader)
assert row[15] == attr.name assert row[16] == attr.name
row = next(reader) row = next(reader)
assert row[15] == "val1" assert row[16] == "val1"

View File

@ -145,6 +145,6 @@ def test_custom_fields_csv_generation():
data.seek(0) data.seek(0)
reader = csv.reader(data) reader = csv.reader(data)
row = next(reader) row = next(reader)
assert row[16] == attr.name assert row[17] == attr.name
row = next(reader) row = next(reader)
assert row[16] == "val1" assert row[17] == "val1"

View File

@ -276,6 +276,6 @@ def test_custom_fields_csv_generation():
data.seek(0) data.seek(0)
reader = csv.reader(data) reader = csv.reader(data)
row = next(reader) row = next(reader)
assert row[23] == attr.name assert row[24] == attr.name
row = next(reader) row = next(reader)
assert row[23] == "val1" assert row[24] == "val1"