Class: Manage::QuestionnairesController
Instance Method Summary
collapse
#json_request?, #limit_write_access_to_admins, #logged_in, #require_admin_or_limited_admin, #require_admin_or_limited_admin_or_event_tracking, #response_view_or_errors
Instance Method Details
#bulk_apply ⇒ Object
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
# File 'app/controllers/manage/questionnaires_controller.rb', line 127
def bulk_apply
action = params[:bulk_action]
ids = params[:bulk_ids]
if action.blank? || ids.blank?
head :bad_request
return
end
Questionnaire.find(ids).each do |q|
q.acc_status = action
q.acc_status_author_id = current_user.id
q.acc_status_date = Time.now
q.save(validate: false)
end
head :ok
end
|
#check_in ⇒ Object
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
# File 'app/controllers/manage/questionnaires_controller.rb', line 61
def check_in
redirect_to_checkins = params[:redirect_to_checkins] || false
show_redirect_path = redirect_to_checkins ? manage_checkin_path(@questionnaire) : manage_questionnaire_path(@questionnaire)
index_redirect_path = redirect_to_checkins ? manage_checkins_path : manage_questionnaires_path
if params[:check_in] == "true"
if params[:questionnaire]
q_params = params.require(:questionnaire).permit(:agreement_accepted, :phone, :can_share_info, :email)
email = q_params.delete(:email)
@questionnaire.update_attributes(q_params)
@questionnaire.user.update_attributes(email: email)
end
unless @questionnaire.valid?
flash[:notice] = @questionnaire.errors.full_messages.join(", ")
redirect_to show_redirect_path
return
end
@questionnaire.update_attribute(:checked_in_at, Time.now)
@questionnaire.update_attribute(:checked_in_by_id, current_user.id)
flash[:notice] = "Checked in #{@questionnaire.full_name}."
elsif params[:check_in] == "false"
@questionnaire.update_attribute(:checked_in_at, nil)
@questionnaire.update_attribute(:checked_in_by_id, current_user.id)
flash[:notice] = "#{@questionnaire.full_name} no longer checked in."
else
flash[:notice] = "No check-in action provided!"
redirect_to show_redirect_path
return
end
redirect_to index_redirect_path
end
|
#convert_to_admin ⇒ Object
92
93
94
95
96
97
|
# File 'app/controllers/manage/questionnaires_controller.rb', line 92
def convert_to_admin
user = @questionnaire.user
@questionnaire.destroy
user.update_attributes(role: :admin)
redirect_to edit_manage_admin_path(user)
end
|
#create ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'app/controllers/manage/questionnaires_controller.rb', line 28
def create
create_params = questionnaire_params
email = create_params.delete(:email)
create_params = convert_school_name_to_id(create_params)
create_params = convert_boarded_bus_param(create_params)
@questionnaire = ::Questionnaire.new(create_params)
users = User.where(email: email)
user = users.count == 1 ? users.first : User.new(email: email, password: Devise.friendly_token.first(10))
@questionnaire.user = user
if @questionnaire.valid?
if user.save
@questionnaire.save
else
flash[:notice] = user.errors.full_messages.join(", ")
if user.errors.include?(:email)
@questionnaire.errors.add(:email, user.errors[:email].join(", "))
end
return render 'new'
end
end
respond_with(:manage, @questionnaire)
end
|
#datatable ⇒ Object
12
13
14
|
# File 'app/controllers/manage/questionnaires_controller.rb', line 12
def datatable
render json: QuestionnaireDatatable.new(view_context)
end
|
#destroy ⇒ Object
99
100
101
102
103
104
|
# File 'app/controllers/manage/questionnaires_controller.rb', line 99
def destroy
user = @questionnaire.user
@questionnaire.destroy
user.destroy if user.present?
respond_with(:manage, @questionnaire)
end
|
#edit ⇒ Object
25
26
|
# File 'app/controllers/manage/questionnaires_controller.rb', line 25
def edit
end
|
#index ⇒ Object
8
9
10
|
# File 'app/controllers/manage/questionnaires_controller.rb', line 8
def index
respond_with(:manage, Questionnaire.all)
end
|
#message_events ⇒ Object
143
144
145
|
# File 'app/controllers/manage/questionnaires_controller.rb', line 143
def message_events
render json: @questionnaire.message_events
end
|
#new ⇒ Object
20
21
22
23
|
# File 'app/controllers/manage/questionnaires_controller.rb', line 20
def new
@questionnaire = ::Questionnaire.new
respond_with(:manage, @questionnaire)
end
|
#show ⇒ Object
16
17
18
|
# File 'app/controllers/manage/questionnaires_controller.rb', line 16
def show
respond_with(:manage, @questionnaire)
end
|
#update ⇒ Object
51
52
53
54
55
56
57
58
59
|
# File 'app/controllers/manage/questionnaires_controller.rb', line 51
def update
update_params = questionnaire_params
email = update_params.delete(:email)
@questionnaire.user.update_attributes(email: email) if email.present?
update_params = convert_school_name_to_id(update_params)
update_params = convert_boarded_bus_param(update_params, @questionnaire)
@questionnaire.update_attributes(update_params)
respond_with(:manage, @questionnaire)
end
|
#update_acc_status ⇒ Object
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
# File 'app/controllers/manage/questionnaires_controller.rb', line 106
def update_acc_status
new_status = params[:questionnaire][:acc_status]
if new_status.blank?
flash[:notice] = "No status provided"
redirect_to(manage_questionnaire_path(@questionnaire))
return
end
@questionnaire.acc_status = new_status
@questionnaire.acc_status_author_id = current_user.id
@questionnaire.acc_status_date = Time.now
if @questionnaire.save(validate: false)
flash[:notice] = "Updated acceptance status to \"#{Questionnaire::POSSIBLE_ACC_STATUS[new_status]}\""
else
flash[:notice] = "Failed to update acceptance status"
end
redirect_to manage_questionnaire_path(@questionnaire)
end
|