68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
# File 'app/controllers/surveyor_controller.rb', line 68
def update
saved = nil
ActiveRecord::Base.transaction do
if @response_set = ResponseSet.find_by_access_code(params[:response_set_code], :include => {:responses => :answer},:lock => true)
@response_set.current_section_id = params[:current_section_id]
else
flash[:notice] = "Unable to find your responses to the survey"
redirect_to(available_surveys_path) and return
end
if params[:responses] or params[:response_groups]
@response_set.clear_responses
saved = @response_set.update_attributes(:response_attributes => (params[:responses] || {}).dup ,
:response_group_attributes => (params[:response_groups] || {}).dup) if (saved && params[:finish])
@response_set.complete!
saved = @response_set.save!
end
end
end
respond_to do |format|
format.html do
if saved && params[:finish]
flash[:notice] = "Completed survey"
redirect_to surveyor_default(:finish)
else
flash[:notice] = "Unable to update survey" if !saved redirect_to :action => "edit", :anchor => anchor_from(params[:section]), :params => {:section => section_id_from(params[:section])}
end
end
format.js do
render :json => @response_set.all_things_hash.to_json
end
end
end
|