Skip to content

Commit 7659c3b

Browse files
authored
Merge pull request #6367 from Abishekcs/refactor/survey-results-to-new-controller
Extract survey results logic into separate SurveyResultsController
2 parents f6c9ddd + d1f0c1b commit 7659c3b

3 files changed

Lines changed: 27 additions & 15 deletions

File tree

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# frozen_string_literal: true
2+
3+
class SurveyResultsController < SurveysController
4+
layout 'surveys'
5+
6+
before_action :set_survey
7+
before_action :set_question_groups
8+
9+
def results
10+
protect_confidentiality { return }
11+
respond_to do |format|
12+
format.html
13+
format.csv do
14+
filename = "#{@survey.name}-results#{Time.zone.today}.csv"
15+
send_data @survey.to_csv, filename:
16+
end
17+
end
18+
end
19+
20+
private
21+
22+
def set_question_groups
23+
super
24+
@survey_user_cache = {}
25+
end
26+
end

app/controllers/surveys_controller.rb

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,12 @@ class SurveysController < ApplicationController
1515
destroy
1616
edit_question_groups
1717
course_select
18-
results
1918
]
2019
before_action :ensure_logged_in
2120
before_action :set_question_groups, only: %i[
2221
show
2322
edit
2423
edit_question_groups
25-
results
2624
]
2725
before_action :check_if_closed, only: [:show]
2826
before_action :set_notification, only: [:show]
@@ -41,17 +39,6 @@ def results_index
4139
@surveys = Survey.all
4240
end
4341

44-
def results
45-
protect_confidentiality { return }
46-
respond_to do |format|
47-
format.html
48-
format.csv do
49-
filename = "#{@survey.name}-results#{Time.zone.today}.csv"
50-
send_data @survey.to_csv, filename:
51-
end
52-
end
53-
end
54-
5542
# GET /surveys/1
5643
# GET /surveys/1.json
5744
def show
@@ -155,7 +142,6 @@ def set_survey
155142
def set_question_groups
156143
@question_groups = Rapidfire::QuestionGroup.all
157144
@surveys_question_groups = SurveysQuestionGroup.by_position(params[:id])
158-
@survey_user_cache = {}
159145
end
160146

161147
# This removes the question groups that do not apply to the course, because

config/routes.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@
406406
resources :survey_assignments, path: 'surveys/assignments'
407407
post '/survey_assignments/:id/send_test_email' => 'survey_assignments#send_test_email', as: 'send_test_email'
408408
put '/surveys/question_position' => 'questions#update_position'
409-
get '/survey/results/:id' => 'surveys#results', as: 'survey_results'
409+
get '/survey/results/:id' => 'survey_results#results', as: 'survey_results'
410410
get '/survey/question/results/:id' => 'questions#results', as: 'question_results'
411411
get '/surveys/question_group_question/:id' => 'questions#question'
412412
get '/surveys/:id/question_group' => 'surveys#edit_question_groups', :as => "edit_question_groups"

0 commit comments

Comments
 (0)