survey/config/routes.rb

87 lines
2.7 KiB
Ruby

Rails.application.routes.draw do
locales = Site.first.in_use_locales rescue I18n.available_locales
Thread.new do
surveys = QuestionnaireSurvey.where(:already_fix_data.in=>[nil,false]).to_a
surveys.each do |survey|
group_data = survey.survey_answers.asc(:updated_at).group_by(&:user)
group_data.each do |user_id,survey_answers|
if user_id.blank?
survey_answers.each do |survey_answer|
info = {:questionnaire_survey_id=>survey.id,:user=>user_id,:survey_answer_ids=>[survey_answer.id]}
answer_group = SurveyAnswerGroup.where(info).first
if answer_group.nil?
info.delete(:survey_answer_ids)
answer_group = SurveyAnswerGroup.new(info)
end
answer_group.last_modified = survey_answer.created_at
answer_group.survey_answer_ids = [survey_answer.id]
answer_group.save
end
else
info = {:questionnaire_survey_id=>survey.id,:user=>user_id}
answer_group = SurveyAnswerGroup.where(info).first
if answer_group.nil?
answer_group = SurveyAnswerGroup.new(info)
end
answer_group.last_modified = survey_answers.last.created_at
answer_group.survey_answer_ids = survey_answers.map{|a| a.id}
answer_group.save
end
survey_answers.each_with_index{|a,i| a.updated_at = a.created_at;a.save}
end
survey.already_fix_data = true
survey.survey_questions.each do |q|
q.survey_question_options.where("name.zh_tw.zh_tw"=>//).destroy
q.survey_question_options.where("name.en.en"=>//).destroy
end
survey.save
survey.survey_answers.each_with_index{|a,i| a.updated_at = a.created_at;a.save}
end
end
scope "(:locale)", locale: Regexp.new(locales.join("|")) do
namespace :admin do
get "surveys/checkforthread", to: "surveys#checkforthread"
resources :surveys do
collection do
get 'delete'
end
member do
get 'export'
get 'set_answers'
get 'set_sections'
get 'add_section'
get 'pagination_setting'
patch 'save_pagination_setting'
post 'create_section'
delete 'delete_section'
get 'edit_section'
patch 'update_section'
get 'jump'
get 'duplicate_it'
get 'answer_sets'
get 'answer_set'
get 'answer_list'
get 'export_answers'
end
resources :answers, :controller => :surveys_answers do
collection do
get 'delete'
end
end
end
end
resources :surveys do
collection do
get ':slug_title-:uid', to: 'surveys#show'
end
member do
get 'result'
end
end
end
end