Skip to content

Commit

Permalink
Add comments to refactored methods
Browse files Browse the repository at this point in the history
  • Loading branch information
Tushar Kini committed Apr 29, 2023
1 parent a18655a commit 9edb52d
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 15 deletions.
8 changes: 7 additions & 1 deletion app/controllers/questionnaires_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,11 @@ def update
end

# Remove a given questionnaire
# checks if any assignment uses the current questionnaire or not
# checks if there are any answers to the questions in the questionnaire
# for each of the question, it deletes the advice first
# and then deletes the question. Only then the questionnaire node
# is deleted
def delete
@questionnaire = Questionnaire.find(params[:id])
if @questionnaire
Expand Down Expand Up @@ -220,6 +225,7 @@ def add_new_questions
end

# Zhewei: This method is used to save all questions in current questionnaire.
# this calls update_questions on all the questions in present questionnaire
def save_all_questions
questionnaire_id = params[:id]
begin
Expand All @@ -241,9 +247,9 @@ def save_all_questions
private

# save questionnaire object after create or edit
# this is a basid CRUD function and is called after every create or edit
def save
@questionnaire.save!
#save_questions @questionnaire.id unless @questionnaire.id.nil? || @questionnaire.id <= 0
redirect_to controller: 'questions', action: 'save_questions', questionnaire_id: @questionnaire.id, questionnaire_type: @questionnaire.type and return unless @questionnaire.id.nil? || @questionnaire.id <= 0
undo_link("Questionnaire \"#{@questionnaire.name}\" has been updated successfully. ")
end
Expand Down
25 changes: 11 additions & 14 deletions app/controllers/questions_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,10 @@ def types
render json: types.to_a
end

# save questions that have been added to a questionnaire
# save all questions that have been added to a questionnaire
# uses the params new_question
# if the questionnaire is a quizquestionnaire then use weights given
def save_new_questions(questionnaire_id, questionnaire_type)
#questionnaire_id = params[:questionnaire_id]
#questionnaire_type = params[:questionnaire_type]
if params[:new_question]
# The new_question array contains all the new questions
# that should be saved to the database
Expand All @@ -105,21 +105,20 @@ def save_new_questions(questionnaire_id, questionnaire_type)
q.type = params[:question_type][question_key][:type]
q.seq = question_key.to_i
if questionnaire_type == 'QuizQuestionnaire'
# using the weight user enters when creating quiz
weight_key = "question_#{index + 1}"
q.weight = params[:question_weights][weight_key.to_sym]
end
q.save unless q.txt.strip.empty?
end
end
#redirect_to request.original_url
return
end
# delete questions from a questionnaire
# @param [Object] questionnaire_id
# uses params questionnaire_id
# checks if the questions passed in params belongs to this questionnaire or not
# if yes then it is deleted
def delete_questions(questionnaire_id)
# Deletes any questions that, as a result of the edit, are no longer in the questionnaire
#questionnaire_id = params[:questionnaire_id]
questions = Question.where('questionnaire_id = ?', questionnaire_id)
@deleted_questions = []
questions.each do |question|
Expand All @@ -140,7 +139,10 @@ def delete_questions(questionnaire_id)
return
end
# Handles questions whose wording changed as a result of the edit
# @param [Object] questionnaire_id
# uses params questionnaire_id
# uses params questionnaire_type
# if the question text is empty then it is deleted
# else it is updated
def save_questions
questionnaire_id = params[:questionnaire_id]
questionnaire_type = params[:questionnaire_type]
Expand All @@ -149,22 +151,17 @@ def save_questions
if params[:question]
params[:question].keys.each do |question_key|
if params[:question][question_key][:txt].strip.empty?
# question text is empty, delete the question
Question.delete(question_key)
else
# Update existing question.
question = Question.find(question_key)
Rails.logger.info(question.errors.messages.inspect) unless question.update_attributes(params[:question][question_key])
end
end
end
#redirect_to controller: 'question', action: '', questionnaire_id: @questionnaire.id, questionnaire_type: @questionnaire.type
return
end
private

def question_params
params.permit(:id, :question)
end

end

0 comments on commit 9edb52d

Please sign in to comment.