Skip to content

Commit

Permalink
Code Climate changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Soultrekker21 committed Apr 28, 2023
1 parent 7e2228c commit a24b18c
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 55 deletions.
2 changes: 1 addition & 1 deletion app/controllers/advice_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ def save_advice
begin
# checks if advice is present or not
unless params[:advice].nil?
params[:advice].keys.each do |advice_key|
params[:advice].each_key do |advice_key|
# Updates the advice corresponding to the key
QuestionAdvice.update(advice_key, advice: params[:advice][advice_key.to_sym][:advice])
end
Expand Down
7 changes: 1 addition & 6 deletions app/controllers/questionnaires_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -269,10 +269,6 @@ def load_questionnaire
@questionnaire = Questionnaire.find(params[:id])
end

def questionnaire_params
params.require(:questionnaire).permit(:name, :description, :status, :published_at)
end

def update_questions
return if params[:question].nil?

Expand All @@ -284,7 +280,6 @@ def update_questions
question.save
end
end


# delete questions from a questionnaire
# @param [Object] questionnaire_id
Expand Down Expand Up @@ -331,7 +326,7 @@ def save_questions(questionnaire_id)

def questionnaire_params
params.require(:questionnaire).permit(:name, :instructor_id, :private, :min_question_score,
:max_question_score, :type, :display_type, :instruction_loc)
:max_question_score, :type, :display_type, :instruction_loc)
end

def question_params
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/quiz_questionnaires_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ def save_choices(questionnaire_id)
questions.each do |question|
q_type = params[:question_type][question_num.to_s][:type]
q_answer_choices = params[:new_choices][question_num.to_s][q_type]
q_answer_choices.each_pair do |choice_key, _|
q_answer_choices.each_pair do |choice_key|
question_factory(q_type, question, choice_key, q_answer_choices) # allow factory method to create appropriate question
end
question_num += 1
Expand Down
45 changes: 20 additions & 25 deletions app/helpers/question_helper.rb
Original file line number Diff line number Diff line change
@@ -1,32 +1,27 @@
module QuestionHelper
#Maps type to question
QUESTION_MAP = {
'Criterion' => Criterion,
'Scale' => Scale,
'Cake' => Cake,
'Dropdown' => Dropdown,
'Checkbox' => Checkbox,
'TextArea' => TextArea,
'TextField' => TextField,
'UploadFile' => UploadFile,
'SectionHeader' => SectionHeader,
'TableHeader' => TableHeader,
'ColumnHeader' => ColumnHeader
}

# factory method to create the appropriate question based on the type
def question_factory(type, questionnaire_id, seq)
case type
when 'Criterion'
return Criterion.create(txt: '', questionnaire_id: questionnaire_id, seq: seq, type: type, break_before: true)
when 'Scale'
return Scale.create(txt: '', questionnaire_id: questionnaire_id, seq: seq, type: type, break_before: true)
when 'Cake'
return Cake.create(txt: '', questionnaire_id: questionnaire_id, seq: seq, type: type, break_before: true)
when 'Dropdown'
return Dropdown.create(txt: '', questionnaire_id: questionnaire_id, seq: seq, type: type, break_before: true)
when 'Checkbox'
return Checkbox.create(txt: '', questionnaire_id: questionnaire_id, seq: seq, type: type, break_before: true)
when 'TextArea'
return TextArea.create(txt: '', questionnaire_id: questionnaire_id, seq: seq, type: type, break_before: true)
when 'TextField'
return TextField.create(txt: '', questionnaire_id: questionnaire_id, seq: seq, type: type, break_before: true)
when 'UploadFile'
return UploadFile.create(txt: '', questionnaire_id: questionnaire_id, seq: seq, type: type, break_before: true)
when 'SectionHeader'
return SectionHeader.create(txt: '', questionnaire_id: questionnaire_id, seq: seq, type: type, break_before: true)
when 'TableHeader'
return TableHeader.create(txt: '', questionnaire_id: questionnaire_id, seq: seq, type: type, break_before: true)
when 'ColumnHeader'
return ColumnHeader.create(txt: '', questionnaire_id: questionnaire_id, seq: seq, type: type, break_before: true)
else
question_class = QUESTION_MAP[type]

if question_class.nil?
flash[:error] = "Error: Undefined Question"
else
question_class.create(txt: '', questionnaire_id: questionnaire_id, seq: seq, type: type, break_before: true)
end

end
end
40 changes: 18 additions & 22 deletions app/helpers/questionnaire_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,31 +25,27 @@ def self.adjust_advice_size(questionnaire, question)
end
end

#Map type to questionnaire
QUESTIONNAIRE_MAP = {
'ReviewQuestionnaire' => ReviewQuestionnaire,
'MetareviewQuestionnaire' => MetareviewQuestionnaire,
'AuthorFeedbackQuestionnaire' => AuthorFeedbackQuestionnaire,
'TeammateReviewQuestionnaire' => TeammateReviewQuestionnaire,
'AssignmentSurveyQuestionnaire' => AssignmentSurveyQuestionnaire,
'SurveyQuestionnaire' => SurveyQuestionnaire,
'GlobalSurveyQuestionnaire' => GlobalSurveyQuestionnaire,
'CourseSurveyQuestionnaire' => CourseSurveyQuestionnaire,
'BookmarkRatingQuestionnaire' => BookmarkRatingQuestionnaire,
'QuizQuestionnaire' => QuizQuestionnaire
}

# factory method to create the appropriate questionnaire based on the type
def questionnaire_factory(type)
case type
when 'ReviewQuestionnaire'
return ReviewQuestionnaire.new
when 'MetareviewQuestionnaire'
return MetareviewQuestionnaire.new
when 'AuthorFeedbackQuestionnaire'
return AuthorFeedbackQuestionnaire.new
when 'TeammateReviewQuestionnaire'
return TeammateReviewQuestionnaire.new
when'AssignmentSurveyQuestionnaire'
return AssignmentSurveyQuestionnaire.new
when 'SurveyQuestionnaire'
return SurveyQuestionnaire.new
when 'GlobalSurveyQuestionnaire'
return GlobalSurveyQuestionnaire.new
when 'CourseSurveyQuestionnaire'
return CourseSurveyQuestionnaire.new
when 'BookmarkRatingQuestionnaire'
return BookmarkRatingQuestionnaire.new
when 'QuizQuestionnaire'
return QuizQuestionnaire.new
else
questionnaire = QUESTIONNAIRE_MAP[type]
if questionnaire.nil?
flash[:error] = "Error: Undefined Questionnaire"
else
questionnaire.new
end
end
end

0 comments on commit a24b18c

Please sign in to comment.