Class: Manage::QuestionnairesController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- Manage::QuestionnairesController
- Includes:
- QuestionnairesControllable
- Defined in:
- app/controllers/manage/questionnaires_controller.rb
Instance Method Summary collapse
- #bulk_apply ⇒ Object
- #check_in ⇒ Object
- #convert_to_admin ⇒ Object
- #create ⇒ Object
- #datatable ⇒ Object
- #destroy ⇒ Object
- #edit ⇒ Object
- #index ⇒ Object
- #invite_to_slack ⇒ Object
- #message_events ⇒ Object
- #new ⇒ Object
- #show ⇒ Object
- #update ⇒ Object
- #update_acc_status ⇒ Object
Instance Method Details
#bulk_apply ⇒ Object
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'app/controllers/manage/questionnaires_controller.rb', line 123 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. = current_user.id q.acc_status_date = Time.now q.save(validate: false) && process_acc_status_notifications(q, action) end head :ok end |
#check_in ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'app/controllers/manage/questionnaires_controller.rb', line 57 def check_in 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..join(", ") redirect_to manage_questionnaire_path @questionnaire return end @questionnaire.update_attribute(:checked_in_at, Time.now) @questionnaire.update_attribute(:checked_in_by_id, current_user.id) @questionnaire.invite_to_slack 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 manage_questionnaire_path @questionnaire return end redirect_to manage_questionnaires_path end |
#convert_to_admin ⇒ Object
86 87 88 89 90 91 |
# File 'app/controllers/manage/questionnaires_controller.rb', line 86 def convert_to_admin user = @questionnaire.user @questionnaire.destroy user.update_attributes(admin: true, admin_limited_access: true) redirect_to edit_manage_admin_path(user) end |
#create ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'app/controllers/manage/questionnaires_controller.rb', line 27 def create create_params = questionnaire_params email = create_params.delete(:email) create_params = convert_school_name_to_id(create_params) @questionnaire = ::Questionnaire.new(create_params) if @questionnaire.valid? user = User.new(email: email, password: Devise.friendly_token.first(10)) if user.save @questionnaire.user = user @questionnaire.save else flash[:notice] = user.errors..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
11 12 13 |
# File 'app/controllers/manage/questionnaires_controller.rb', line 11 def datatable render json: QuestionnaireDatatable.new(view_context) end |
#destroy ⇒ Object
93 94 95 96 97 98 |
# File 'app/controllers/manage/questionnaires_controller.rb', line 93 def destroy user = @questionnaire.user @questionnaire.destroy user.destroy if user.present? respond_with(:manage, @questionnaire) end |
#edit ⇒ Object
24 25 |
# File 'app/controllers/manage/questionnaires_controller.rb', line 24 def edit end |
#index ⇒ Object
8 9 |
# File 'app/controllers/manage/questionnaires_controller.rb', line 8 def index end |
#invite_to_slack ⇒ Object
139 140 141 142 143 |
# File 'app/controllers/manage/questionnaires_controller.rb', line 139 def invite_to_slack @questionnaire.invite_to_slack flash[:notice] = 'Slack invite has been queued for delivery' redirect_to manage_questionnaire_path @questionnaire end |
#message_events ⇒ Object
145 146 147 |
# File 'app/controllers/manage/questionnaires_controller.rb', line 145 def render json: @questionnaire. end |
#new ⇒ Object
19 20 21 22 |
# File 'app/controllers/manage/questionnaires_controller.rb', line 19 def new @questionnaire = ::Questionnaire.new respond_with(:manage, @questionnaire) end |
#show ⇒ Object
15 16 17 |
# File 'app/controllers/manage/questionnaires_controller.rb', line 15 def show respond_with(:manage, @questionnaire) end |
#update ⇒ Object
48 49 50 51 52 53 54 55 |
# File 'app/controllers/manage/questionnaires_controller.rb', line 48 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) @questionnaire.update_attributes(update_params) respond_with(:manage, @questionnaire) end |
#update_acc_status ⇒ Object
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
# File 'app/controllers/manage/questionnaires_controller.rb', line 100 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. = 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 process_acc_status_notifications(@questionnaire, new_status) redirect_to manage_questionnaire_path(@questionnaire) end |