Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
44bc526b
Commit
44bc526b
authored
Oct 18, 2016
by
James Edwards-Jones
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Issues CSV view code extracted for reuse
parent
d9e9035b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
34 additions
and
19 deletions
+34
-19
app/controllers/projects/issues_controller.rb
app/controllers/projects/issues_controller.rb
+3
-3
app/services/issues/export_csv_service.rb
app/services/issues/export_csv_service.rb
+31
-0
app/views/projects/issues/index.csv.ruby
app/views/projects/issues/index.csv.ruby
+0
-16
No files found.
app/controllers/projects/issues_controller.rb
View file @
44bc526b
...
...
@@ -37,8 +37,6 @@ class Projects::IssuesController < Projects::ApplicationController
if
params
[
:label_name
].
present?
@labels
=
LabelsFinder
.
new
(
current_user
,
project_id:
@project
.
id
,
title:
params
[
:label_name
]).
execute
elsif
request
.
format
.
csv?
@labels
=
@issues
.
labels_hash
end
@users
=
[]
...
...
@@ -56,7 +54,9 @@ class Projects::IssuesController < Projects::ApplicationController
respond_to
do
|
format
|
format
.
html
format
.
atom
{
render
layout:
false
}
format
.
csv
format
.
csv
do
render
text:
Issues
::
ExportCsvService
.
new
(
@issues
).
render
end
format
.
json
do
render
json:
{
html:
view_to_html_string
(
"projects/issues/_issues"
),
...
...
app/services/issues/export_csv_service.rb
0 → 100644
View file @
44bc526b
module
Issues
class
ExportCsvService
def
initialize
(
issues_relation
)
@issues
=
issues_relation
@labels
=
@issues
.
labels_hash
end
def
render
csv_builder
.
render
end
private
def
csv_builder
@csv_builder
||=
CsvBuilder
.
new
(
@issues
.
includes
(
:author
,
:assignee
),
'Issue ID'
=>
'iid'
,
'Title'
=>
'title'
,
'State'
=>
'state'
,
'Description'
=>
'description'
,
'Author'
=>
'author_name'
,
'Assignee'
=>
'assignee_name'
,
'Confidential'
=>
'confidential'
,
'Due Date'
=>
->
(
issue
)
{
issue
.
due_date
&
.
to_s
(
:csv
)
},
'Created At (UTC)'
=>
->
(
issue
)
{
issue
.
created_at
&
.
to_s
(
:csv
)
},
'Updated At (UTC)'
=>
->
(
issue
)
{
issue
.
updated_at
&
.
to_s
(
:csv
)
},
'Milestone'
=>
->
(
issue
)
{
issue
.
milestone
&
.
title
},
'Labels'
=>
->
(
issue
)
{
@labels
[
issue
.
id
].
sort
.
join
(
','
).
presence
}
)
end
end
end
app/views/projects/issues/index.csv.ruby
deleted
100644 → 0
View file @
d9e9035b
columns
=
{
'Issue ID'
=>
'iid'
,
'Title'
=>
'title'
,
'State'
=>
'state'
,
'Description'
=>
'description'
,
'Author'
=>
'author_name'
,
'Assignee'
=>
'assignee_name'
,
'Confidential'
=>
'confidential'
,
'Due Date'
=>
->
(
issue
)
{
issue
.
due_date
&
.
to_s
(
:csv
)
},
'Created At (UTC)'
=>
->
(
issue
)
{
issue
.
created_at
&
.
to_s
(
:csv
)
},
'Updated At (UTC)'
=>
->
(
issue
)
{
issue
.
updated_at
&
.
to_s
(
:csv
)
},
'Milestone'
=>
->
(
issue
)
{
issue
.
milestone
&
.
title
},
'Labels'
=>
->
(
issue
)
{
@labels
[
issue
.
id
].
sort
.
join
(
','
).
presence
}
}
CsvBuilder
.
new
(
@issues
.
includes
(
:author
,
:assignee
),
columns
).
render
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment